chore: migrate web imports from .js to .ts (#32742)
(cherry picked from commit f97c2243fbe5f64a4e1bf96128b82a37cc481506)
This commit is contained in:
Vendored
+1
-1
@@ -34,7 +34,7 @@ type NestedKeys<T, K = keyof T> = K extends keyof T & string
|
||||
: never;
|
||||
|
||||
declare module 'svelte-i18n' {
|
||||
import type { InterpolationValues } from '#lib/elements/format-message.js';
|
||||
import type { InterpolationValues } from '#lib/elements/format-message.ts';
|
||||
import type { Readable } from 'svelte/store';
|
||||
|
||||
type Translations = NestedKeys<typeof en>;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import FocusTrapTest from '#lib/actions/__test__/FocusTrapTest.svelte';
|
||||
import { setDefaultTabbleOptions } from '#lib/utils/focus-util.js';
|
||||
import { setDefaultTabbleOptions } from '#lib/utils/focus-util.ts';
|
||||
import { render, screen } from '@testing-library/svelte';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import { tick } from 'svelte';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { focusTrap } from '#lib/actions/focus-trap.js';
|
||||
import { focusTrap } from '#lib/actions/focus-trap.ts';
|
||||
|
||||
interface Props {
|
||||
show: boolean;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { matchesShortcut } from '#lib/actions/shortcut.js';
|
||||
import { matchesShortcut } from '#lib/actions/shortcut.ts';
|
||||
import type { ActionReturn } from 'svelte/action';
|
||||
|
||||
interface Options {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { tick } from 'svelte';
|
||||
import type { Action } from 'svelte/action';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getTabbable } from '#lib/utils/focus-util.js';
|
||||
import { getTabbable } from '#lib/utils/focus-util.ts';
|
||||
import { tick } from 'svelte';
|
||||
|
||||
interface Options {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { cancelImageUrl } from '#lib/utils/sw-messaging.js';
|
||||
import { cancelImageUrl } from '#lib/utils/sw-messaging.ts';
|
||||
|
||||
export function loadImage(src: string, onLoad: () => void, onError: () => void, onStart?: () => void) {
|
||||
let destroyed = false;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import type { Action } from 'svelte/action';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SessionStorageKey } from '#lib/constants.js';
|
||||
import { handlePromiseError } from '#lib/utils.js';
|
||||
import { SessionStorageKey } from '#lib/constants.ts';
|
||||
import { handlePromiseError } from '#lib/utils.ts';
|
||||
import { navigating } from '$app/state';
|
||||
|
||||
interface Options {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { createZoomImageWheel } from '@zoom-image/core';
|
||||
|
||||
// Minimal touch shape — avoids importing DOM TouchEvent which isn't available in all TS targets.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { readPreloadedQuery } from '#lib/queries/client.js';
|
||||
import { getUserConfigQuery } from '#lib/queries/config-user.query.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { copyToClipboard } from '#lib/utils.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { readPreloadedQuery } from '#lib/queries/client.ts';
|
||||
import { getUserConfigQuery } from '#lib/queries/config-user.query.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { copyToClipboard } from '#lib/utils.ts';
|
||||
import { defaultProvider, screencastManager, themeManager, ThemePreference, type ActionItem } from '@immich/ui';
|
||||
import {
|
||||
mdiAccountMultipleOutline,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import MenuOption from '#lib/components/shared-components/context-menu/MenuOption.svelte';
|
||||
import { isEnabled } from '#lib/utils.js';
|
||||
import { isEnabled } from '#lib/utils.ts';
|
||||
import { type ActionItem } from '@immich/ui';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script module lang="ts">
|
||||
import { TUNABLES } from '#lib/utils/tunables.js';
|
||||
import { TUNABLES } from '#lib/utils/tunables.ts';
|
||||
|
||||
// Chrome renders HDR images with normally invisible seam lines in a regular
|
||||
// grid pattern. When the user pinch/scroll zooms, these seams become visible
|
||||
@@ -55,15 +55,15 @@
|
||||
import DelayedLoadingSpinner from '#lib/components/DelayedLoadingSpinner.svelte';
|
||||
import ImageLayer from '#lib/components/ImageLayer.svelte';
|
||||
import Thumbhash from '#lib/components/Thumbhash.svelte';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { getAssetUrls } from '#lib/utils.js';
|
||||
import { AdaptiveImageLoader, type QualityList } from '#lib/utils/adaptive-image-loader.svelte.js';
|
||||
import { scaleToCover, scaleToFit, type Size } from '#lib/utils/container-utils.js';
|
||||
import { getAltText } from '#lib/utils/thumbnail-util.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { getAssetUrls } from '#lib/utils.ts';
|
||||
import { AdaptiveImageLoader, type QualityList } from '#lib/utils/adaptive-image-loader.svelte.ts';
|
||||
import { scaleToCover, scaleToFit, type Size } from '#lib/utils/container-utils.ts';
|
||||
import { getAltText } from '#lib/utils/thumbnail-util.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import type { AssetResponseDto, SharedLinkResponseDto } from '@immich/sdk';
|
||||
import { untrack, type Snippet } from 'svelte';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
|
||||
type Props = {
|
||||
asset: AssetResponseDto;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { assetViewerManager, type Events } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import type { EventCallback, EventMap } from '#lib/utils/base-event-manager.svelte.js';
|
||||
import { assetViewerManager, type Events } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import type { EventCallback, EventMap } from '#lib/utils/base-event-manager.svelte.ts';
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import type { HeaderButtonActionItem } from '#lib/types.js';
|
||||
import type { HeaderButtonActionItem } from '#lib/types.ts';
|
||||
import {
|
||||
Breadcrumbs,
|
||||
Button,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import type { CalendarHeatmapResponseDto } from '@immich/sdk';
|
||||
import { Text } from '@immich/ui';
|
||||
import { DateTime, Info } from 'luxon';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import type { HeaderButtonActionItem } from '#lib/types.js';
|
||||
import type { HeaderButtonActionItem } from '#lib/types.ts';
|
||||
import { Button, type Variants } from '@immich/ui';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Image from '#lib/components/Image.svelte';
|
||||
import { cancelImageUrl } from '#lib/utils/sw-messaging.js';
|
||||
import { cancelImageUrl } from '#lib/utils/sw-messaging.ts';
|
||||
import { fireEvent, render } from '@testing-library/svelte';
|
||||
|
||||
vi.mock('#lib/utils/sw-messaging.js', () => ({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { isFirefox } from '#lib/utils/asset-utils.js';
|
||||
import { cancelImageUrl } from '#lib/utils/sw-messaging.js';
|
||||
import { isFirefox } from '#lib/utils/asset-utils.ts';
|
||||
import { cancelImageUrl } from '#lib/utils/sw-messaging.ts';
|
||||
import { onDestroy, untrack } from 'svelte';
|
||||
import type { HTMLImgAttributes } from 'svelte/elements';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import Image from '#lib/components/Image.svelte';
|
||||
import type { AdaptiveImageLoader, ImageQuality } from '#lib/utils/adaptive-image-loader.svelte.js';
|
||||
import type { AdaptiveImageLoader, ImageQuality } from '#lib/utils/adaptive-image-loader.svelte.ts';
|
||||
|
||||
type Props = {
|
||||
adaptiveImageLoader: AdaptiveImageLoader;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { eventManager, type Events } from '#lib/managers/event-manager.svelte.js';
|
||||
import type { EventCallback, EventMap } from '#lib/utils/base-event-manager.svelte.js';
|
||||
import { eventManager, type Events } from '#lib/managers/event-manager.svelte.ts';
|
||||
import type { EventCallback, EventMap } from '#lib/utils/base-event-manager.svelte.ts';
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import SchemaAlbumPicker from '#lib/components/SchemaAlbumPicker.svelte';
|
||||
import Self from '#lib/components/SchemaConfiguration.svelte';
|
||||
import SchemaTagPicker from '#lib/components/SchemaTagPicker.svelte';
|
||||
import type { JSONSchemaProperty, SchemaConfig } from '#lib/types.js';
|
||||
import type { JSONSchemaProperty, SchemaConfig } from '#lib/types.ts';
|
||||
import {
|
||||
CodeBlock,
|
||||
Field,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { Button, DatePicker, Field } from '@immich/ui';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { DateTime, Duration } from 'luxon';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { decodeBase64 } from '#lib/utils.js';
|
||||
import { TUNABLES } from '#lib/utils/tunables.js';
|
||||
import { decodeBase64 } from '#lib/utils.ts';
|
||||
import { TUNABLES } from '#lib/utils/tunables.ts';
|
||||
import type { HTMLCanvasAttributes } from 'svelte/elements';
|
||||
import { fade } from 'svelte/transition';
|
||||
import { thumbHashToRGBA } from 'thumbhash';
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
import SettingInputField from '#lib/components/shared-components/settings/SettingInputField.svelte';
|
||||
import SettingSwitch from '#lib/components/shared-components/settings/SettingSwitch.svelte';
|
||||
import SettingButtonsRow from '#lib/components/shared-components/settings/SystemConfigButtonRow.svelte';
|
||||
import { SettingInputFieldType } from '#lib/constants.js';
|
||||
import { SettingInputFieldType } from '#lib/constants.ts';
|
||||
import FormatMessage from '#lib/elements/FormatMessage.svelte';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { featureFlagsManager } from '#lib/managers/feature-flags-manager.svelte.js';
|
||||
import { createPreloadedQuery, executeMutation } from '#lib/queries/client.js';
|
||||
import { getAdminConfigQuery, updateAdminConfigMutation } from '#lib/queries/config-admin.query.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { featureFlagsManager } from '#lib/managers/feature-flags-manager.svelte.ts';
|
||||
import { createPreloadedQuery, executeMutation } from '#lib/queries/client.ts';
|
||||
import { getAdminConfigQuery, updateAdminConfigMutation } from '#lib/queries/config-admin.query.ts';
|
||||
import StorageTemplateVariablesModal from '#lib/modals/StorageTemplateVariablesModal.svelte';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { getStorageTemplateOptions, type SystemConfigTemplateStorageOptionDto } from '@immich/sdk';
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { Code, Heading, IconButton, Link, modalManager, Text } from '@immich/ui';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import type { SystemConfigTemplateStorageOptionDto } from '@immich/sdk';
|
||||
import { Card, CardBody, CardHeader, Heading, Text } from '@immich/ui';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import AlbumCover from '#lib/components/album-page/AlbumCover.svelte';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { getShortDateRange } from '#lib/utils/date-time.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { getShortDateRange } from '#lib/utils/date-time.ts';
|
||||
import { type AlbumResponseDto } from '@immich/sdk';
|
||||
import { ContextMenuButton, type MenuItems } from '@immich/ui';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import AlbumCard from '#lib/components/album-page/AlbumCard.svelte';
|
||||
import Portal from '#lib/elements/Portal.svelte';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { getAlbumActions } from '#lib/services/album.service.js';
|
||||
import { albumViewSettings } from '#lib/stores/preferences.store.js';
|
||||
import { type AlbumGroup, isAlbumGroupCollapsed, toggleAlbumGroupCollapsing } from '#lib/utils/album-utils.js';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { getAlbumActions } from '#lib/services/album.service.ts';
|
||||
import { albumViewSettings } from '#lib/stores/preferences.store.ts';
|
||||
import { type AlbumGroup, isAlbumGroupCollapsed, toggleAlbumGroupCollapsing } from '#lib/utils/album-utils.ts';
|
||||
import type { AlbumResponseDto } from '@immich/sdk';
|
||||
import { Icon, menuManager, type ActionItem } from '@immich/ui';
|
||||
import { mdiChevronRight } from '@mdi/js';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import AssetCover from '#lib/components/sharedlinks-page/covers/AssetCover.svelte';
|
||||
import NoCover from '#lib/components/sharedlinks-page/covers/NoCover.svelte';
|
||||
import { getAssetMediaUrl } from '#lib/utils.js';
|
||||
import { getAssetMediaUrl } from '#lib/utils.ts';
|
||||
import { type AlbumResponseDto } from '@immich/sdk';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import MapModal from '#lib/modals/MapModal.svelte';
|
||||
import { getAlbumMapMarkersQuery } from '#lib/queries/album.query.js';
|
||||
import { navigate } from '#lib/utils/navigation.js';
|
||||
import { getAlbumMapMarkersQuery } from '#lib/queries/album.query.ts';
|
||||
import { navigate } from '#lib/utils/navigation.ts';
|
||||
import { type AlbumResponseDto } from '@immich/sdk';
|
||||
import { IconButton, modalManager } from '@immich/ui';
|
||||
import { mdiMapOutline } from '@mdi/js';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { getSharedLinkActions } from '#lib/services/shared-link.service.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { getSharedLinkActions } from '#lib/services/shared-link.service.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import type { AlbumResponseDto, SharedLinkResponseDto } from '@immich/sdk';
|
||||
import { ActionButton, Text } from '@immich/ui';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { getAlbumDateRange } from '#lib/utils/date-time.js';
|
||||
import { getAlbumDateRange } from '#lib/utils/date-time.ts';
|
||||
import type { AlbumResponseDto } from '@immich/sdk';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import AlbumCover from '#lib/components/album-page/AlbumCover.svelte';
|
||||
import { getAlbumQuery } from '#lib/queries/album.query.js';
|
||||
import { queryClient } from '#lib/queries/client.js';
|
||||
import { getAlbumQuery } from '#lib/queries/album.query.ts';
|
||||
import { queryClient } from '#lib/queries/client.ts';
|
||||
import { IconButton, Text, LoadingSpinner } from '@immich/ui';
|
||||
import { mdiTrashCanOutline } from '@mdi/js';
|
||||
import { createQuery } from '@tanstack/svelte-query';
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<script lang="ts">
|
||||
import { shortcut } from '#lib/actions/shortcut.js';
|
||||
import { shortcut } from '#lib/actions/shortcut.ts';
|
||||
import AlbumMap from '#lib/components/album-page/AlbumMap.svelte';
|
||||
import DownloadAction from '#lib/components/timeline/actions/DownloadAction.svelte';
|
||||
import SelectAllAssets from '#lib/components/timeline/actions/SelectAllAction.svelte';
|
||||
import AssetSelectControlBar from '#lib/components/timeline/AssetSelectControlBar.svelte';
|
||||
import Timeline from '#lib/components/timeline/Timeline.svelte';
|
||||
import { assetMultiSelectManager } from '#lib/managers/asset-multi-select-manager.svelte.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { TimelineManager } from '#lib/managers/timeline-manager/timeline-manager.svelte.js';
|
||||
import { handleDownloadAlbum } from '#lib/services/album.service.js';
|
||||
import { getGlobalActions } from '#lib/services/app.service.js';
|
||||
import { dragAndDropFilesStore } from '#lib/stores/drag-and-drop-files.store.js';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.js';
|
||||
import { SlideshowNavigation, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.js';
|
||||
import { handlePromiseError } from '#lib/utils.js';
|
||||
import { fileUploadHandler, openFileUploadDialog } from '#lib/utils/file-uploader.js';
|
||||
import { assetMultiSelectManager } from '#lib/managers/asset-multi-select-manager.svelte.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { TimelineManager } from '#lib/managers/timeline-manager/timeline-manager.svelte.ts';
|
||||
import { handleDownloadAlbum } from '#lib/services/album.service.ts';
|
||||
import { getGlobalActions } from '#lib/services/app.service.ts';
|
||||
import { dragAndDropFilesStore } from '#lib/stores/drag-and-drop-files.store.ts';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.ts';
|
||||
import { SlideshowNavigation, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.ts';
|
||||
import { handlePromiseError } from '#lib/utils.ts';
|
||||
import { fileUploadHandler, openFileUploadDialog } from '#lib/utils/file-uploader.ts';
|
||||
import type { AlbumResponseDto, SharedLinkResponseDto } from '@immich/sdk';
|
||||
import { ActionButton, IconButton, Logo } from '@immich/ui';
|
||||
import { mdiDownload, mdiFileImagePlusOutline, mdiPresentationPlay } from '@mdi/js';
|
||||
@@ -22,8 +22,8 @@
|
||||
import ControlAppBar from '../shared-components/ControlAppBar.svelte';
|
||||
import ThemeButton from '../shared-components/ThemeButton.svelte';
|
||||
import AlbumSummary from './AlbumSummary.svelte';
|
||||
import { createPreloadedQuery } from '#lib/queries/client.js';
|
||||
import { getPublicConfigQuery } from '#lib/queries/config-public.query.js';
|
||||
import { createPreloadedQuery } from '#lib/queries/client.ts';
|
||||
import { getPublicConfigQuery } from '#lib/queries/config-public.query.ts';
|
||||
|
||||
const query = createPreloadedQuery(getPublicConfigQuery);
|
||||
const publicConfig = $derived(query.data);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import AlbumCardGroup from '#lib/components/album-page/AlbumCardGroup.svelte';
|
||||
import AlbumsTable from '#lib/components/album-page/AlbumsTable.svelte';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { handleDeleteAlbum, isAlbumOwner } from '#lib/services/album.service.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { handleDeleteAlbum, isAlbumOwner } from '#lib/services/album.service.ts';
|
||||
import {
|
||||
AlbumFilter,
|
||||
AlbumGroupBy,
|
||||
@@ -11,14 +11,14 @@
|
||||
locale,
|
||||
SortOrder,
|
||||
type AlbumViewSettings,
|
||||
} from '#lib/stores/preferences.store.js';
|
||||
} from '#lib/stores/preferences.store.ts';
|
||||
import {
|
||||
getSelectedAlbumGroupOption,
|
||||
sortAlbums,
|
||||
stringToSortOrder,
|
||||
type AlbumGroup,
|
||||
} from '#lib/utils/album-utils.js';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.js';
|
||||
} from '#lib/utils/album-utils.ts';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.ts';
|
||||
import { type AlbumResponseDto } from '@immich/sdk';
|
||||
import { groupBy } from 'lodash-es';
|
||||
import { onMount, type Snippet } from 'svelte';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<script lang="ts">
|
||||
import AlbumTableHeader from '#lib/components/album-page/AlbumsTableHeader.svelte';
|
||||
import AlbumTableRow from '#lib/components/album-page/AlbumsTableRow.svelte';
|
||||
import { AlbumGroupBy, albumViewSettings } from '#lib/stores/preferences.store.js';
|
||||
import { AlbumGroupBy, albumViewSettings } from '#lib/stores/preferences.store.ts';
|
||||
import {
|
||||
isAlbumGroupCollapsed,
|
||||
sortOptionsMetadata,
|
||||
toggleAlbumGroupCollapsing,
|
||||
type AlbumGroup,
|
||||
} from '#lib/utils/album-utils.js';
|
||||
} from '#lib/utils/album-utils.ts';
|
||||
import { Icon } from '@immich/ui';
|
||||
import { mdiChevronRight } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { albumViewSettings, SortOrder, AlbumSortBy } from '#lib/stores/preferences.store.js';
|
||||
import type { AlbumSortOptionMetadata } from '#lib/utils/album-utils.js';
|
||||
import { albumViewSettings, SortOrder, AlbumSortBy } from '#lib/stores/preferences.store.ts';
|
||||
import type { AlbumSortOptionMetadata } from '#lib/utils/album-utils.ts';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
interface Props {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<script lang="ts">
|
||||
import { goto } from '$app/navigation';
|
||||
import { dateFormats } from '#lib/constants.js';
|
||||
import { dateFormats } from '#lib/constants.ts';
|
||||
import Portal from '#lib/elements/Portal.svelte';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { getAlbumActions } from '#lib/services/album.service.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { getAlbumActions } from '#lib/services/album.service.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { AlbumUserRole, type AlbumResponseDto } from '@immich/sdk';
|
||||
import { Icon, menuManager } from '@immich/ui';
|
||||
import { mdiShareVariantOutline } from '@mdi/js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { sdkMock } from '#lib/__mocks__/sdk.mock.js';
|
||||
import { sdkMock } from '#lib/__mocks__/sdk.mock.ts';
|
||||
import '@testing-library/jest-dom';
|
||||
import { render, waitFor, type RenderResult } from '@testing-library/svelte';
|
||||
import { init, register, waitLocale } from 'svelte-i18n';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import AlbumCover from '#lib/components/album-page/AlbumCover.svelte';
|
||||
import { getAssetMediaUrl } from '#lib/utils.js';
|
||||
import { getAssetMediaUrl } from '#lib/utils.ts';
|
||||
import { render } from '@testing-library/svelte';
|
||||
import { albumFactory } from '#test-data/factories/album-factory';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import type { ActivityResponseDto } from '@immich/sdk';
|
||||
import { Button } from '@immich/ui';
|
||||
import { mdiCommentOutline, mdiThumbUp, mdiThumbUpOutline } from '@mdi/js';
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<script lang="ts">
|
||||
import { shortcut } from '#lib/actions/shortcut.js';
|
||||
import { timeBeforeShowLoadingSpinner } from '#lib/constants.js';
|
||||
import { activityManager } from '#lib/managers/activity-manager.svelte.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { getAssetMediaUrl } from '#lib/utils.js';
|
||||
import { getAssetType } from '#lib/utils/asset-utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { isTenMinutesApart } from '#lib/utils/timesince.js';
|
||||
import { shortcut } from '#lib/actions/shortcut.ts';
|
||||
import { timeBeforeShowLoadingSpinner } from '#lib/constants.ts';
|
||||
import { activityManager } from '#lib/managers/activity-manager.svelte.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { getAssetMediaUrl } from '#lib/utils.ts';
|
||||
import { getAssetType } from '#lib/utils/asset-utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { isTenMinutesApart } from '#lib/utils/timesince.ts';
|
||||
import { ReactionType, type ActivityResponseDto, type AlbumUserResponseDto, type AssetTypeEnum } from '@immich/sdk';
|
||||
import { ContextMenuButton, Icon, IconButton, LoadingSpinner, Textarea, toastManager } from '@immich/ui';
|
||||
import { mdiClose, mdiSend, mdiThumbUp, mdiTrashCanOutline } from '@mdi/js';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import { SCROLL_PROPERTIES } from '#lib/components/shared-components/album-selection/album-selection-utils.js';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.js';
|
||||
import { getAssetMediaUrl } from '#lib/utils.js';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.js';
|
||||
import { SCROLL_PROPERTIES } from '#lib/components/shared-components/album-selection/album-selection-utils.ts';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.ts';
|
||||
import { getAssetMediaUrl } from '#lib/utils.ts';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.ts';
|
||||
import { type AlbumResponseDto } from '@immich/sdk';
|
||||
import { Icon } from '@immich/ui';
|
||||
import { mdiCheckCircle } from '@mdi/js';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { getAnimateMock } from '#lib/__mocks__/animate.mock.js';
|
||||
import { getResizeObserverMock } from '#lib/__mocks__/resize-observer.mock.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.js';
|
||||
import { getAnimateMock } from '#lib/__mocks__/animate.mock.ts';
|
||||
import { getResizeObserverMock } from '#lib/__mocks__/resize-observer.mock.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.ts';
|
||||
import { renderWithTooltips } from '#tests/helpers';
|
||||
import { updateAsset } from '@immich/sdk';
|
||||
import { fireEvent, waitFor } from '@testing-library/svelte';
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
<script lang="ts">
|
||||
import { browser } from '$app/env';
|
||||
import { focusTrap } from '#lib/actions/focus-trap.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import type { Action, OnAction, PreAction } from '#lib/components/asset-viewer/actions/action.js';
|
||||
import { focusTrap } from '#lib/actions/focus-trap.ts';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import type { Action, OnAction, PreAction } from '#lib/components/asset-viewer/actions/action.ts';
|
||||
import NextAssetAction from '#lib/components/asset-viewer/actions/NextAssetAction.svelte';
|
||||
import PreviousAssetAction from '#lib/components/asset-viewer/actions/PreviousAssetAction.svelte';
|
||||
import AssetViewerNavBar from '#lib/components/asset-viewer/AssetViewerNavBar.svelte';
|
||||
import { preloadManager } from '#lib/components/asset-viewer/PreloadManager.svelte.js';
|
||||
import { preloadManager } from '#lib/components/asset-viewer/PreloadManager.svelte.ts';
|
||||
import OnEvents from '#lib/components/OnEvents.svelte';
|
||||
import { AssetAction, ProjectionType } from '#lib/constants.js';
|
||||
import { activityManager } from '#lib/managers/activity-manager.svelte.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { editManager, EditToolType } from '#lib/managers/edit/edit-manager.svelte.js';
|
||||
import { eventManager } from '#lib/managers/event-manager.svelte.js';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.js';
|
||||
import { getAssetActions } from '#lib/services/asset.service.js';
|
||||
import { faceManager } from '#lib/stores/face.svelte.js';
|
||||
import { ocrManager } from '#lib/stores/ocr.svelte.js';
|
||||
import { alwaysLoadOriginalVideo } from '#lib/stores/preferences.store.js';
|
||||
import { SlideshowNavigation, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.js';
|
||||
import { getSharedLink, handlePromiseError } from '#lib/utils.js';
|
||||
import type { OnUndoDelete } from '#lib/utils/actions.js';
|
||||
import { navigateToAsset } from '#lib/utils/asset-utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { navigate } from '#lib/utils/navigation.js';
|
||||
import { InvocationTracker } from '#lib/utils/invocationTracker.js';
|
||||
import { SlideshowHistory } from '#lib/utils/slideshow-history.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { AssetAction, ProjectionType } from '#lib/constants.ts';
|
||||
import { activityManager } from '#lib/managers/activity-manager.svelte.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { editManager, EditToolType } from '#lib/managers/edit/edit-manager.svelte.ts';
|
||||
import { eventManager } from '#lib/managers/event-manager.svelte.ts';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.ts';
|
||||
import { getAssetActions } from '#lib/services/asset.service.ts';
|
||||
import { faceManager } from '#lib/stores/face.svelte.ts';
|
||||
import { ocrManager } from '#lib/stores/ocr.svelte.ts';
|
||||
import { alwaysLoadOriginalVideo } from '#lib/stores/preferences.store.ts';
|
||||
import { SlideshowNavigation, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.ts';
|
||||
import { getSharedLink, handlePromiseError } from '#lib/utils.ts';
|
||||
import type { OnUndoDelete } from '#lib/utils/actions.ts';
|
||||
import { navigateToAsset } from '#lib/utils/asset-utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { navigate } from '#lib/utils/navigation.ts';
|
||||
import { InvocationTracker } from '#lib/utils/invocationTracker.ts';
|
||||
import { SlideshowHistory } from '#lib/utils/slideshow-history.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import {
|
||||
AssetTypeEnum,
|
||||
getAssetInfo,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { getResizeObserverMock } from '#lib/__mocks__/resize-observer.mock.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { queryClient } from '#lib/queries/client.js';
|
||||
import { getUserConfigQuery } from '#lib/queries/config-user.query.js';
|
||||
import { getResizeObserverMock } from '#lib/__mocks__/resize-observer.mock.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { queryClient } from '#lib/queries/client.ts';
|
||||
import { getUserConfigQuery } from '#lib/queries/config-user.query.ts';
|
||||
import { renderWithTooltips } from '#tests/helpers';
|
||||
import type { UserConfigDto } from '@immich/sdk';
|
||||
import '@testing-library/jest-dom';
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
<script lang="ts">
|
||||
import ActionMenuItem from '#lib/components/ActionMenuItem.svelte';
|
||||
import type { OnAction, PreAction } from '#lib/components/asset-viewer/actions/action.js';
|
||||
import type { OnAction, PreAction } from '#lib/components/asset-viewer/actions/action.ts';
|
||||
import ArchiveAction from '#lib/components/asset-viewer/actions/ArchiveAction.svelte';
|
||||
import DeleteAction from '#lib/components/asset-viewer/actions/DeleteAction.svelte';
|
||||
import RestoreAction from '#lib/components/asset-viewer/actions/RestoreAction.svelte';
|
||||
import SetVisibilityAction from '#lib/components/asset-viewer/actions/SetVisibilityAction.svelte';
|
||||
import LoadingDots from '#lib/components/LoadingDots.svelte';
|
||||
import ButtonContextMenu from '#lib/components/shared-components/context-menu/ButtonContextMenu.svelte';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { getAlbumAssetActions } from '#lib/services/album.service.js';
|
||||
import { getGlobalActions } from '#lib/services/app.service.js';
|
||||
import { getAssetActions } from '#lib/services/asset.service.js';
|
||||
import { getPersonAssetActions } from '#lib/services/person.service.js';
|
||||
import { getStackActions } from '#lib/services/stack.service.js';
|
||||
import { getSharedLink, withoutIcons } from '#lib/utils.js';
|
||||
import type { OnUndoDelete } from '#lib/utils/actions.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
import { getAlbumAssetActions } from '#lib/services/album.service.ts';
|
||||
import { getGlobalActions } from '#lib/services/app.service.ts';
|
||||
import { getAssetActions } from '#lib/services/asset.service.ts';
|
||||
import { getPersonAssetActions } from '#lib/services/person.service.ts';
|
||||
import { getStackActions } from '#lib/services/stack.service.ts';
|
||||
import { getSharedLink, withoutIcons } from '#lib/utils.ts';
|
||||
import type { OnUndoDelete } from '#lib/utils/actions.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import {
|
||||
AssetTypeEnum,
|
||||
AssetVisibility,
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
import DetailPanelLocation from '#lib/components/asset-viewer/DetailPanelLocation.svelte';
|
||||
import DetailPanelRating from '#lib/components/asset-viewer/DetailPanelStarRating.svelte';
|
||||
import DetailPanelTags from '#lib/components/asset-viewer/DetailPanelTags.svelte';
|
||||
import { timeToLoadTheMap } from '#lib/constants.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { getAssetMediaUrl } from '#lib/utils.js';
|
||||
import { delay, getDimensions } from '#lib/utils/asset-utils.js';
|
||||
import { getByteUnitString } from '#lib/utils/byte-units.js';
|
||||
import { getParentPath } from '#lib/utils/tree-utils.js';
|
||||
import { timeToLoadTheMap } from '#lib/constants.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { getAssetMediaUrl } from '#lib/utils.ts';
|
||||
import { delay, getDimensions } from '#lib/utils/asset-utils.ts';
|
||||
import { getByteUnitString } from '#lib/utils/byte-units.ts';
|
||||
import { getParentPath } from '#lib/utils/tree-utils.ts';
|
||||
import { AssetMediaSize, getAssetInfo, type AlbumResponseDto, type AssetResponseDto } from '@immich/sdk';
|
||||
import { createQuery } from '@tanstack/svelte-query';
|
||||
import { Icon, IconButton, Link, LoadingSpinner, Text } from '@immich/ui';
|
||||
@@ -25,10 +25,10 @@
|
||||
import UserAvatar from '../shared-components/UserAvatar.svelte';
|
||||
import AlbumListItemDetails from './AlbumListItemDetails.svelte';
|
||||
import DetailPanelPeople from '#lib/components/asset-viewer/DetailPanelPeople.svelte';
|
||||
import { faceManager } from '#lib/stores/face.svelte.js';
|
||||
import { getAlbumsByAssetQuery } from '#lib/queries/album.query.js';
|
||||
import { createPreloadedQuery } from '#lib/queries/client.js';
|
||||
import { getPublicConfigQuery } from '#lib/queries/config-public.query.js';
|
||||
import { faceManager } from '#lib/stores/face.svelte.ts';
|
||||
import { getAlbumsByAssetQuery } from '#lib/queries/album.query.ts';
|
||||
import { createPreloadedQuery } from '#lib/queries/client.ts';
|
||||
import { getPublicConfigQuery } from '#lib/queries/config-public.query.ts';
|
||||
|
||||
const query = createPreloadedQuery(getPublicConfigQuery);
|
||||
const publicConfig = $derived(query.data);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import AssetChangeDateModal from '#lib/modals/AssetChangeDateModal.svelte';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { fromISODateTime, fromISODateTimeUTC, toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { fromISODateTime, fromISODateTimeUTC, toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import { type AssetResponseDto } from '@immich/sdk';
|
||||
import { Icon, modalManager } from '@immich/ui';
|
||||
import { mdiCalendar, mdiPencil } from '@mdi/js';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { shortcut } from '#lib/actions/shortcut.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { shortcut } from '#lib/actions/shortcut.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { updateAsset, type AssetResponseDto } from '@immich/sdk';
|
||||
import { Textarea, toastManager } from '@immich/ui';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import GeolocationPointPickerModal from '#lib/modals/GeolocationPointPickerModal.svelte';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { updateAsset, type AssetResponseDto } from '@immich/sdk';
|
||||
import { Icon, modalManager } from '@immich/ui';
|
||||
import { mdiMapMarkerOutline, mdiPencil } from '@mdi/js';
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<script lang="ts">
|
||||
import ImageThumbnail from '#lib/components/assets/thumbnail/ImageThumbnail.svelte';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { faceManager } from '#lib/stores/face.svelte.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { getPeopleThumbnailUrl } from '#lib/utils.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { faceManager } from '#lib/stores/face.svelte.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { getPeopleThumbnailUrl } from '#lib/utils.ts';
|
||||
import { type AssetResponseDto } from '@immich/sdk';
|
||||
import { IconButton, Text } from '@immich/ui';
|
||||
import { mdiEye, mdiEyeOff, mdiPencil, mdiPlus } from '@mdi/js';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import StarRating, { type Rating } from '#lib/elements/StarRating.svelte';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { handlePromiseError } from '#lib/utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { handlePromiseError } from '#lib/utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { updateAsset, type AssetResponseDto } from '@immich/sdk';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import HeaderActionButton from '#lib/components/HeaderActionButton.svelte';
|
||||
import OnEvents from '#lib/components/OnEvents.svelte';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { getAssetActions } from '#lib/services/asset.service.js';
|
||||
import { removeTag } from '#lib/utils/asset-utils.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { getAssetActions } from '#lib/services/asset.service.ts';
|
||||
import { removeTag } from '#lib/utils/asset-utils.ts';
|
||||
import { getAssetInfo, type AssetResponseDto } from '@immich/sdk';
|
||||
import { Badge, Link, Text } from '@immich/ui';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { getAssetUrl } from '#lib/utils.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { getAssetUrl } from '#lib/utils.ts';
|
||||
import { AssetMediaSize, viewAsset, type AssetResponseDto } from '@immich/sdk';
|
||||
import { LoadingSpinner } from '@immich/ui';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.js';
|
||||
import type { OcrBox } from '#lib/utils/ocr-utils.js';
|
||||
import { calculateBoundingBoxMatrix, calculateFittedFontSize } from '#lib/utils/ocr-utils.js';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.ts';
|
||||
import type { OcrBox } from '#lib/utils/ocr-utils.ts';
|
||||
import { calculateBoundingBoxMatrix, calculateFittedFontSize } from '#lib/utils/ocr-utils.ts';
|
||||
|
||||
type Props = {
|
||||
ocrBox: OcrBox;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { ocrManager } from '#lib/stores/ocr.svelte.js';
|
||||
import { ocrManager } from '#lib/stores/ocr.svelte.ts';
|
||||
import { IconButton } from '@immich/ui';
|
||||
import { mdiTextRecognition } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import AssetViewerEvents from '#lib/components/AssetViewerEvents.svelte';
|
||||
import { assetViewerManager, type Faces } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { ocrManager, type OcrBoundingBox } from '#lib/stores/ocr.svelte.js';
|
||||
import { alwaysLoadOriginalFile } from '#lib/stores/preferences.store.js';
|
||||
import { calculateBoundingBoxMatrix, getOcrBoundingBoxes, type Point } from '#lib/utils/ocr-utils.js';
|
||||
import { assetViewerManager, type Faces } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { ocrManager, type OcrBoundingBox } from '#lib/stores/ocr.svelte.ts';
|
||||
import { alwaysLoadOriginalFile } from '#lib/stores/preferences.store.ts';
|
||||
import { calculateBoundingBoxMatrix, getOcrBoundingBoxes, type Point } from '#lib/utils/ocr-utils.ts';
|
||||
import {
|
||||
EquirectangularAdapter,
|
||||
Viewer,
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { zoomImageAction } from '#lib/actions/zoom-image.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { zoomImageAction } from '#lib/actions/zoom-image.ts';
|
||||
import AdaptiveImage from '#lib/components/AdaptiveImage.svelte';
|
||||
import FaceEditor from '#lib/components/asset-viewer/face-editor/FaceEditor.svelte';
|
||||
import OcrBoundingBox from '#lib/components/asset-viewer/OcrBoundingBox.svelte';
|
||||
import AssetViewerEvents from '#lib/components/AssetViewerEvents.svelte';
|
||||
import Thumbhash from '#lib/components/Thumbhash.svelte';
|
||||
import { assetViewerManager, type Faces } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { castManager } from '#lib/managers/cast-manager.svelte.js';
|
||||
import { faceManager } from '#lib/stores/face.svelte.js';
|
||||
import { ocrManager } from '#lib/stores/ocr.svelte.js';
|
||||
import { SlideshowLook, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.js';
|
||||
import { handlePromiseError } from '#lib/utils.js';
|
||||
import { canCopyImageToClipboard, copyImageToClipboard } from '#lib/utils/asset-utils.js';
|
||||
import { getNaturalSize, scaleToFit, type Size } from '#lib/utils/container-utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { getOcrBoundingBoxes } from '#lib/utils/ocr-utils.js';
|
||||
import { getBoundingBox, type BoundingBox } from '#lib/utils/people-utils.js';
|
||||
import { assetViewerManager, type Faces } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { castManager } from '#lib/managers/cast-manager.svelte.ts';
|
||||
import { faceManager } from '#lib/stores/face.svelte.ts';
|
||||
import { ocrManager } from '#lib/stores/ocr.svelte.ts';
|
||||
import { SlideshowLook, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.ts';
|
||||
import { handlePromiseError } from '#lib/utils.ts';
|
||||
import { canCopyImageToClipboard, copyImageToClipboard } from '#lib/utils/asset-utils.ts';
|
||||
import { getNaturalSize, scaleToFit, type Size } from '#lib/utils/container-utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { getOcrBoundingBoxes } from '#lib/utils/ocr-utils.ts';
|
||||
import { getBoundingBox, type BoundingBox } from '#lib/utils/people-utils.ts';
|
||||
import { type SharedLinkResponseDto } from '@immich/sdk';
|
||||
import { toastManager } from '@immich/ui';
|
||||
import { onDestroy, untrack } from 'svelte';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { loadImage } from '#lib/actions/image-loader.svelte.js';
|
||||
import { getAssetUrls } from '#lib/utils.js';
|
||||
import { AdaptiveImageLoader, type QualityList } from '#lib/utils/adaptive-image-loader.svelte.js';
|
||||
import { loadImage } from '#lib/actions/image-loader.svelte.ts';
|
||||
import { getAssetUrls } from '#lib/utils.ts';
|
||||
import { AdaptiveImageLoader, type QualityList } from '#lib/utils/adaptive-image-loader.svelte.ts';
|
||||
import type { AssetResponseDto, SharedLinkResponseDto } from '@immich/sdk';
|
||||
|
||||
type AssetCursor = {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts, type ShortcutOptions } from '#lib/actions/shortcut.js';
|
||||
import { shortcuts, type ShortcutOptions } from '#lib/actions/shortcut.ts';
|
||||
import ProgressBar from '#lib/components/shared-components/progress-bar/ProgressBar.svelte';
|
||||
import { ProgressBarStatus } from '#lib/constants.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { ProgressBarStatus } from '#lib/constants.ts';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
import SlideshowSettingsModal from '#lib/modals/SlideshowSettingsModal.svelte';
|
||||
import { SlideshowNavigation, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.js';
|
||||
import { SlideshowNavigation, SlideshowState, slideshowStore } from '#lib/stores/slideshow.store.ts';
|
||||
import { AssetTypeEnum } from '@immich/sdk';
|
||||
import { IconButton, modalManager } from '@immich/ui';
|
||||
import { mdiChevronLeft, mdiChevronRight, mdiClose, mdiCog, mdiFullscreen, mdiPause, mdiPlay } from '@mdi/js';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { SlideshowMetadataOverlayMode, slideshowStore } from '#lib/stores/slideshow.store.js';
|
||||
import { fromISODateTime, fromISODateTimeUTC } from '#lib/utils/timeline-util.js';
|
||||
import { SlideshowMetadataOverlayMode, slideshowStore } from '#lib/stores/slideshow.store.ts';
|
||||
import { fromISODateTime, fromISODateTimeUTC } from '#lib/utils/timeline-util.ts';
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
import { Text } from '@immich/ui';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<script lang="ts">
|
||||
import FaceEditor from '#lib/components/asset-viewer/face-editor/FaceEditor.svelte';
|
||||
import VideoRemoteViewer from '#lib/components/asset-viewer/VideoRemoteViewer.svelte';
|
||||
import { assetViewerFadeDuration } from '#lib/constants.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { castManager } from '#lib/managers/cast-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { mediaCapabilitiesManager } from '#lib/managers/media-capabilities-manager.svelte.js';
|
||||
import { autoPlayVideo, lang, loopVideo as loopVideoPreference } from '#lib/stores/preferences.store.js';
|
||||
import { getAssetHlsSessionUrl, getAssetHlsUrl, getAssetMediaUrl, getAssetPlaybackUrl } from '#lib/utils.js';
|
||||
import { assetViewerFadeDuration } from '#lib/constants.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { castManager } from '#lib/managers/cast-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { mediaCapabilitiesManager } from '#lib/managers/media-capabilities-manager.svelte.ts';
|
||||
import { autoPlayVideo, lang, loopVideo as loopVideoPreference } from '#lib/stores/preferences.store.ts';
|
||||
import { getAssetHlsSessionUrl, getAssetHlsUrl, getAssetMediaUrl, getAssetPlaybackUrl } from '#lib/utils.ts';
|
||||
import { AssetMediaSize, type AssetResponseDto } from '@immich/sdk';
|
||||
import { Icon, LoadingSpinner, shortcuts } from '@immich/ui';
|
||||
import {
|
||||
@@ -44,8 +44,8 @@
|
||||
import { t } from 'svelte-i18n';
|
||||
import { fade } from 'svelte/transition';
|
||||
import './immich-time-range';
|
||||
import { createPreloadedQuery } from '#lib/queries/client.js';
|
||||
import { getPublicConfigQuery } from '#lib/queries/config-public.query.js';
|
||||
import { createPreloadedQuery } from '#lib/queries/client.ts';
|
||||
import { getPublicConfigQuery } from '#lib/queries/config-public.query.ts';
|
||||
|
||||
const query = createPreloadedQuery(getPublicConfigQuery);
|
||||
const publicConfig = $derived(query.data);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { getAssetPlaybackUrl, getAssetUrl } from '#lib/utils.js';
|
||||
import { getAssetPlaybackUrl, getAssetUrl } from '#lib/utils.ts';
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
import { LoadingSpinner } from '@immich/ui';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { castManager, CastState } from '#lib/managers/cast-manager.svelte.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { castManager, CastState } from '#lib/managers/cast-manager.svelte.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { Icon, IconButton, LoadingSpinner } from '@immich/ui';
|
||||
import { mdiCastConnected, mdiPause, mdiPlay } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import VideoNativeViewer from '#lib/components/asset-viewer/VideoNativeViewer.svelte';
|
||||
import VideoPanoramaViewer from '#lib/components/asset-viewer/VideoPanoramaViewer.svelte';
|
||||
import { ProjectionType } from '#lib/constants.js';
|
||||
import { ProjectionType } from '#lib/constants.ts';
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
|
||||
interface Props {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import { shortcut } from '#lib/actions/shortcut.js';
|
||||
import type { OnAction, PreAction } from '#lib/components/asset-viewer/actions/action.js';
|
||||
import { shortcut } from '#lib/actions/shortcut.ts';
|
||||
import type { OnAction, PreAction } from '#lib/components/asset-viewer/actions/action.ts';
|
||||
import MenuOption from '#lib/components/shared-components/context-menu/MenuOption.svelte';
|
||||
import { AssetAction } from '#lib/constants.js';
|
||||
import { toggleArchive } from '#lib/utils/asset-utils.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { AssetAction } from '#lib/constants.ts';
|
||||
import { toggleArchive } from '#lib/utils/asset-utils.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
import { mdiArchiveArrowDownOutline, mdiArchiveArrowUpOutline } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { AssetAction } from '#lib/constants.js';
|
||||
import { featureFlagsManager } from '#lib/managers/feature-flags-manager.svelte.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { AssetAction } from '#lib/constants.ts';
|
||||
import { featureFlagsManager } from '#lib/managers/feature-flags-manager.svelte.ts';
|
||||
import AssetDeleteConfirmModal from '#lib/modals/AssetDeleteConfirmModal.svelte';
|
||||
import { showDeleteModal } from '#lib/stores/preferences.store.js';
|
||||
import { deleteAssets as deleteAssetsUtil, type OnUndoDelete } from '#lib/utils/actions.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { showDeleteModal } from '#lib/stores/preferences.store.ts';
|
||||
import { deleteAssets as deleteAssetsUtil, type OnUndoDelete } from '#lib/utils/actions.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import { deleteAssets, type AssetResponseDto } from '@immich/sdk';
|
||||
import { IconButton, modalManager, toastManager } from '@immich/ui';
|
||||
import { mdiDeleteForeverOutline, mdiDeleteOutline } from '@mdi/js';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { Icon } from '@immich/ui';
|
||||
import { mdiChevronRight, mdiChevronLeft } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
import NavigationArea from '../NavigationArea.svelte';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
|
||||
interface Props {
|
||||
onNextAsset: () => void;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { Icon } from '@immich/ui';
|
||||
import { mdiChevronLeft, mdiChevronRight } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
import NavigationArea from '../NavigationArea.svelte';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
|
||||
interface Props {
|
||||
onPreviousAsset: () => void;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import MenuOption from '#lib/components/shared-components/context-menu/MenuOption.svelte';
|
||||
import { AssetAction } from '#lib/constants.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { AssetAction } from '#lib/constants.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import { restoreAssets, type AssetResponseDto } from '@immich/sdk';
|
||||
import { toastManager } from '@immich/ui';
|
||||
import { mdiHistory } from '@mdi/js';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import MenuOption from '#lib/components/shared-components/context-menu/MenuOption.svelte';
|
||||
import { AssetAction } from '#lib/constants.js';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { AssetAction } from '#lib/constants.ts';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { AssetVisibility, updateAssets } from '@immich/sdk';
|
||||
import { modalManager } from '@immich/ui';
|
||||
import { mdiLockOpenVariantOutline, mdiLockOutline } from '@mdi/js';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { AssetAction } from '#lib/constants.js';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.js';
|
||||
import type { AssetAction } from '#lib/constants.ts';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.ts';
|
||||
|
||||
type ActionMap = {
|
||||
[AssetAction.ARCHIVE]: { asset: TimelineAsset };
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { editManager, EditToolType } from '#lib/managers/edit/edit-manager.svelte.js';
|
||||
import { websocketEvents } from '#lib/stores/websocket.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { editManager, EditToolType } from '#lib/managers/edit/edit-manager.svelte.ts';
|
||||
import { websocketEvents } from '#lib/stores/websocket.ts';
|
||||
import { getAssetEdits, type AssetResponseDto } from '@immich/sdk';
|
||||
import { Button, HStack, IconButton } from '@immich/ui';
|
||||
import { mdiClose } from '@mdi/js';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import { ResizeBoundary, transformManager } from '#lib/managers/edit/transform-manager.svelte.js';
|
||||
import { getAssetMediaUrl } from '#lib/utils.js';
|
||||
import { getAltText } from '#lib/utils/thumbnail-util.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { ResizeBoundary, transformManager } from '#lib/managers/edit/transform-manager.svelte.ts';
|
||||
import { getAssetMediaUrl } from '#lib/utils.ts';
|
||||
import { getAltText } from '#lib/utils/thumbnail-util.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import { AssetMediaSize, type AssetResponseDto } from '@immich/sdk';
|
||||
import { Icon } from '@immich/ui';
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { transformManager } from '#lib/managers/edit/transform-manager.svelte.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { transformManager } from '#lib/managers/edit/transform-manager.svelte.ts';
|
||||
import { Button, HStack, IconButton } from '@immich/ui';
|
||||
import { mdiFlipHorizontal, mdiFlipVertical, mdiRotateLeft, mdiRotateRight } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<script lang="ts">
|
||||
import { shortcut } from '#lib/actions/shortcut.js';
|
||||
import { shortcut } from '#lib/actions/shortcut.ts';
|
||||
import ImageThumbnail from '#lib/components/assets/thumbnail/ImageThumbnail.svelte';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import FaceCreateTagModal from '#lib/modals/CreateFaceModal.svelte';
|
||||
import { faceManager } from '#lib/stores/face.svelte.js';
|
||||
import { getPeopleThumbnailUrl } from '#lib/utils.js';
|
||||
import { getNaturalSize, scaleToFit } from '#lib/utils/container-utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.js';
|
||||
import { faceManager } from '#lib/stores/face.svelte.ts';
|
||||
import { getPeopleThumbnailUrl } from '#lib/utils.ts';
|
||||
import { getNaturalSize, scaleToFit } from '#lib/utils/container-utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.ts';
|
||||
import { createFace, getAllPeople, type PersonResponseDto } from '@immich/sdk';
|
||||
import { Button, Input, modalManager, toastManager } from '@immich/ui';
|
||||
import { Canvas, InteractiveFabricObject, Rect } from 'fabric';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<script lang="ts">
|
||||
import { ProjectionType } from '#lib/constants.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.js';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.js';
|
||||
import { locale, playVideoThumbnailOnHover } from '#lib/stores/preferences.store.js';
|
||||
import { getAssetMediaUrl, getAssetPlaybackUrl } from '#lib/utils.js';
|
||||
import { moveFocus } from '#lib/utils/focus-util.js';
|
||||
import { currentUrlReplaceAssetId } from '#lib/utils/navigation.js';
|
||||
import { getAltText } from '#lib/utils/thumbnail-util.js';
|
||||
import { ProjectionType } from '#lib/constants.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import type { TimelineAsset } from '#lib/managers/timeline-manager/types.ts';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.ts';
|
||||
import { locale, playVideoThumbnailOnHover } from '#lib/stores/preferences.store.ts';
|
||||
import { getAssetMediaUrl, getAssetPlaybackUrl } from '#lib/utils.ts';
|
||||
import { moveFocus } from '#lib/utils/focus-util.ts';
|
||||
import { currentUrlReplaceAssetId } from '#lib/utils/navigation.ts';
|
||||
import { getAltText } from '#lib/utils/thumbnail-util.ts';
|
||||
import { AssetMediaSize, AssetVisibility, type UserResponseDto } from '@immich/sdk';
|
||||
import { Icon } from '@immich/ui';
|
||||
import {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { getIntersectionObserverMock } from '#lib/__mocks__/intersection-observer.mock.js';
|
||||
import { getIntersectionObserverMock } from '#lib/__mocks__/intersection-observer.mock.ts';
|
||||
import Thumbnail from '#lib/components/assets/thumbnail/Thumbnail.svelte';
|
||||
import { getTabbable } from '#lib/utils/focus-util.js';
|
||||
import { getTabbable } from '#lib/utils/focus-util.ts';
|
||||
import { render } from '@testing-library/svelte';
|
||||
import { assetFactory } from '#test-data/factories/asset-factory';
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<script lang="ts">
|
||||
import SearchPeople from '#lib/components/faces-page/PeopleSearch.svelte';
|
||||
import { timeBeforeShowLoadingSpinner } from '#lib/constants.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { getPeopleThumbnailUrl, handlePromiseError } from '#lib/utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { zoomImageToBase64 } from '#lib/utils/people-utils.js';
|
||||
import { getPersonNameWithHiddenValue } from '#lib/utils/person.js';
|
||||
import { timeBeforeShowLoadingSpinner } from '#lib/constants.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { getPeopleThumbnailUrl, handlePromiseError } from '#lib/utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { zoomImageToBase64 } from '#lib/utils/people-utils.ts';
|
||||
import { getPersonNameWithHiddenValue } from '#lib/utils/person.ts';
|
||||
import { AssetTypeEnum, getAllPeople, type AssetFaceResponseDto, type PersonResponseDto } from '@immich/sdk';
|
||||
import { IconButton, LoadingSpinner } from '@immich/ui';
|
||||
import { mdiArrowLeftThin, mdiClose, mdiMagnify, mdiPlus } from '@mdi/js';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<script lang="ts">
|
||||
import { initInput } from '#lib/actions/focus.js';
|
||||
import { maximumLengthSearchPeople, timeBeforeShowLoadingSpinner } from '#lib/constants.js';
|
||||
import { initInput } from '#lib/actions/focus.ts';
|
||||
import { maximumLengthSearchPeople, timeBeforeShowLoadingSpinner } from '#lib/constants.ts';
|
||||
import SearchBar from '#lib/elements/SearchBar.svelte';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { searchNameLocal } from '#lib/utils/person.js';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { searchNameLocal } from '#lib/utils/person.ts';
|
||||
import { searchPerson, type PersonResponseDto } from '@immich/sdk';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<script lang="ts">
|
||||
import { shortcut } from '#lib/actions/shortcut.js';
|
||||
import { shortcut } from '#lib/actions/shortcut.ts';
|
||||
import OnEvents from '#lib/components/OnEvents.svelte';
|
||||
import { timeBeforeShowLoadingSpinner } from '#lib/constants.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { eventManager } from '#lib/managers/event-manager.svelte.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { getPeopleThumbnailUrl, handlePromiseError } from '#lib/utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { zoomImageToBase64 } from '#lib/utils/people-utils.js';
|
||||
import { getPersonNameWithHiddenValue } from '#lib/utils/person.js';
|
||||
import { timeBeforeShowLoadingSpinner } from '#lib/constants.ts';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { eventManager } from '#lib/managers/event-manager.svelte.ts';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
import { getPeopleThumbnailUrl, handlePromiseError } from '#lib/utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { zoomImageToBase64 } from '#lib/utils/people-utils.ts';
|
||||
import { getPersonNameWithHiddenValue } from '#lib/utils/person.ts';
|
||||
import {
|
||||
AssetTypeEnum,
|
||||
createPerson,
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
import BreadcrumbActionPage from '#lib/components/BreadcrumbActionPage.svelte';
|
||||
import NavigationBar from '#lib/components/shared-components/navigation-bar/NavigationBar.svelte';
|
||||
import BottomInfo from '#lib/components/shared-components/side-bar/BottomInfo.svelte';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { sidebarStore } from '#lib/stores/sidebar.svelte.js';
|
||||
import type { HeaderButtonActionItem } from '#lib/types.js';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { sidebarStore } from '#lib/stores/sidebar.svelte.ts';
|
||||
import type { HeaderButtonActionItem } from '#lib/types.ts';
|
||||
import { AppShell, AppShellHeader, AppShellSidebar, MenuItemType, NavbarItem, type BreadcrumbItem } from '@immich/ui';
|
||||
import { mdiAccountMultipleOutline, mdiBookshelf, mdiCog, mdiServer, mdiTrayFull, mdiWrench } from '@mdi/js';
|
||||
import type { Snippet } from 'svelte';
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import { useActions, type ActionArray } from '#lib/actions/use-actions.js';
|
||||
import { useActions, type ActionArray } from '#lib/actions/use-actions.ts';
|
||||
import NavigationBar from '#lib/components/shared-components/navigation-bar/NavigationBar.svelte';
|
||||
import UserSidebar from '#lib/components/shared-components/side-bar/UserSidebar.svelte';
|
||||
import type { HeaderButtonActionItem } from '#lib/types.js';
|
||||
import { openFileUploadDialog } from '#lib/utils/file-uploader.js';
|
||||
import type { HeaderButtonActionItem } from '#lib/types.ts';
|
||||
import { openFileUploadDialog } from '#lib/utils/file-uploader.ts';
|
||||
import { Button, ContextMenuButton, HStack, isMenuItemType, type MenuItemType } from '@immich/ui';
|
||||
import type { Snippet } from 'svelte';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { renderWithTooltips } from '#tests/helpers';
|
||||
import { screen } from '@testing-library/svelte';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<script lang="ts">
|
||||
import OnEvents from '#lib/components/OnEvents.svelte';
|
||||
import { BackupFileStatus } from '#lib/constants.js';
|
||||
import { getDatabaseBackupActions, handleRestoreDatabaseBackup } from '#lib/services/database-backups.service.js';
|
||||
import { locale } from '#lib/stores/preferences.store.js';
|
||||
import { getBytesWithUnit } from '#lib/utils/byte-units.js';
|
||||
import { BackupFileStatus } from '#lib/constants.ts';
|
||||
import { getDatabaseBackupActions, handleRestoreDatabaseBackup } from '#lib/services/database-backups.service.ts';
|
||||
import { locale } from '#lib/stores/preferences.store.ts';
|
||||
import { getBytesWithUnit } from '#lib/utils/byte-units.ts';
|
||||
import { Button, Card, CardBody, ContextMenuButton, HStack, Icon, Stack, Text } from '@immich/ui';
|
||||
import { mdiAlertCircle, mdiCheckCircle, mdiDatabaseRefreshOutline } from '@mdi/js';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import HeaderActionButton from '#lib/components/HeaderActionButton.svelte';
|
||||
import MaintenanceBackupEntry from '#lib/components/maintenance/MaintenanceBackupEntry.svelte';
|
||||
import OnEvents from '#lib/components/OnEvents.svelte';
|
||||
import { handleUploadDatabaseBackup } from '#lib/services/database-backups.service.js';
|
||||
import { handleUploadDatabaseBackup } from '#lib/services/database-backups.service.ts';
|
||||
import type { DatabaseBackupDto } from '@immich/sdk';
|
||||
import { listDatabaseBackups } from '@immich/sdk';
|
||||
import { Card, CardBody, HStack, Icon, ProgressBar, Stack, Text } from '@immich/ui';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import OnEvents from '#lib/components/OnEvents.svelte';
|
||||
import { getIntegrityReportItemActions } from '#lib/services/integrity.service.js';
|
||||
import { getIntegrityReportItemActions } from '#lib/services/integrity.service.ts';
|
||||
import type { IntegrityReport } from '@immich/sdk';
|
||||
import { ContextMenuButton, TableCell, TableRow } from '@immich/ui';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
import IndividualSharedViewer from '#lib/components/share-page/IndividualSharedViewer.svelte';
|
||||
import ControlAppBar from '#lib/components/shared-components/ControlAppBar.svelte';
|
||||
import ThemeButton from '#lib/components/shared-components/ThemeButton.svelte';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import { setSharedLink } from '#lib/utils.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { navigate } from '#lib/utils/navigation.js';
|
||||
import { assetViewerManager } from '#lib/managers/asset-viewer-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import { setSharedLink } from '#lib/utils.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { navigate } from '#lib/utils/navigation.ts';
|
||||
import { sharedLinkLogin, SharedLinkType, type AssetResponseDto, type SharedLinkResponseDto } from '@immich/sdk';
|
||||
import { Button, Logo, PasswordInput } from '@immich/ui';
|
||||
import { onDestroy, tick } from 'svelte';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { ByteUnit } from '#lib/utils/byte-units.js';
|
||||
import { ByteUnit } from '#lib/utils/byte-units.ts';
|
||||
import { Icon, Text } from '@immich/ui';
|
||||
import type { Snippet } from 'svelte';
|
||||
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<script lang="ts">
|
||||
import { goto } from '$app/navigation';
|
||||
import type { Action } from '#lib/components/asset-viewer/actions/action.js';
|
||||
import type { Action } from '#lib/components/asset-viewer/actions/action.ts';
|
||||
import DownloadAction from '#lib/components/timeline/actions/DownloadAction.svelte';
|
||||
import RemoveFromSharedLink from '#lib/components/timeline/actions/RemoveFromSharedLinkAction.svelte';
|
||||
import AssetSelectControlBar from '#lib/components/timeline/AssetSelectControlBar.svelte';
|
||||
import { AssetAction } from '#lib/constants.js';
|
||||
import { assetMultiSelectManager } from '#lib/managers/asset-multi-select-manager.svelte.js';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.js';
|
||||
import type { Viewport } from '#lib/managers/timeline-manager/types.js';
|
||||
import { Route } from '#lib/route.js';
|
||||
import { dragAndDropFilesStore } from '#lib/stores/drag-and-drop-files.store.js';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.js';
|
||||
import { handlePromiseError } from '#lib/utils.js';
|
||||
import { downloadArchive } from '#lib/utils/asset-utils.js';
|
||||
import { fileUploadHandler, openFileUploadDialog } from '#lib/utils/file-uploader.js';
|
||||
import { handleError } from '#lib/utils/handle-error.js';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.js';
|
||||
import { AssetAction } from '#lib/constants.ts';
|
||||
import { assetMultiSelectManager } from '#lib/managers/asset-multi-select-manager.svelte.ts';
|
||||
import { authManager } from '#lib/managers/auth-manager.svelte.ts';
|
||||
import type { Viewport } from '#lib/managers/timeline-manager/types.ts';
|
||||
import { Route } from '#lib/route.ts';
|
||||
import { dragAndDropFilesStore } from '#lib/stores/drag-and-drop-files.store.ts';
|
||||
import { mediaQueryManager } from '#lib/stores/media-query-manager.svelte.ts';
|
||||
import { handlePromiseError } from '#lib/utils.ts';
|
||||
import { downloadArchive } from '#lib/utils/asset-utils.ts';
|
||||
import { fileUploadHandler, openFileUploadDialog } from '#lib/utils/file-uploader.ts';
|
||||
import { handleError } from '#lib/utils/handle-error.ts';
|
||||
import { toTimelineAsset } from '#lib/utils/timeline-util.ts';
|
||||
import { getAssetInfo, type SharedLinkResponseDto } from '@immich/sdk';
|
||||
import { IconButton, Logo, toastManager } from '@immich/ui';
|
||||
import { mdiDownload, mdiFileImagePlusOutline, mdiSelectAll } from '@mdi/js';
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import { focusOutside } from '#lib/actions/focus-outside.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { generateId } from '#lib/utils/generate-id.js';
|
||||
import { focusOutside } from '#lib/actions/focus-outside.ts';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import { generateId } from '#lib/utils/generate-id.ts';
|
||||
import { Icon, IconButton, Label } from '@immich/ui';
|
||||
import { mdiChevronDown, mdiClose, mdiMagnify } from '@mdi/js';
|
||||
import { onMount, tick } from 'svelte';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import NumberRangeInput from '#lib/components/shared-components/NumberRangeInput.svelte';
|
||||
import { generateId } from '#lib/utils/generate-id.js';
|
||||
import { generateId } from '#lib/utils/generate-id.ts';
|
||||
import { convert } from 'geo-coordinates-parser';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import { getProfileImageUrl } from '#lib/utils.js';
|
||||
import { getProfileImageUrl } from '#lib/utils.ts';
|
||||
import { type UserAvatarColor } from '@immich/sdk';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { SCROLL_PROPERTIES } from '#lib/components/shared-components/album-selection/album-selection-utils.js';
|
||||
import { SCROLL_PROPERTIES } from '#lib/components/shared-components/album-selection/album-selection-utils.ts';
|
||||
import { Icon } from '@immich/ui';
|
||||
import { mdiPlus } from '@mdi/js';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@ import {
|
||||
type AlbumModalRow,
|
||||
AlbumModalRowConverter,
|
||||
AlbumModalRowType,
|
||||
} from '#lib/components/shared-components/album-selection/album-selection-utils.js';
|
||||
import { AlbumSortBy, SortOrder } from '#lib/stores/preferences.store.js';
|
||||
} from '#lib/components/shared-components/album-selection/album-selection-utils.ts';
|
||||
import { AlbumSortBy, SortOrder } from '#lib/stores/preferences.store.ts';
|
||||
import type { AlbumResponseDto } from '@immich/sdk';
|
||||
import { albumFactory } from '#test-data/factories/album-factory';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { sortAlbums } from '#lib/utils/album-utils.js';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.js';
|
||||
import { sortAlbums } from '#lib/utils/album-utils.ts';
|
||||
import { normalizeSearchString } from '#lib/utils/string-utils.ts';
|
||||
import type { AlbumResponseDto } from '@immich/sdk';
|
||||
import { t } from 'svelte-i18n';
|
||||
import { get } from 'svelte/store';
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<script lang="ts">
|
||||
import { contextMenuNavigation } from '#lib/actions/context-menu-navigation.js';
|
||||
import { shortcuts } from '#lib/actions/shortcut.js';
|
||||
import { contextMenuNavigation } from '#lib/actions/context-menu-navigation.ts';
|
||||
import { shortcuts } from '#lib/actions/shortcut.ts';
|
||||
import ContextMenu from '#lib/components/shared-components/context-menu/ContextMenu.svelte';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { optionClickCallbackStore, selectedIdStore } from '#lib/stores/context-menu.store.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
import { optionClickCallbackStore, selectedIdStore } from '#lib/stores/context-menu.store.ts';
|
||||
import {
|
||||
getContextMenuPositionFromBoundingRect,
|
||||
getContextMenuPositionFromEvent,
|
||||
type Align,
|
||||
} from '#lib/utils/context-menu.js';
|
||||
import { generateId } from '#lib/utils/generate-id.js';
|
||||
} from '#lib/utils/context-menu.ts';
|
||||
import { generateId } from '#lib/utils/generate-id.ts';
|
||||
import { IconButton, type Color, type Size, type Variants } from '@immich/ui';
|
||||
import type { Snippet } from 'svelte';
|
||||
import type { HTMLAttributes } from 'svelte/elements';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { clickOutside } from '#lib/actions/click-outside.js';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.js';
|
||||
import { clickOutside } from '#lib/actions/click-outside.ts';
|
||||
import { languageManager } from '#lib/managers/language-manager.svelte.ts';
|
||||
import type { Snippet } from 'svelte';
|
||||
|
||||
interface Props {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import type { Shortcut } from '#lib/actions/shortcut.js';
|
||||
import { shortcut as bindShortcut, shortcutLabel as computeShortcutLabel } from '#lib/actions/shortcut.js';
|
||||
import { optionClickCallbackStore, selectedIdStore } from '#lib/stores/context-menu.store.js';
|
||||
import { generateId } from '#lib/utils/generate-id.js';
|
||||
import type { Shortcut } from '#lib/actions/shortcut.ts';
|
||||
import { shortcut as bindShortcut, shortcutLabel as computeShortcutLabel } from '#lib/actions/shortcut.ts';
|
||||
import { optionClickCallbackStore, selectedIdStore } from '#lib/stores/context-menu.store.ts';
|
||||
import { generateId } from '#lib/utils/generate-id.ts';
|
||||
import { Icon, type IconLike } from '@immich/ui';
|
||||
|
||||
interface Props {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user