From cb1e8a86a0d7075ce897d71dc07550a47c2f271c Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Sat, 12 Sep 2026 10:07:23 +0200 Subject: [PATCH 1/3] fix(tags): read the tag id from the node instead of its attributes The tags view has shown "No tags yet" for every account since the bump to @nextcloud/files 4.0.0 (41ed241f9). The Node class gained an `id` getter, and a Node refuses to store an attribute named after one of its getters, so the `oc:id` property the systemtags-assigned listing answers was silently dropped and `tag.attributes.id` became undefined for every tag. The view then filtered every tag out. The id is now handed to the Node as the file id it reads its own `id` from, and the store keys tags by that `id`. Since Node ids are strings, the tag ids of the store and the services follow. The listing also leads with the collection itself, which the client does not strip and which used to be discarded by the very same attribute check. It is now filtered out before turning the entries into tags. Assisted-by: ClaudeCode:claude-fable-5-1 Signed-off-by: skjnldsv --- src/components/TagCover.vue | 2 +- src/services/SystemTags.ts | 16 +++++++++++++--- src/services/TaggedImages.ts | 2 +- src/store/systemtags.ts | 23 ++++++++++++----------- src/views/TagsView.vue | 6 +++--- 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/components/TagCover.vue b/src/components/TagCover.vue index c2d89a3619..0084b214f1 100644 --- a/src/components/TagCover.vue +++ b/src/components/TagCover.vue @@ -88,7 +88,7 @@ export default defineComponent({ if (this.tag.attributes['files-assigned']) { return } - this.$store.dispatch('fetchTagFiles', { id: this.tag.attributes.id, signal: this.abortController.signal }) + this.$store.dispatch('fetchTagFiles', { id: this.tag.id, signal: this.abortController.signal }) }, }, diff --git a/src/services/SystemTags.ts b/src/services/SystemTags.ts index 09a0dedbef..3b26b36489 100644 --- a/src/services/SystemTags.ts +++ b/src/services/SystemTags.ts @@ -3,8 +3,8 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -import type { File } from '@nextcloud/files' import type { FileStat, GetDirectoryContentsOptions, ResponseDataDetailed } from 'webdav' +import type { Tag } from '../store/systemtags.ts' import { resultToNode } from '@nextcloud/files/dav' import { davClient } from './DavClient.ts' @@ -15,7 +15,7 @@ import { davClient } from './DavClient.ts' * @param path * @param options */ -export default async function(path: string, options: GetDirectoryContentsOptions = {}): Promise { +export default async function(path: string, options: GetDirectoryContentsOptions = {}): Promise { const response = await davClient.getDirectoryContents('/systemtags-assigned/image', { data: ` - return response.data.map((data) => resultToNode(data, '/systemtags-assigned/image') as File) + return response.data + // The listing leads with the collection itself, whose properties are all + // answered empty. + .filter((data) => Boolean(data.props?.id)) + // The id of a tag is answered as `oc:id`. A Node keeps `id` for its own + // getter and drops it from the attributes, so the id is handed over as the + // file id the getter reads instead. + .map((data) => { + const props = { ...data.props, fileid: data.props?.id } as FileStat['props'] + return resultToNode({ ...data, props }, '/systemtags-assigned/image') as Tag + }) } diff --git a/src/services/TaggedImages.ts b/src/services/TaggedImages.ts index d3b4207ec2..d93d733099 100644 --- a/src/services/TaggedImages.ts +++ b/src/services/TaggedImages.ts @@ -17,7 +17,7 @@ import { getDefaultDavProps } from './DavRequest.ts' * @param id * @param options */ -export default async function(id: number, options: GetDirectoryContentsOptions = {}): Promise { +export default async function(id: string, options: GetDirectoryContentsOptions = {}): Promise { options = { headers: { method: 'REPORT', diff --git a/src/store/systemtags.ts b/src/store/systemtags.ts index 7cc6967e07..921276995c 100644 --- a/src/store/systemtags.ts +++ b/src/store/systemtags.ts @@ -11,9 +11,10 @@ import getSystemTags from '../services/SystemTags.js' import getTaggedImages from '../services/TaggedImages.js' import { sortCompare } from '../utils/fileUtils.js' +/** A tag, identified by the `id` of the Node rather than its file id. */ export type Tag = Folder & { + readonly id: string attributes: { - id: number 'display-name': string 'user-visible': boolean 'user-assignable': boolean @@ -24,9 +25,9 @@ export type Tag = Folder & { } const state = { - tags: {} as Record, - names: {} as Record, - tagsFiles: {} as Record, + tags: {} as Record, + names: {} as Record, + tagsFiles: {} as Record, } export type SystemTagsState = typeof state @@ -45,8 +46,8 @@ const mutations = { // store tag and its index list.forEach((tag) => { - Vue.set(state.tags, tag.attributes.id, tag) - Vue.set(state.names, tag.attributes['display-name'], tag.attributes.id) + Vue.set(state.tags, tag.id, tag) + Vue.set(state.names, tag.attributes['display-name'], tag.id) }) } }, @@ -58,7 +59,7 @@ const mutations = { * @param root0 * @param root0.id */ - removeTag(state: SystemTagsState, { id }: { id: number }) { + removeTag(state: SystemTagsState, { id }: { id: string }) { Vue.delete(state.names, state.tags[id].attributes.displayname) Vue.delete(state.tags, id) }, @@ -71,7 +72,7 @@ const mutations = { * @param root0.id * @param root0.files */ - updateTag(state: SystemTagsState, { id, files }: { id: number, files: File[] }) { + updateTag(state: SystemTagsState, { id, files }: { id: string, files: File[] }) { if (files.length === 0) { // Remove this tag from the list if there's no files for it Vue.delete(state.names, state.tags[id].attributes.displayname) @@ -91,7 +92,7 @@ const mutations = { const getters = { tags: (state: SystemTagsState) => state.tags, tagsNames: (state: SystemTagsState) => state.names, - tag: (state: SystemTagsState) => (id: number) => state.tags[id], + tag: (state: SystemTagsState) => (id: string) => state.tags[id], tagId: (state: SystemTagsState) => (name: string) => state.names[name], } @@ -114,7 +115,7 @@ const actions = { * @param root0.id * @param root0.files */ - updateTag(context: PhotosContext, { id, files }: { id: number, files: File[] }) { + updateTag(context: PhotosContext, { id, files }: { id: string, files: File[] }) { if (files.length === 0) { // Remove this tag from the list if there's no files for it context.commit('removeTag', { id }) @@ -122,7 +123,7 @@ const actions = { context.commit('updateTag', { id, files }) }, - async fetchTagFiles(context: PhotosContext, { id, signal }: { id: number, signal: AbortSignal }) { + async fetchTagFiles(context: PhotosContext, { id, signal }: { id: string, signal: AbortSignal }) { try { // get data const files = await getTaggedImages(id, { signal }) diff --git a/src/views/TagsView.vue b/src/views/TagsView.vue index b1309cb356..7ef3cae4d3 100644 --- a/src/views/TagsView.vue +++ b/src/views/TagsView.vue @@ -17,13 +17,13 @@ {{ t('photos', 'Popular tags') }}

{{ t('photos', 'All tags') }}

- +
@@ -72,7 +72,7 @@ export default defineComponent({ tagsList() { return Object.keys(this.tagsNames) .map((tagName) => this.tags[this.tagsNames[tagName]]) - .filter((tag) => tag && tag.attributes.id) + .filter((tag) => tag !== undefined) }, popularTags() { From 73f756e8ef9648fa223ec61695799a8b623873d0 Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Sat, 12 Sep 2026 10:07:24 +0200 Subject: [PATCH 2/3] test(e2e): cover the tags view test(e2e): cover the tags view The overview listing a tag with its photo count, the photos of a tag and no other, opening one in the viewer, the way back to the overview and the empty state. Fails without the fix of the previous commit. Assisted-by: ClaudeCode:claude-fable-5-1 Signed-off-by: skjnldsv --- tests/playwright/e2e/tags.spec.ts | 69 ++++++++++++++++ .../playwright/support/sections/PhotosApp.ts | 3 + .../support/sections/PhotosNavigation.ts | 1 + tests/playwright/support/sections/TagsPage.ts | 78 +++++++++++++++++++ 4 files changed, 151 insertions(+) create mode 100644 tests/playwright/e2e/tags.spec.ts create mode 100644 tests/playwright/support/sections/TagsPage.ts diff --git a/tests/playwright/e2e/tags.spec.ts b/tests/playwright/e2e/tags.spec.ts new file mode 100644 index 0000000000..fadb4f7076 --- /dev/null +++ b/tests/playwright/e2e/tags.spec.ts @@ -0,0 +1,69 @@ +/*! + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { expect, test } from '../support/fixtures/photos-app.ts' +import { NavigationEntry } from '../support/sections/PhotosNavigation.ts' +import { MEDIA_FIXTURES } from '../support/utils/media.ts' + +const [PHOTO, OTHER_PHOTO, UNTAGGED_PHOTO] = MEDIA_FIXTURES + +test.describe('The tags view', () => { + test('lists a tag once a photo of the account carries it', async ({ photosApp, seedTag, user }) => { + const tag = `view-${user.userId}` + await seedTag(tag, [PHOTO, OTHER_PHOTO]) + + await photosApp.timeline.open() + await photosApp.navigation.getEntry(NavigationEntry.tags).click() + + await expect(photosApp.tags.allTagsHeading()).toBeVisible() + await expect(photosApp.tags.getTag(tag)).toContainText('2 photos') + }) + + test('shows the photos carrying the tag and no other', async ({ photosApp, seedTag, user }) => { + const tag = `content-${user.userId}` + await seedTag(tag, [PHOTO, OTHER_PHOTO]) + + await photosApp.tags.openTag(tag) + + await expect(photosApp.tags.photoCount()).toHaveText('2 photos') + await expect(photosApp.tags.grid.getMedia(PHOTO)).toBeVisible() + await expect(photosApp.tags.grid.getMedia(OTHER_PHOTO)).toBeVisible() + await expect(photosApp.tags.grid.getMedia(UNTAGGED_PHOTO)).toHaveCount(0) + await expect(photosApp.tags.grid.getAllMedia()).toHaveCount(2) + }) + + test('opens a photo of the tag in the viewer', async ({ photosApp, seedTag, user }) => { + const tag = `viewer-${user.userId}` + await seedTag(tag, [PHOTO]) + + await photosApp.tags.openTag(tag) + await photosApp.tags.grid.open(PHOTO) + + await photosApp.viewer.waitForPhoto(PHOTO) + }) + + test('leads from the overview into a tag and back', async ({ photosApp, seedTag, user }) => { + const tag = `roundtrip-${user.userId}` + await seedTag(tag, [PHOTO]) + + await photosApp.tags.open() + await photosApp.tags.getTag(tag).click() + await expect(photosApp.tags.tagHeading(tag)).toBeVisible() + await expect(photosApp.tags.grid.getMedia(PHOTO)).toBeVisible() + + await photosApp.tags.backButton().click() + + await expect(photosApp.tags.allTagsHeading()).toBeVisible() + await expect(photosApp.tags.getTag(tag)).toBeVisible() + await expect(photosApp.page).toHaveURL(/\/apps\/photos\/tags\/?$/) + }) + + test('tells the account no photo carries a tag yet', async ({ photosApp }) => { + await photosApp.tags.open() + + await expect(photosApp.tags.emptyState()).toBeVisible() + await expect(photosApp.tags.allTagsHeading()).toHaveCount(0) + }) +}) diff --git a/tests/playwright/support/sections/PhotosApp.ts b/tests/playwright/support/sections/PhotosApp.ts index 24bf16dac9..8f75fb1fe1 100644 --- a/tests/playwright/support/sections/PhotosApp.ts +++ b/tests/playwright/support/sections/PhotosApp.ts @@ -17,6 +17,7 @@ import { PlacesPage } from './PlacesPage.ts' import { PublicAlbumPage } from './PublicAlbumPage.ts' import { SharedAlbumPage } from './SharedAlbumPage.ts' import { SharedAlbumsPage } from './SharedAlbumsPage.ts' +import { TagsPage } from './TagsPage.ts' import { TimelinePage } from './TimelinePage.ts' import { ViewerModal } from './ViewerModal.ts' @@ -42,6 +43,7 @@ export class PhotosApp { public readonly folders: FoldersPage public readonly faces: FacesPage public readonly face: FacePage + public readonly tags: TagsPage public readonly viewer: ViewerModal constructor(public readonly page: Page) { @@ -58,6 +60,7 @@ export class PhotosApp { this.folders = new FoldersPage(page) this.faces = new FacesPage(page) this.face = new FacePage(page) + this.tags = new TagsPage(page) this.viewer = new ViewerModal(page) } } diff --git a/tests/playwright/support/sections/PhotosNavigation.ts b/tests/playwright/support/sections/PhotosNavigation.ts index 88916617b4..e51874333c 100644 --- a/tests/playwright/support/sections/PhotosNavigation.ts +++ b/tests/playwright/support/sections/PhotosNavigation.ts @@ -28,6 +28,7 @@ export const NavigationEntry = { memories: 'Memories', places: 'Places', map: 'Map', + tags: 'Tags', } as const export type NavigationEntryName = (typeof NavigationEntry)[keyof typeof NavigationEntry] diff --git a/tests/playwright/support/sections/TagsPage.ts b/tests/playwright/support/sections/TagsPage.ts new file mode 100644 index 0000000000..620f3102f5 --- /dev/null +++ b/tests/playwright/support/sections/TagsPage.ts @@ -0,0 +1,78 @@ +/*! + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: MIT + */ + +import type { Locator, Page } from '@playwright/test' + +import { expect } from '@playwright/test' +import { MediaGrid } from './MediaGrid.ts' + +/** + * The tags carried by the photos of the account, and the photos of a single tag. + * + * Tags belong to the whole instance, but the overview only lists the ones put on + * a photo of the account, which is what keeps the accounts of parallel tests + * from seeing each other's tags. + */ +export class TagsPage { + /** The photos of the open tag. */ + public readonly grid: MediaGrid + + constructor(public readonly page: Page) { + this.grid = new MediaGrid(page, page.getByRole('main')) + } + + /** The heading above the list of every tag. */ + public allTagsHeading(): Locator { + return this.page.getByRole('heading', { level: 2, name: 'All tags' }) + } + + /** The message shown in place of the overview while no photo carries a tag. */ + public emptyState(): Locator { + return this.page.getByRole('main').getByText('No tags yet', { exact: true }) + } + + /** + * The cover of one tag, which is also the link opening it. It is named after + * the tag and the number of photos carrying it. + * + * @param tagName - Name of the tag + */ + public getTag(tagName: string): Locator { + return this.page.getByRole('main').getByRole('link').filter({ + has: this.page.getByRole('heading', { level: 3, name: tagName, exact: true }), + }) + } + + /** The heading naming the open tag. */ + public tagHeading(tagName: string): Locator { + return this.page.getByRole('heading', { level: 2, name: tagName, exact: true }) + } + + /** The line under the heading counting the photos of the open tag. */ + public photoCount(): Locator { + return this.page.getByRole('main').locator('.heading-subline') + } + + public backButton(): Locator { + return this.page.getByRole('main').getByRole('button', { name: 'Back to tags overview' }) + } + + /** Open the overview of the tags. */ + public async open(): Promise { + await this.page.goto('apps/photos/tags/') + await expect(this.page.getByRole('main')).toBeVisible() + } + + /** + * Open a tag and wait for its photos to be rendered. + * + * @param tagName - Name of the tag to open + */ + public async openTag(tagName: string): Promise { + await this.page.goto(`apps/photos/tags/${encodeURIComponent(tagName)}`) + await expect(this.tagHeading(tagName)).toBeVisible() + await expect(this.grid.getAllMedia().first()).toBeVisible() + } +} From 649aa5a4b075733e1aaa590e6c04ff6175e837fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= <14975046+skjnldsv@users.noreply.github.com> Date: Tue, 27 Oct 2026 21:12:07 +0100 Subject: [PATCH 3/3] chore(assets): Recompile assets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ <14975046+skjnldsv@users.noreply.github.com> --- css/TagsView-DR177-FV.chunk.css | 1 + css/TagsView-DhQ9SnI2.chunk.css | 1 - ...Um5.chunk.mjs => ActionFavorite-C5Kvw7qq.chunk.mjs} | 4 ++-- ...cense => ActionFavorite-C5Kvw7qq.chunk.mjs.license} | 0 ...k.mjs.map => ActionFavorite-C5Kvw7qq.chunk.mjs.map} | 2 +- ...e => ActionFavorite-C5Kvw7qq.chunk.mjs.map.license} | 0 ...auBD0.chunk.mjs => AlbumContent-DH-v3OMz.chunk.mjs} | 4 ++-- ...license => AlbumContent-DH-v3OMz.chunk.mjs.license} | 0 ...unk.mjs.map => AlbumContent-DH-v3OMz.chunk.mjs.map} | 2 +- ...nse => AlbumContent-DH-v3OMz.chunk.mjs.map.license} | 0 ...Bp1-F3W6.chunk.mjs => AlbumForm-CIQfeO19.chunk.mjs} | 4 ++-- ...js.license => AlbumForm-CIQfeO19.chunk.mjs.license} | 0 ....chunk.mjs.map => AlbumForm-CIQfeO19.chunk.mjs.map} | 2 +- ...icense => AlbumForm-CIQfeO19.chunk.mjs.map.license} | 0 ...sXtKs14.chunk.mjs => AlbumsView-DNg3EofL.chunk.mjs} | 4 ++-- ...s.license => AlbumsView-DNg3EofL.chunk.mjs.license} | 0 ...chunk.mjs.map => AlbumsView-DNg3EofL.chunk.mjs.map} | 2 +- ...cense => AlbumsView-DNg3EofL.chunk.mjs.map.license} | 0 ....chunk.mjs => CollectionContent-CJOE1HIB.chunk.mjs} | 4 ++-- ...se => CollectionContent-CJOE1HIB.chunk.mjs.license} | 0 ...js.map => CollectionContent-CJOE1HIB.chunk.mjs.map} | 2 +- ...> CollectionContent-CJOE1HIB.chunk.mjs.map.license} | 0 ...JJ.chunk.mjs => CollectionsList-DvsTmCJy.chunk.mjs} | 4 ++-- ...ense => CollectionsList-DvsTmCJy.chunk.mjs.license} | 0 ....mjs.map => CollectionsList-DvsTmCJy.chunk.mjs.map} | 2 +- ... => CollectionsList-DvsTmCJy.chunk.mjs.map.license} | 0 ....mjs => ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs} | 4 ++-- ...ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs.license} | 0 ... => ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs.map} | 2 +- ...lictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs.map.license} | 0 ...YkxPDV.chunk.mjs => FaceContent-D2nIJ9e_.chunk.mjs} | 4 ++-- ....license => FaceContent-D2nIJ9e_.chunk.mjs.license} | 0 ...hunk.mjs.map => FaceContent-D2nIJ9e_.chunk.mjs.map} | 2 +- ...ense => FaceContent-D2nIJ9e_.chunk.mjs.map.license} | 0 ...BLtUuECC.chunk.mjs => FaceCover-gbBkp1EQ.chunk.mjs} | 4 ++-- ...js.license => FaceCover-gbBkp1EQ.chunk.mjs.license} | 0 ....chunk.mjs.map => FaceCover-gbBkp1EQ.chunk.mjs.map} | 2 +- ...icense => FaceCover-gbBkp1EQ.chunk.mjs.map.license} | 0 ...lLjp.chunk.mjs => FaceMergeForm-D8F2eyk-.chunk.mjs} | 4 ++-- ...icense => FaceMergeForm-D8F2eyk-.chunk.mjs.license} | 0 ...nk.mjs.map => FaceMergeForm-D8F2eyk-.chunk.mjs.map} | 2 +- ...se => FaceMergeForm-D8F2eyk-.chunk.mjs.map.license} | 0 ...BevQ-VWL.chunk.mjs => FacesView-D1C_tyn5.chunk.mjs} | 4 ++-- ...js.license => FacesView-D1C_tyn5.chunk.mjs.license} | 0 ....chunk.mjs.map => FacesView-D1C_tyn5.chunk.mjs.map} | 2 +- ...icense => FacesView-D1C_tyn5.chunk.mjs.map.license} | 0 ...nk.mjs => FetchCollectionsMixin-CUVkpmKO.chunk.mjs} | 4 ++-- ...> FetchCollectionsMixin-CUVkpmKO.chunk.mjs.license} | 0 ...ap => FetchCollectionsMixin-CUVkpmKO.chunk.mjs.map} | 2 +- ...tchCollectionsMixin-CUVkpmKO.chunk.mjs.map.license} | 0 ...S8.chunk.mjs => FetchFilesMixin-BH5SRa4_.chunk.mjs} | 4 ++-- ...ense => FetchFilesMixin-BH5SRa4_.chunk.mjs.license} | 0 ....mjs.map => FetchFilesMixin-BH5SRa4_.chunk.mjs.map} | 2 +- ... => FetchFilesMixin-BH5SRa4_.chunk.mjs.map.license} | 0 ...5lZm.chunk.mjs => FileComponent-CmXjv9Ap.chunk.mjs} | 4 ++-- ...icense => FileComponent-CmXjv9Ap.chunk.mjs.license} | 0 ...nk.mjs.map => FileComponent-CmXjv9Ap.chunk.mjs.map} | 2 +- ...se => FileComponent-CmXjv9Ap.chunk.mjs.map.license} | 0 ...4pJki1g.chunk.mjs => FilePicker-X0WwcXf5.chunk.mjs} | 8 ++++---- ...s.license => FilePicker-X0WwcXf5.chunk.mjs.license} | 0 ...chunk.mjs.map => FilePicker-X0WwcXf5.chunk.mjs.map} | 2 +- ...cense => FilePicker-X0WwcXf5.chunk.mjs.map.license} | 0 ...hunk.mjs => FilesSelectionMixin-BM1zpezQ.chunk.mjs} | 4 ++-- ... => FilesSelectionMixin-BM1zpezQ.chunk.mjs.license} | 0 ....map => FilesSelectionMixin-BM1zpezQ.chunk.mjs.map} | 2 +- ...FilesSelectionMixin-BM1zpezQ.chunk.mjs.map.license} | 0 ...8oLUqU.chunk.mjs => FoldersView-CRivQ0YT.chunk.mjs} | 4 ++-- ....license => FoldersView-CRivQ0YT.chunk.mjs.license} | 0 ...hunk.mjs.map => FoldersView-CRivQ0YT.chunk.mjs.map} | 2 +- ...ense => FoldersView-CRivQ0YT.chunk.mjs.map.license} | 0 ...t.chunk.mjs => HeaderNavigation-IWkh3kOy.chunk.mjs} | 4 ++-- ...nse => HeaderNavigation-IWkh3kOy.chunk.mjs.license} | 0 ...mjs.map => HeaderNavigation-IWkh3kOy.chunk.mjs.map} | 2 +- ...=> HeaderNavigation-IWkh3kOy.chunk.mjs.map.license} | 0 ... InvalidFilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs} | 4 ++-- ...FilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs.license} | 0 ...alidFilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs.map} | 2 +- ...nameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs.map.license} | 0 ...w-C5I7Xsfs.chunk.mjs => MapView-BBL3qsnB.chunk.mjs} | 4 ++-- ....mjs.license => MapView-BBL3qsnB.chunk.mjs.license} | 0 ...fs.chunk.mjs.map => MapView-BBL3qsnB.chunk.mjs.map} | 2 +- ....license => MapView-BBL3qsnB.chunk.mjs.map.license} | 0 ...RC5VR.chunk.mjs => MemoriesView-BhzSole-.chunk.mjs} | 4 ++-- ...license => MemoriesView-BhzSole-.chunk.mjs.license} | 0 ...unk.mjs.map => MemoriesView-BhzSole-.chunk.mjs.map} | 2 +- ...nse => MemoriesView-BhzSole-.chunk.mjs.map.license} | 0 ....chunk.mjs => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs} | 8 ++++---- ...se => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs.license} | 0 ...js.map => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs.map} | 2 +- ...> NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs.map.license} | 0 ... NcCheckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs} | 4 ++-- ...boxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs.license} | 0 ...heckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs.map} | 2 +- ...adioSwitch-flYu6ojL-POGUumRo.chunk.mjs.map.license} | 0 ...chunk.mjs => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs} | 4 ++-- ...e => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs.license} | 0 ...s.map => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs.map} | 2 +- ... NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs.map.license} | 0 ...reB.chunk.mjs => NcEmptyContent-Dak05MxF.chunk.mjs} | 4 ++-- ...cense => NcEmptyContent-Dak05MxF.chunk.mjs.license} | 0 ...k.mjs.map => NcEmptyContent-Dak05MxF.chunk.mjs.map} | 2 +- ...e => NcEmptyContent-Dak05MxF.chunk.mjs.map.license} | 0 ...mjs => NcFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs} | 4 ++-- ...cFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs.license} | 0 ...=> NcFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs.map} | 2 +- ...mBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs.map.license} | 0 ...E3wQ.chunk.mjs => NcLoadingIcon-oAHuxj6Q.chunk.mjs} | 4 ++-- ...icense => NcLoadingIcon-oAHuxj6Q.chunk.mjs.license} | 0 ...nk.mjs.map => NcLoadingIcon-oAHuxj6Q.chunk.mjs.map} | 2 +- ...se => NcLoadingIcon-oAHuxj6Q.chunk.mjs.map.license} | 0 ... => NcProfileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs} | 8 ++++---- ...ofileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs.license} | 0 ...NcProfileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs.map} | 2 +- ...eHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs.map.license} | 0 ...k.mjs => NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs} | 4 ++-- ... NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs.license} | 0 ...p => NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs.map} | 2 +- ...rogressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs.map.license} | 0 ...nk.mjs => NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs} | 4 ++-- ...> NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs.license} | 0 ...ap => NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs.map} | 2 +- ...UserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs.map.license} | 0 ...-BytHgX8b.chunk.mjs => NcVNodes-DeIzs_-o.chunk.mjs} | 4 ++-- ...mjs.license => NcVNodes-DeIzs_-o.chunk.mjs.license} | 0 ...b.chunk.mjs.map => NcVNodes-DeIzs_-o.chunk.mjs.map} | 2 +- ...license => NcVNodes-DeIzs_-o.chunk.mjs.map.license} | 0 ...VBx2w_.chunk.mjs => PhotoSearch-DHkZxzPo.chunk.mjs} | 4 ++-- ....license => PhotoSearch-DHkZxzPo.chunk.mjs.license} | 0 ...hunk.mjs.map => PhotoSearch-DHkZxzPo.chunk.mjs.map} | 2 +- ...ense => PhotoSearch-DHkZxzPo.chunk.mjs.map.license} | 0 ...chunk.mjs => PhotosFiltersInput-DCbzjkAP.chunk.mjs} | 4 ++-- ...e => PhotosFiltersInput-DCbzjkAP.chunk.mjs.license} | 0 ...s.map => PhotosFiltersInput-DCbzjkAP.chunk.mjs.map} | 2 +- ... PhotosFiltersInput-DCbzjkAP.chunk.mjs.map.license} | 0 ...8SnwC.chunk.mjs => PhotosPicker-CNXf0Zo4.chunk.mjs} | 4 ++-- ...license => PhotosPicker-CNXf0Zo4.chunk.mjs.license} | 0 ...unk.mjs.map => PhotosPicker-CNXf0Zo4.chunk.mjs.map} | 2 +- ...nse => PhotosPicker-CNXf0Zo4.chunk.mjs.map.license} | 0 ...6ebdL.chunk.mjs => PlaceContent-BE2wMQtf.chunk.mjs} | 4 ++-- ...license => PlaceContent-BE2wMQtf.chunk.mjs.license} | 0 ...unk.mjs.map => PlaceContent-BE2wMQtf.chunk.mjs.map} | 2 +- ...nse => PlaceContent-BE2wMQtf.chunk.mjs.map.license} | 0 ...b_uKikz.chunk.mjs => PlacesView-iFnRGf6O.chunk.mjs} | 4 ++-- ...s.license => PlacesView-iFnRGf6O.chunk.mjs.license} | 0 ...chunk.mjs.map => PlacesView-iFnRGf6O.chunk.mjs.map} | 2 +- ...cense => PlacesView-iFnRGf6O.chunk.mjs.map.license} | 0 ...chunk.mjs => PublicAlbumContent-P5PylZsO.chunk.mjs} | 6 +++--- ...e => PublicAlbumContent-P5PylZsO.chunk.mjs.license} | 0 ...s.map => PublicAlbumContent-P5PylZsO.chunk.mjs.map} | 2 +- ... PublicAlbumContent-P5PylZsO.chunk.mjs.map.license} | 0 ...Ve875rrp.chunk.mjs => ShareType-DwTdT9ze.chunk.mjs} | 4 ++-- ...js.license => ShareType-DwTdT9ze.chunk.mjs.license} | 0 ....chunk.mjs.map => ShareType-DwTdT9ze.chunk.mjs.map} | 2 +- ...icense => ShareType-DwTdT9ze.chunk.mjs.map.license} | 0 ...chunk.mjs => SharedAlbumContent-BjVAZjrO.chunk.mjs} | 4 ++-- ...e => SharedAlbumContent-BjVAZjrO.chunk.mjs.license} | 0 ...s.map => SharedAlbumContent-BjVAZjrO.chunk.mjs.map} | 2 +- ... SharedAlbumContent-BjVAZjrO.chunk.mjs.map.license} | 0 ...7reR1.chunk.mjs => SharedAlbums-0ozF6JS8.chunk.mjs} | 4 ++-- ...license => SharedAlbums-0ozF6JS8.chunk.mjs.license} | 0 ...unk.mjs.map => SharedAlbums-0ozF6JS8.chunk.mjs.map} | 2 +- ...nse => SharedAlbums-0ozF6JS8.chunk.mjs.map.license} | 0 ...mm98ux0.chunk.mjs => TagContent-CNGJCUan.chunk.mjs} | 4 ++-- ...s.license => TagContent-CNGJCUan.chunk.mjs.license} | 0 ...chunk.mjs.map => TagContent-CNGJCUan.chunk.mjs.map} | 2 +- ...cense => TagContent-CNGJCUan.chunk.mjs.map.license} | 0 js/TagsView-BDDuKASH.chunk.mjs | 2 ++ ...mjs.license => TagsView-BDDuKASH.chunk.mjs.license} | 0 js/TagsView-BDDuKASH.chunk.mjs.map | 1 + ...license => TagsView-BDDuKASH.chunk.mjs.map.license} | 0 js/TagsView-BOD60xQr.chunk.mjs | 2 -- js/TagsView-BOD60xQr.chunk.mjs.map | 1 - ...tJaAD.chunk.mjs => TimelineView-DOLWlwzS.chunk.mjs} | 4 ++-- ...license => TimelineView-DOLWlwzS.chunk.mjs.license} | 0 ...unk.mjs.map => TimelineView-DOLWlwzS.chunk.mjs.map} | 2 +- ...nse => TimelineView-DOLWlwzS.chunk.mjs.map.license} | 0 ...LN.chunk.mjs => UnassignedFaces-CY0G4IiY.chunk.mjs} | 4 ++-- ...ense => UnassignedFaces-CY0G4IiY.chunk.mjs.license} | 0 ....mjs.map => UnassignedFaces-CY0G4IiY.chunk.mjs.map} | 2 +- ... => UnassignedFaces-CY0G4IiY.chunk.mjs.map.license} | 0 ....chunk.mjs => collectionFetcher-BrEAZuyc.chunk.mjs} | 4 ++-- ...se => collectionFetcher-BrEAZuyc.chunk.mjs.license} | 0 ...js.map => collectionFetcher-BrEAZuyc.chunk.mjs.map} | 2 +- ...> collectionFetcher-BrEAZuyc.chunk.mjs.map.license} | 0 ...S6ejXz.chunk.mjs => fileFetcher-D7Rs8T0r.chunk.mjs} | 4 ++-- ....license => fileFetcher-D7Rs8T0r.chunk.mjs.license} | 0 ...hunk.mjs.map => fileFetcher-D7Rs8T0r.chunk.mjs.map} | 2 +- ...ense => fileFetcher-D7Rs8T0r.chunk.mjs.map.license} | 0 ...s-DsGfUI08.chunk.mjs => filters-gmVfMndJ.chunk.mjs} | 4 ++-- ....mjs.license => filters-gmVfMndJ.chunk.mjs.license} | 0 ...08.chunk.mjs.map => filters-gmVfMndJ.chunk.mjs.map} | 2 +- ....license => filters-gmVfMndJ.chunk.mjs.map.license} | 0 ...dex-C3eeDUK_.chunk.mjs => index-C89EPmpm.chunk.mjs} | 4 ++-- ...nk.mjs.license => index-C89EPmpm.chunk.mjs.license} | 0 ...DUK_.chunk.mjs.map => index-C89EPmpm.chunk.mjs.map} | 2 +- ...ap.license => index-C89EPmpm.chunk.mjs.map.license} | 0 ...dex-CM9zOQ6d.chunk.mjs => index-Cu7wOhwV.chunk.mjs} | 10 +++++----- ...nk.mjs.license => index-Cu7wOhwV.chunk.mjs.license} | 0 ...OQ6d.chunk.mjs.map => index-Cu7wOhwV.chunk.mjs.map} | 2 +- ...ap.license => index-Cu7wOhwV.chunk.mjs.map.license} | 0 ...dex-6SyU8-tY.chunk.mjs => index-CzHVyRZv.chunk.mjs} | 4 ++-- ...nk.mjs.license => index-CzHVyRZv.chunk.mjs.license} | 0 ...8-tY.chunk.mjs.map => index-CzHVyRZv.chunk.mjs.map} | 2 +- ...ap.license => index-CzHVyRZv.chunk.mjs.map.license} | 0 ...dex-CvTkeH64.chunk.mjs => index-PrU_AhId.chunk.mjs} | 4 ++-- ...nk.mjs.license => index-PrU_AhId.chunk.mjs.license} | 0 ...eH64.chunk.mjs.map => index-PrU_AhId.chunk.mjs.map} | 2 +- ...ap.license => index-PrU_AhId.chunk.mjs.map.license} | 0 ...DfJ.chunk.mjs => index-SPoS3_zU-CGExvrk0.chunk.mjs} | 8 ++++---- ...cense => index-SPoS3_zU-CGExvrk0.chunk.mjs.license} | 0 ...k.mjs.map => index-SPoS3_zU-CGExvrk0.chunk.mjs.map} | 2 +- ...e => index-SPoS3_zU-CGExvrk0.chunk.mjs.map.license} | 0 js/photos-dashboard.mjs | 2 +- js/photos-main.mjs | 2 +- js/photos-public.mjs | 2 +- ...B0BfPZdG.chunk.mjs => useHotKey-CbiJh5uX.chunk.mjs} | 4 ++-- ...js.license => useHotKey-CbiJh5uX.chunk.mjs.license} | 0 ....chunk.mjs.map => useHotKey-CbiJh5uX.chunk.mjs.map} | 2 +- ...icense => useHotKey-CbiJh5uX.chunk.mjs.map.license} | 0 ...zh.chunk.mjs => useLoadedPhotos-o178DPO9.chunk.mjs} | 4 ++-- ...ense => useLoadedPhotos-o178DPO9.chunk.mjs.license} | 0 ....mjs.map => useLoadedPhotos-o178DPO9.chunk.mjs.map} | 2 +- ... => useLoadedPhotos-o178DPO9.chunk.mjs.map.license} | 0 223 files changed, 178 insertions(+), 178 deletions(-) create mode 100644 css/TagsView-DR177-FV.chunk.css delete mode 100644 css/TagsView-DhQ9SnI2.chunk.css rename js/{ActionFavorite-BtEFhUm5.chunk.mjs => ActionFavorite-C5Kvw7qq.chunk.mjs} (91%) rename js/{ActionFavorite-BtEFhUm5.chunk.mjs.license => ActionFavorite-C5Kvw7qq.chunk.mjs.license} (100%) rename js/{ActionFavorite-BtEFhUm5.chunk.mjs.map => ActionFavorite-C5Kvw7qq.chunk.mjs.map} (97%) rename js/{ActionFavorite-BtEFhUm5.chunk.mjs.map.license => ActionFavorite-C5Kvw7qq.chunk.mjs.map.license} (100%) rename js/{AlbumContent-YAtauBD0.chunk.mjs => AlbumContent-DH-v3OMz.chunk.mjs} (87%) rename js/{AlbumContent-YAtauBD0.chunk.mjs.license => AlbumContent-DH-v3OMz.chunk.mjs.license} (100%) rename js/{AlbumContent-YAtauBD0.chunk.mjs.map => AlbumContent-DH-v3OMz.chunk.mjs.map} (99%) rename js/{AlbumContent-YAtauBD0.chunk.mjs.map.license => AlbumContent-DH-v3OMz.chunk.mjs.map.license} (100%) rename js/{AlbumForm-Bp1-F3W6.chunk.mjs => AlbumForm-CIQfeO19.chunk.mjs} (97%) rename js/{AlbumForm-Bp1-F3W6.chunk.mjs.license => AlbumForm-CIQfeO19.chunk.mjs.license} (100%) rename js/{AlbumForm-Bp1-F3W6.chunk.mjs.map => AlbumForm-CIQfeO19.chunk.mjs.map} (99%) rename js/{AlbumForm-Bp1-F3W6.chunk.mjs.map.license => AlbumForm-CIQfeO19.chunk.mjs.map.license} (100%) rename js/{AlbumsView-CsXtKs14.chunk.mjs => AlbumsView-DNg3EofL.chunk.mjs} (80%) rename js/{AlbumsView-CsXtKs14.chunk.mjs.license => AlbumsView-DNg3EofL.chunk.mjs.license} (100%) rename js/{AlbumsView-CsXtKs14.chunk.mjs.map => AlbumsView-DNg3EofL.chunk.mjs.map} (98%) rename js/{AlbumsView-CsXtKs14.chunk.mjs.map.license => AlbumsView-DNg3EofL.chunk.mjs.map.license} (100%) rename js/{CollectionContent-CeFnEYfi.chunk.mjs => CollectionContent-CJOE1HIB.chunk.mjs} (89%) rename js/{CollectionContent-CeFnEYfi.chunk.mjs.license => CollectionContent-CJOE1HIB.chunk.mjs.license} (100%) rename js/{CollectionContent-CeFnEYfi.chunk.mjs.map => CollectionContent-CJOE1HIB.chunk.mjs.map} (99%) rename js/{CollectionContent-CeFnEYfi.chunk.mjs.map.license => CollectionContent-CJOE1HIB.chunk.mjs.map.license} (100%) rename js/{CollectionsList-BgAPrZJJ.chunk.mjs => CollectionsList-DvsTmCJy.chunk.mjs} (91%) rename js/{CollectionsList-BgAPrZJJ.chunk.mjs.license => CollectionsList-DvsTmCJy.chunk.mjs.license} (100%) rename js/{CollectionsList-BgAPrZJJ.chunk.mjs.map => CollectionsList-DvsTmCJy.chunk.mjs.map} (98%) rename js/{CollectionsList-BgAPrZJJ.chunk.mjs.map.license => CollectionsList-DvsTmCJy.chunk.mjs.map.license} (100%) rename js/{ConflictPicker-BRRUCIWm-BO4SFB1Z.chunk.mjs => ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs} (94%) rename js/{ConflictPicker-BRRUCIWm-BO4SFB1Z.chunk.mjs.license => ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs.license} (100%) rename js/{ConflictPicker-BRRUCIWm-BO4SFB1Z.chunk.mjs.map => ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs.map} (99%) rename js/{ConflictPicker-BRRUCIWm-BO4SFB1Z.chunk.mjs.map.license => ConflictPicker-BRRUCIWm-e7YlE8_M.chunk.mjs.map.license} (100%) rename js/{FaceContent-BCYkxPDV.chunk.mjs => FaceContent-D2nIJ9e_.chunk.mjs} (89%) rename js/{FaceContent-BCYkxPDV.chunk.mjs.license => FaceContent-D2nIJ9e_.chunk.mjs.license} (100%) rename js/{FaceContent-BCYkxPDV.chunk.mjs.map => FaceContent-D2nIJ9e_.chunk.mjs.map} (99%) rename js/{FaceContent-BCYkxPDV.chunk.mjs.map.license => FaceContent-D2nIJ9e_.chunk.mjs.map.license} (100%) rename js/{FaceCover-BLtUuECC.chunk.mjs => FaceCover-gbBkp1EQ.chunk.mjs} (97%) rename js/{FaceCover-BLtUuECC.chunk.mjs.license => FaceCover-gbBkp1EQ.chunk.mjs.license} (100%) rename js/{FaceCover-BLtUuECC.chunk.mjs.map => FaceCover-gbBkp1EQ.chunk.mjs.map} (99%) rename js/{FaceCover-BLtUuECC.chunk.mjs.map.license => FaceCover-gbBkp1EQ.chunk.mjs.map.license} (100%) rename js/{FaceMergeForm-BebzlLjp.chunk.mjs => FaceMergeForm-D8F2eyk-.chunk.mjs} (89%) rename js/{FaceMergeForm-BebzlLjp.chunk.mjs.license => FaceMergeForm-D8F2eyk-.chunk.mjs.license} (100%) rename js/{FaceMergeForm-BebzlLjp.chunk.mjs.map => FaceMergeForm-D8F2eyk-.chunk.mjs.map} (97%) rename js/{FaceMergeForm-BebzlLjp.chunk.mjs.map.license => FaceMergeForm-D8F2eyk-.chunk.mjs.map.license} (100%) rename js/{FacesView-BevQ-VWL.chunk.mjs => FacesView-D1C_tyn5.chunk.mjs} (88%) rename js/{FacesView-BevQ-VWL.chunk.mjs.license => FacesView-D1C_tyn5.chunk.mjs.license} (100%) rename js/{FacesView-BevQ-VWL.chunk.mjs.map => FacesView-D1C_tyn5.chunk.mjs.map} (99%) rename js/{FacesView-BevQ-VWL.chunk.mjs.map.license => FacesView-D1C_tyn5.chunk.mjs.map.license} (100%) rename js/{FetchCollectionsMixin-MmTXmbxK.chunk.mjs => FetchCollectionsMixin-CUVkpmKO.chunk.mjs} (78%) rename js/{FetchCollectionsMixin-MmTXmbxK.chunk.mjs.license => FetchCollectionsMixin-CUVkpmKO.chunk.mjs.license} (100%) rename js/{FetchCollectionsMixin-MmTXmbxK.chunk.mjs.map => FetchCollectionsMixin-CUVkpmKO.chunk.mjs.map} (97%) rename js/{FetchCollectionsMixin-MmTXmbxK.chunk.mjs.map.license => FetchCollectionsMixin-CUVkpmKO.chunk.mjs.map.license} (100%) rename js/{FetchFilesMixin-DMZVI8S8.chunk.mjs => FetchFilesMixin-BH5SRa4_.chunk.mjs} (92%) rename js/{FetchFilesMixin-DMZVI8S8.chunk.mjs.license => FetchFilesMixin-BH5SRa4_.chunk.mjs.license} (100%) rename js/{FetchFilesMixin-DMZVI8S8.chunk.mjs.map => FetchFilesMixin-BH5SRa4_.chunk.mjs.map} (99%) rename js/{FetchFilesMixin-DMZVI8S8.chunk.mjs.map.license => FetchFilesMixin-BH5SRa4_.chunk.mjs.map.license} (100%) rename js/{FileComponent-BsmZ5lZm.chunk.mjs => FileComponent-CmXjv9Ap.chunk.mjs} (98%) rename js/{FileComponent-BsmZ5lZm.chunk.mjs.license => FileComponent-CmXjv9Ap.chunk.mjs.license} (100%) rename js/{FileComponent-BsmZ5lZm.chunk.mjs.map => FileComponent-CmXjv9Ap.chunk.mjs.map} (99%) rename js/{FileComponent-BsmZ5lZm.chunk.mjs.map.license => FileComponent-CmXjv9Ap.chunk.mjs.map.license} (100%) rename js/{FilePicker-C4pJki1g.chunk.mjs => FilePicker-X0WwcXf5.chunk.mjs} (99%) rename js/{FilePicker-C4pJki1g.chunk.mjs.license => FilePicker-X0WwcXf5.chunk.mjs.license} (100%) rename js/{FilePicker-C4pJki1g.chunk.mjs.map => FilePicker-X0WwcXf5.chunk.mjs.map} (99%) rename js/{FilePicker-C4pJki1g.chunk.mjs.map.license => FilePicker-X0WwcXf5.chunk.mjs.map.license} (100%) rename js/{FilesSelectionMixin-C5lQ8GEm.chunk.mjs => FilesSelectionMixin-BM1zpezQ.chunk.mjs} (94%) rename js/{FilesSelectionMixin-C5lQ8GEm.chunk.mjs.license => FilesSelectionMixin-BM1zpezQ.chunk.mjs.license} (100%) rename js/{FilesSelectionMixin-C5lQ8GEm.chunk.mjs.map => FilesSelectionMixin-BM1zpezQ.chunk.mjs.map} (99%) rename js/{FilesSelectionMixin-C5lQ8GEm.chunk.mjs.map.license => FilesSelectionMixin-BM1zpezQ.chunk.mjs.map.license} (100%) rename js/{FoldersView-Ho8oLUqU.chunk.mjs => FoldersView-CRivQ0YT.chunk.mjs} (88%) rename js/{FoldersView-Ho8oLUqU.chunk.mjs.license => FoldersView-CRivQ0YT.chunk.mjs.license} (100%) rename js/{FoldersView-Ho8oLUqU.chunk.mjs.map => FoldersView-CRivQ0YT.chunk.mjs.map} (99%) rename js/{FoldersView-Ho8oLUqU.chunk.mjs.map.license => FoldersView-CRivQ0YT.chunk.mjs.map.license} (100%) rename js/{HeaderNavigation-BUzx6s8t.chunk.mjs => HeaderNavigation-IWkh3kOy.chunk.mjs} (89%) rename js/{HeaderNavigation-BUzx6s8t.chunk.mjs.license => HeaderNavigation-IWkh3kOy.chunk.mjs.license} (100%) rename js/{HeaderNavigation-BUzx6s8t.chunk.mjs.map => HeaderNavigation-IWkh3kOy.chunk.mjs.map} (98%) rename js/{HeaderNavigation-BUzx6s8t.chunk.mjs.map.license => HeaderNavigation-IWkh3kOy.chunk.mjs.map.license} (100%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CxavOaJi.chunk.mjs => InvalidFilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs} (75%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CxavOaJi.chunk.mjs.license => InvalidFilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs.license} (100%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CxavOaJi.chunk.mjs.map => InvalidFilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs.map} (99%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CxavOaJi.chunk.mjs.map.license => InvalidFilenameDialog-C-Tc0bjw-LkwmTUV1.chunk.mjs.map.license} (100%) rename js/{MapView-C5I7Xsfs.chunk.mjs => MapView-BBL3qsnB.chunk.mjs} (86%) rename js/{MapView-C5I7Xsfs.chunk.mjs.license => MapView-BBL3qsnB.chunk.mjs.license} (100%) rename js/{MapView-C5I7Xsfs.chunk.mjs.map => MapView-BBL3qsnB.chunk.mjs.map} (99%) rename js/{MapView-C5I7Xsfs.chunk.mjs.map.license => MapView-BBL3qsnB.chunk.mjs.map.license} (100%) rename js/{MemoriesView-BjDRC5VR.chunk.mjs => MemoriesView-BhzSole-.chunk.mjs} (94%) rename js/{MemoriesView-BjDRC5VR.chunk.mjs.license => MemoriesView-BhzSole-.chunk.mjs.license} (100%) rename js/{MemoriesView-BjDRC5VR.chunk.mjs.map => MemoriesView-BhzSole-.chunk.mjs.map} (99%) rename js/{MemoriesView-BjDRC5VR.chunk.mjs.map.license => MemoriesView-BhzSole-.chunk.mjs.map.license} (100%) rename js/{NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs} (99%) rename js/{NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs.license => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs.license} (100%) rename js/{NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs.map => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs.map} (99%) rename js/{NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs.map.license => NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs.map.license} (100%) rename js/{NcCheckboxRadioSwitch-flYu6ojL-gUnJ9cpv.chunk.mjs => NcCheckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs} (96%) rename js/{NcCheckboxRadioSwitch-flYu6ojL-gUnJ9cpv.chunk.mjs.license => NcCheckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs.license} (100%) rename js/{NcCheckboxRadioSwitch-flYu6ojL-gUnJ9cpv.chunk.mjs.map => NcCheckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs.map} (99%) rename js/{NcCheckboxRadioSwitch-flYu6ojL-gUnJ9cpv.chunk.mjs.map.license => NcCheckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs.map.license} (100%) rename js/{NcContent-PWhlmWNS-BcfeV9MB.chunk.mjs => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs} (99%) rename js/{NcContent-PWhlmWNS-BcfeV9MB.chunk.mjs.license => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs.license} (100%) rename js/{NcContent-PWhlmWNS-BcfeV9MB.chunk.mjs.map => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs.map} (99%) rename js/{NcContent-PWhlmWNS-BcfeV9MB.chunk.mjs.map.license => NcContent-PWhlmWNS-Dgk8b-nJ.chunk.mjs.map.license} (100%) rename js/{NcEmptyContent-CLFXfreB.chunk.mjs => NcEmptyContent-Dak05MxF.chunk.mjs} (83%) rename js/{NcEmptyContent-CLFXfreB.chunk.mjs.license => NcEmptyContent-Dak05MxF.chunk.mjs.license} (100%) rename js/{NcEmptyContent-CLFXfreB.chunk.mjs.map => NcEmptyContent-Dak05MxF.chunk.mjs.map} (98%) rename js/{NcEmptyContent-CLFXfreB.chunk.mjs.map.license => NcEmptyContent-Dak05MxF.chunk.mjs.map.license} (100%) rename js/{NcFormBoxButton-DQYM40Lb-C8LxsUXA.chunk.mjs => NcFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs} (98%) rename js/{NcFormBoxButton-DQYM40Lb-C8LxsUXA.chunk.mjs.license => NcFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs.license} (100%) rename js/{NcFormBoxButton-DQYM40Lb-C8LxsUXA.chunk.mjs.map => NcFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs.map} (99%) rename js/{NcFormBoxButton-DQYM40Lb-C8LxsUXA.chunk.mjs.map.license => NcFormBoxButton-DQYM40Lb-CShQnQVP.chunk.mjs.map.license} (100%) rename js/{NcLoadingIcon-BIjaE3wQ.chunk.mjs => NcLoadingIcon-oAHuxj6Q.chunk.mjs} (88%) rename js/{NcLoadingIcon-BIjaE3wQ.chunk.mjs.license => NcLoadingIcon-oAHuxj6Q.chunk.mjs.license} (100%) rename js/{NcLoadingIcon-BIjaE3wQ.chunk.mjs.map => NcLoadingIcon-oAHuxj6Q.chunk.mjs.map} (98%) rename js/{NcLoadingIcon-BIjaE3wQ.chunk.mjs.map.license => NcLoadingIcon-oAHuxj6Q.chunk.mjs.map.license} (100%) rename js/{NcProfileHoverCard-nmkKoCB1-BP_nX7yk.chunk.mjs => NcProfileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs} (99%) rename js/{NcProfileHoverCard-nmkKoCB1-BP_nX7yk.chunk.mjs.license => NcProfileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs.license} (100%) rename js/{NcProfileHoverCard-nmkKoCB1-BP_nX7yk.chunk.mjs.map => NcProfileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs.map} (99%) rename js/{NcProfileHoverCard-nmkKoCB1-BP_nX7yk.chunk.mjs.map.license => NcProfileHoverCard-nmkKoCB1-FnHoff8i.chunk.mjs.map.license} (100%) rename js/{NcProgressBar-D7zYeXBH-CXvQyHbp.chunk.mjs => NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs} (97%) rename js/{NcProgressBar-D7zYeXBH-CXvQyHbp.chunk.mjs.license => NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs.license} (100%) rename js/{NcProgressBar-D7zYeXBH-CXvQyHbp.chunk.mjs.map => NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs.map} (99%) rename js/{NcProgressBar-D7zYeXBH-CXvQyHbp.chunk.mjs.map.license => NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs.map.license} (100%) rename js/{NcUserBubble-1YlD_SE1-CwFTgEVT.chunk.mjs => NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs} (93%) rename js/{NcUserBubble-1YlD_SE1-CwFTgEVT.chunk.mjs.license => NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs.license} (100%) rename js/{NcUserBubble-1YlD_SE1-CwFTgEVT.chunk.mjs.map => NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs.map} (99%) rename js/{NcUserBubble-1YlD_SE1-CwFTgEVT.chunk.mjs.map.license => NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs.map.license} (100%) rename js/{NcVNodes-BytHgX8b.chunk.mjs => NcVNodes-DeIzs_-o.chunk.mjs} (91%) rename js/{NcVNodes-BytHgX8b.chunk.mjs.license => NcVNodes-DeIzs_-o.chunk.mjs.license} (100%) rename js/{NcVNodes-BytHgX8b.chunk.mjs.map => NcVNodes-DeIzs_-o.chunk.mjs.map} (98%) rename js/{NcVNodes-BytHgX8b.chunk.mjs.map.license => NcVNodes-DeIzs_-o.chunk.mjs.map.license} (100%) rename js/{PhotoSearch-B5VBx2w_.chunk.mjs => PhotoSearch-DHkZxzPo.chunk.mjs} (95%) rename js/{PhotoSearch-B5VBx2w_.chunk.mjs.license => PhotoSearch-DHkZxzPo.chunk.mjs.license} (100%) rename js/{PhotoSearch-B5VBx2w_.chunk.mjs.map => PhotoSearch-DHkZxzPo.chunk.mjs.map} (99%) rename js/{PhotoSearch-B5VBx2w_.chunk.mjs.map.license => PhotoSearch-DHkZxzPo.chunk.mjs.map.license} (100%) rename js/{PhotosFiltersInput-BJWs6bK0.chunk.mjs => PhotosFiltersInput-DCbzjkAP.chunk.mjs} (99%) rename js/{PhotosFiltersInput-BJWs6bK0.chunk.mjs.license => PhotosFiltersInput-DCbzjkAP.chunk.mjs.license} (100%) rename js/{PhotosFiltersInput-BJWs6bK0.chunk.mjs.map => PhotosFiltersInput-DCbzjkAP.chunk.mjs.map} (99%) rename js/{PhotosFiltersInput-BJWs6bK0.chunk.mjs.map.license => PhotosFiltersInput-DCbzjkAP.chunk.mjs.map.license} (100%) rename js/{PhotosPicker-B1x8SnwC.chunk.mjs => PhotosPicker-CNXf0Zo4.chunk.mjs} (88%) rename js/{PhotosPicker-B1x8SnwC.chunk.mjs.license => PhotosPicker-CNXf0Zo4.chunk.mjs.license} (100%) rename js/{PhotosPicker-B1x8SnwC.chunk.mjs.map => PhotosPicker-CNXf0Zo4.chunk.mjs.map} (99%) rename js/{PhotosPicker-B1x8SnwC.chunk.mjs.map.license => PhotosPicker-CNXf0Zo4.chunk.mjs.map.license} (100%) rename js/{PlaceContent-d3u6ebdL.chunk.mjs => PlaceContent-BE2wMQtf.chunk.mjs} (66%) rename js/{PlaceContent-d3u6ebdL.chunk.mjs.license => PlaceContent-BE2wMQtf.chunk.mjs.license} (100%) rename js/{PlaceContent-d3u6ebdL.chunk.mjs.map => PlaceContent-BE2wMQtf.chunk.mjs.map} (98%) rename js/{PlaceContent-d3u6ebdL.chunk.mjs.map.license => PlaceContent-BE2wMQtf.chunk.mjs.map.license} (100%) rename js/{PlacesView-Cb_uKikz.chunk.mjs => PlacesView-iFnRGf6O.chunk.mjs} (80%) rename js/{PlacesView-Cb_uKikz.chunk.mjs.license => PlacesView-iFnRGf6O.chunk.mjs.license} (100%) rename js/{PlacesView-Cb_uKikz.chunk.mjs.map => PlacesView-iFnRGf6O.chunk.mjs.map} (98%) rename js/{PlacesView-Cb_uKikz.chunk.mjs.map.license => PlacesView-iFnRGf6O.chunk.mjs.map.license} (100%) rename js/{PublicAlbumContent-DW-FZUfO.chunk.mjs => PublicAlbumContent-P5PylZsO.chunk.mjs} (98%) rename js/{PublicAlbumContent-DW-FZUfO.chunk.mjs.license => PublicAlbumContent-P5PylZsO.chunk.mjs.license} (100%) rename js/{PublicAlbumContent-DW-FZUfO.chunk.mjs.map => PublicAlbumContent-P5PylZsO.chunk.mjs.map} (99%) rename js/{PublicAlbumContent-DW-FZUfO.chunk.mjs.map.license => PublicAlbumContent-P5PylZsO.chunk.mjs.map.license} (100%) rename js/{ShareType-Ve875rrp.chunk.mjs => ShareType-DwTdT9ze.chunk.mjs} (96%) rename js/{ShareType-Ve875rrp.chunk.mjs.license => ShareType-DwTdT9ze.chunk.mjs.license} (100%) rename js/{ShareType-Ve875rrp.chunk.mjs.map => ShareType-DwTdT9ze.chunk.mjs.map} (99%) rename js/{ShareType-Ve875rrp.chunk.mjs.map.license => ShareType-DwTdT9ze.chunk.mjs.map.license} (100%) rename js/{SharedAlbumContent-BHOZg7Iw.chunk.mjs => SharedAlbumContent-BjVAZjrO.chunk.mjs} (79%) rename js/{SharedAlbumContent-BHOZg7Iw.chunk.mjs.license => SharedAlbumContent-BjVAZjrO.chunk.mjs.license} (100%) rename js/{SharedAlbumContent-BHOZg7Iw.chunk.mjs.map => SharedAlbumContent-BjVAZjrO.chunk.mjs.map} (99%) rename js/{SharedAlbumContent-BHOZg7Iw.chunk.mjs.map.license => SharedAlbumContent-BjVAZjrO.chunk.mjs.map.license} (100%) rename js/{SharedAlbums-DEC7reR1.chunk.mjs => SharedAlbums-0ozF6JS8.chunk.mjs} (79%) rename js/{SharedAlbums-DEC7reR1.chunk.mjs.license => SharedAlbums-0ozF6JS8.chunk.mjs.license} (100%) rename js/{SharedAlbums-DEC7reR1.chunk.mjs.map => SharedAlbums-0ozF6JS8.chunk.mjs.map} (98%) rename js/{SharedAlbums-DEC7reR1.chunk.mjs.map.license => SharedAlbums-0ozF6JS8.chunk.mjs.map.license} (100%) rename js/{TagContent-Dmm98ux0.chunk.mjs => TagContent-CNGJCUan.chunk.mjs} (74%) rename js/{TagContent-Dmm98ux0.chunk.mjs.license => TagContent-CNGJCUan.chunk.mjs.license} (100%) rename js/{TagContent-Dmm98ux0.chunk.mjs.map => TagContent-CNGJCUan.chunk.mjs.map} (99%) rename js/{TagContent-Dmm98ux0.chunk.mjs.map.license => TagContent-CNGJCUan.chunk.mjs.map.license} (100%) create mode 100644 js/TagsView-BDDuKASH.chunk.mjs rename js/{TagsView-BOD60xQr.chunk.mjs.license => TagsView-BDDuKASH.chunk.mjs.license} (100%) create mode 100644 js/TagsView-BDDuKASH.chunk.mjs.map rename js/{TagsView-BOD60xQr.chunk.mjs.map.license => TagsView-BDDuKASH.chunk.mjs.map.license} (100%) delete mode 100644 js/TagsView-BOD60xQr.chunk.mjs delete mode 100644 js/TagsView-BOD60xQr.chunk.mjs.map rename js/{TimelineView-mDgtJaAD.chunk.mjs => TimelineView-DOLWlwzS.chunk.mjs} (92%) rename js/{TimelineView-mDgtJaAD.chunk.mjs.license => TimelineView-DOLWlwzS.chunk.mjs.license} (100%) rename js/{TimelineView-mDgtJaAD.chunk.mjs.map => TimelineView-DOLWlwzS.chunk.mjs.map} (99%) rename js/{TimelineView-mDgtJaAD.chunk.mjs.map.license => TimelineView-DOLWlwzS.chunk.mjs.map.license} (100%) rename js/{UnassignedFaces-BWrph3LN.chunk.mjs => UnassignedFaces-CY0G4IiY.chunk.mjs} (79%) rename js/{UnassignedFaces-BWrph3LN.chunk.mjs.license => UnassignedFaces-CY0G4IiY.chunk.mjs.license} (100%) rename js/{UnassignedFaces-BWrph3LN.chunk.mjs.map => UnassignedFaces-CY0G4IiY.chunk.mjs.map} (99%) rename js/{UnassignedFaces-BWrph3LN.chunk.mjs.map.license => UnassignedFaces-CY0G4IiY.chunk.mjs.map.license} (100%) rename js/{collectionFetcher-CypGOHnH.chunk.mjs => collectionFetcher-BrEAZuyc.chunk.mjs} (95%) rename js/{collectionFetcher-CypGOHnH.chunk.mjs.license => collectionFetcher-BrEAZuyc.chunk.mjs.license} (100%) rename js/{collectionFetcher-CypGOHnH.chunk.mjs.map => collectionFetcher-BrEAZuyc.chunk.mjs.map} (99%) rename js/{collectionFetcher-CypGOHnH.chunk.mjs.map.license => collectionFetcher-BrEAZuyc.chunk.mjs.map.license} (100%) rename js/{fileFetcher-HMS6ejXz.chunk.mjs => fileFetcher-D7Rs8T0r.chunk.mjs} (98%) rename js/{fileFetcher-HMS6ejXz.chunk.mjs.license => fileFetcher-D7Rs8T0r.chunk.mjs.license} (100%) rename js/{fileFetcher-HMS6ejXz.chunk.mjs.map => fileFetcher-D7Rs8T0r.chunk.mjs.map} (99%) rename js/{fileFetcher-HMS6ejXz.chunk.mjs.map.license => fileFetcher-D7Rs8T0r.chunk.mjs.map.license} (100%) rename js/{filters-DsGfUI08.chunk.mjs => filters-gmVfMndJ.chunk.mjs} (98%) rename js/{filters-DsGfUI08.chunk.mjs.license => filters-gmVfMndJ.chunk.mjs.license} (100%) rename js/{filters-DsGfUI08.chunk.mjs.map => filters-gmVfMndJ.chunk.mjs.map} (99%) rename js/{filters-DsGfUI08.chunk.mjs.map.license => filters-gmVfMndJ.chunk.mjs.map.license} (100%) rename js/{index-C3eeDUK_.chunk.mjs => index-C89EPmpm.chunk.mjs} (99%) rename js/{index-C3eeDUK_.chunk.mjs.license => index-C89EPmpm.chunk.mjs.license} (100%) rename js/{index-C3eeDUK_.chunk.mjs.map => index-C89EPmpm.chunk.mjs.map} (99%) rename js/{index-C3eeDUK_.chunk.mjs.map.license => index-C89EPmpm.chunk.mjs.map.license} (100%) rename js/{index-CM9zOQ6d.chunk.mjs => index-Cu7wOhwV.chunk.mjs} (98%) rename js/{index-CM9zOQ6d.chunk.mjs.license => index-Cu7wOhwV.chunk.mjs.license} (100%) rename js/{index-CM9zOQ6d.chunk.mjs.map => index-Cu7wOhwV.chunk.mjs.map} (53%) rename js/{index-CM9zOQ6d.chunk.mjs.map.license => index-Cu7wOhwV.chunk.mjs.map.license} (100%) rename js/{index-6SyU8-tY.chunk.mjs => index-CzHVyRZv.chunk.mjs} (99%) rename js/{index-6SyU8-tY.chunk.mjs.license => index-CzHVyRZv.chunk.mjs.license} (100%) rename js/{index-6SyU8-tY.chunk.mjs.map => index-CzHVyRZv.chunk.mjs.map} (99%) rename js/{index-6SyU8-tY.chunk.mjs.map.license => index-CzHVyRZv.chunk.mjs.map.license} (100%) rename js/{index-CvTkeH64.chunk.mjs => index-PrU_AhId.chunk.mjs} (99%) rename js/{index-CvTkeH64.chunk.mjs.license => index-PrU_AhId.chunk.mjs.license} (100%) rename js/{index-CvTkeH64.chunk.mjs.map => index-PrU_AhId.chunk.mjs.map} (99%) rename js/{index-CvTkeH64.chunk.mjs.map.license => index-PrU_AhId.chunk.mjs.map.license} (100%) rename js/{index-SPoS3_zU--vjVFDfJ.chunk.mjs => index-SPoS3_zU-CGExvrk0.chunk.mjs} (99%) rename js/{index-SPoS3_zU--vjVFDfJ.chunk.mjs.license => index-SPoS3_zU-CGExvrk0.chunk.mjs.license} (100%) rename js/{index-SPoS3_zU--vjVFDfJ.chunk.mjs.map => index-SPoS3_zU-CGExvrk0.chunk.mjs.map} (99%) rename js/{index-SPoS3_zU--vjVFDfJ.chunk.mjs.map.license => index-SPoS3_zU-CGExvrk0.chunk.mjs.map.license} (100%) rename js/{useHotKey-B0BfPZdG.chunk.mjs => useHotKey-CbiJh5uX.chunk.mjs} (91%) rename js/{useHotKey-B0BfPZdG.chunk.mjs.license => useHotKey-CbiJh5uX.chunk.mjs.license} (100%) rename js/{useHotKey-B0BfPZdG.chunk.mjs.map => useHotKey-CbiJh5uX.chunk.mjs.map} (98%) rename js/{useHotKey-B0BfPZdG.chunk.mjs.map.license => useHotKey-CbiJh5uX.chunk.mjs.map.license} (100%) rename js/{useLoadedPhotos-BTQOUtzh.chunk.mjs => useLoadedPhotos-o178DPO9.chunk.mjs} (96%) rename js/{useLoadedPhotos-BTQOUtzh.chunk.mjs.license => useLoadedPhotos-o178DPO9.chunk.mjs.license} (100%) rename js/{useLoadedPhotos-BTQOUtzh.chunk.mjs.map => useLoadedPhotos-o178DPO9.chunk.mjs.map} (99%) rename js/{useLoadedPhotos-BTQOUtzh.chunk.mjs.map.license => useLoadedPhotos-o178DPO9.chunk.mjs.map.license} (100%) diff --git a/css/TagsView-DR177-FV.chunk.css b/css/TagsView-DR177-FV.chunk.css new file mode 100644 index 0000000000..2616df0e83 --- /dev/null +++ b/css/TagsView-DR177-FV.chunk.css @@ -0,0 +1 @@ +.tag-cover[data-v-dc0a6411]{display:flex;flex-direction:column;padding:16px;border-radius:12px}.tag-cover[data-v-dc0a6411]:hover,.tag-cover[data-v-dc0a6411]:focus{background:var(--color-background-dark)}.tag-cover__image[data-v-dc0a6411]{width:350px;height:350px;object-fit:cover;border-radius:12px}@media only screen and (max-width:1200px){.tag-cover__image[data-v-dc0a6411]{width:250px;height:250px}}.tag-cover__image--placeholder[data-v-dc0a6411]{background:var(--color-primary-element-light)}.tag-cover__image--placeholder[data-v-dc0a6411] .material-design-icon{width:100%;height:100%}.tag-cover__image--placeholder[data-v-dc0a6411] .material-design-icon .material-design-icon__svg{fill:var(--color-primary-element)}.tag-cover__details[data-v-dc0a6411]{display:flex;flex-direction:column;margin-top:16px;width:350px}@media only screen and (max-width:1200px){.tag-cover__details[data-v-dc0a6411]{width:250px}}.tag-cover__details__first-line[data-v-dc0a6411]{display:flex}.tag-cover__details__second-line[data-v-dc0a6411]{display:flex;color:var(--color-text-lighter)}.tag-cover__details__name[data-v-dc0a6411]{flex-grow:1;margin:0;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loader[data-v-de3acc2d]{margin-top:30vh}.container[data-v-de3acc2d]{padding-inline-start:44px}.container>h2[data-v-de3acc2d]{margin-inline-start:14px;margin-top:40px}.popular-tags[data-v-de3acc2d],.tags[data-v-de3acc2d]{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap} diff --git a/css/TagsView-DhQ9SnI2.chunk.css b/css/TagsView-DhQ9SnI2.chunk.css deleted file mode 100644 index 5ba54990d9..0000000000 --- a/css/TagsView-DhQ9SnI2.chunk.css +++ /dev/null @@ -1 +0,0 @@ -.tag-cover[data-v-01249121]{display:flex;flex-direction:column;padding:16px;border-radius:12px}.tag-cover[data-v-01249121]:hover,.tag-cover[data-v-01249121]:focus{background:var(--color-background-dark)}.tag-cover__image[data-v-01249121]{width:350px;height:350px;object-fit:cover;border-radius:12px}@media only screen and (max-width:1200px){.tag-cover__image[data-v-01249121]{width:250px;height:250px}}.tag-cover__image--placeholder[data-v-01249121]{background:var(--color-primary-element-light)}.tag-cover__image--placeholder[data-v-01249121] .material-design-icon{width:100%;height:100%}.tag-cover__image--placeholder[data-v-01249121] .material-design-icon .material-design-icon__svg{fill:var(--color-primary-element)}.tag-cover__details[data-v-01249121]{display:flex;flex-direction:column;margin-top:16px;width:350px}@media only screen and (max-width:1200px){.tag-cover__details[data-v-01249121]{width:250px}}.tag-cover__details__first-line[data-v-01249121]{display:flex}.tag-cover__details__second-line[data-v-01249121]{display:flex;color:var(--color-text-lighter)}.tag-cover__details__name[data-v-01249121]{flex-grow:1;margin:0;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loader[data-v-cb8dfce8]{margin-top:30vh}.container[data-v-cb8dfce8]{padding-inline-start:44px}.container>h2[data-v-cb8dfce8]{margin-inline-start:14px;margin-top:40px}.popular-tags[data-v-cb8dfce8],.tags[data-v-cb8dfce8]{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap} diff --git a/js/ActionFavorite-BtEFhUm5.chunk.mjs b/js/ActionFavorite-C5Kvw7qq.chunk.mjs similarity index 91% rename from js/ActionFavorite-BtEFhUm5.chunk.mjs rename to js/ActionFavorite-C5Kvw7qq.chunk.mjs index 243fddc44e..6acbfa7308 100644 --- a/js/ActionFavorite-BtEFhUm5.chunk.mjs +++ b/js/ActionFavorite-C5Kvw7qq.chunk.mjs @@ -1,2 +1,2 @@ -import{c as o,t as s}from"./dav-DT_-tzOR.chunk.mjs";import{N as i}from"./NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs";import{S as r,a,n as l}from"./icons-CNMlCj5c.chunk.mjs";const c=o({name:"ActionFavorite",components:{Star:a,StarOutline:r,NcActionButton:i},props:{selectedFileIds:{type:Array,required:!0}},computed:{files(){return this.$store.state.files.files},shouldFavoriteSelection(){return this.selectedFileIds.some(t=>this.files[t].attributes.favorite===0)}},methods:{async favoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:1})},async unFavoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:0})},t:s}});var n=function(){var t=this,e=t._self._c;return t._self._setupProxy,t.shouldFavoriteSelection?e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Mark selection as favorite")},on:{click:t.favoriteSelection}},[t._v(" "+t._s(t.t("photos","Add selection to favorites"))+" "),e("StarOutline",{attrs:{slot:"icon"},slot:"icon"})],1):e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Remove selection from favorites")},on:{click:t.unFavoriteSelection}},[t._v(" "+t._s(t.t("photos","Remove selection from favorites"))+" "),e("Star",{attrs:{slot:"icon"},slot:"icon"})],1)},f=[],v=l(c,n,f,!1,null,null);const h=v.exports;export{h as A}; -//# sourceMappingURL=ActionFavorite-BtEFhUm5.chunk.mjs.map +import{c as o,t as s}from"./dav-DT_-tzOR.chunk.mjs";import{N as i}from"./NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs";import{S as r,a,n as l}from"./icons-CNMlCj5c.chunk.mjs";const c=o({name:"ActionFavorite",components:{Star:a,StarOutline:r,NcActionButton:i},props:{selectedFileIds:{type:Array,required:!0}},computed:{files(){return this.$store.state.files.files},shouldFavoriteSelection(){return this.selectedFileIds.some(t=>this.files[t].attributes.favorite===0)}},methods:{async favoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:1})},async unFavoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:0})},t:s}});var n=function(){var t=this,e=t._self._c;return t._self._setupProxy,t.shouldFavoriteSelection?e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Mark selection as favorite")},on:{click:t.favoriteSelection}},[t._v(" "+t._s(t.t("photos","Add selection to favorites"))+" "),e("StarOutline",{attrs:{slot:"icon"},slot:"icon"})],1):e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Remove selection from favorites")},on:{click:t.unFavoriteSelection}},[t._v(" "+t._s(t.t("photos","Remove selection from favorites"))+" "),e("Star",{attrs:{slot:"icon"},slot:"icon"})],1)},f=[],v=l(c,n,f,!1,null,null);const h=v.exports;export{h as A}; +//# sourceMappingURL=ActionFavorite-C5Kvw7qq.chunk.mjs.map diff --git a/js/ActionFavorite-BtEFhUm5.chunk.mjs.license b/js/ActionFavorite-C5Kvw7qq.chunk.mjs.license similarity index 100% rename from js/ActionFavorite-BtEFhUm5.chunk.mjs.license rename to js/ActionFavorite-C5Kvw7qq.chunk.mjs.license diff --git a/js/ActionFavorite-BtEFhUm5.chunk.mjs.map b/js/ActionFavorite-C5Kvw7qq.chunk.mjs.map similarity index 97% rename from js/ActionFavorite-BtEFhUm5.chunk.mjs.map rename to js/ActionFavorite-C5Kvw7qq.chunk.mjs.map index 1d97347367..e6027de795 100644 --- a/js/ActionFavorite-BtEFhUm5.chunk.mjs.map +++ b/js/ActionFavorite-C5Kvw7qq.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ActionFavorite-BtEFhUm5.chunk.mjs","sources":["../src/components/Actions/ActionFavorite.vue"],"sourcesContent":["\n\n\n\n"],"names":["_sfc_main","defineComponent","Star","StarOutline","NcActionButton","fileId","t"],"mappings":"uKAkCA,MAAAA,EAAAC,EAAA,CACA,KAAA,iBACA,WAAA,CACA,KAAAC,EACA,YAAAC,EACA,eAAAC,CAAA,EAGA,MAAA,CACA,gBAAA,CACA,KAAA,MACA,SAAA,EAAA,CACA,EAGA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,yBAAA,CAEA,OAAA,KAAA,gBAAA,KAAAC,GAAA,KAAA,MAAAA,CAAA,EAAA,WAAA,WAAA,CAAA,CACA,CAAA,EAGA,QAAA,CACA,MAAA,mBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAEA,MAAA,qBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAAA,EAEAC,CAAA,CAEA,CAAA"} \ No newline at end of file +{"version":3,"file":"ActionFavorite-C5Kvw7qq.chunk.mjs","sources":["../src/components/Actions/ActionFavorite.vue"],"sourcesContent":["\n\n\n\n"],"names":["_sfc_main","defineComponent","Star","StarOutline","NcActionButton","fileId","t"],"mappings":"uKAkCA,MAAAA,EAAAC,EAAA,CACA,KAAA,iBACA,WAAA,CACA,KAAAC,EACA,YAAAC,EACA,eAAAC,CAAA,EAGA,MAAA,CACA,gBAAA,CACA,KAAA,MACA,SAAA,EAAA,CACA,EAGA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,yBAAA,CAEA,OAAA,KAAA,gBAAA,KAAAC,GAAA,KAAA,MAAAA,CAAA,EAAA,WAAA,WAAA,CAAA,CACA,CAAA,EAGA,QAAA,CACA,MAAA,mBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAEA,MAAA,qBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAAA,EAEAC,CAAA,CAEA,CAAA"} \ No newline at end of file diff --git a/js/ActionFavorite-BtEFhUm5.chunk.mjs.map.license b/js/ActionFavorite-C5Kvw7qq.chunk.mjs.map.license similarity index 100% rename from js/ActionFavorite-BtEFhUm5.chunk.mjs.map.license rename to js/ActionFavorite-C5Kvw7qq.chunk.mjs.map.license diff --git a/js/AlbumContent-YAtauBD0.chunk.mjs b/js/AlbumContent-DH-v3OMz.chunk.mjs similarity index 87% rename from js/AlbumContent-YAtauBD0.chunk.mjs rename to js/AlbumContent-DH-v3OMz.chunk.mjs index 9469dd418f..494df4bb60 100644 --- a/js/AlbumContent-YAtauBD0.chunk.mjs +++ b/js/AlbumContent-DH-v3OMz.chunk.mjs @@ -1,2 +1,2 @@ -import{c as v,m as n,i as _,x as c,y as C,q as A,A as F,t as g,a as N}from"./dav-DT_-tzOR.chunk.mjs";import{N as y,l as w,f as P,e as S,h as k}from"./index-CM9zOQ6d.chunk.mjs";import{c as I,N as M}from"./NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs";import{a as E,N as $}from"./FileComponent-BsmZ5lZm.chunk.mjs";import{c as B,N as O}from"./PhotosFiltersInput-BJWs6bK0.chunk.mjs";import{N as x}from"./NcEmptyContent-CLFXfreB.chunk.mjs";import{N as L}from"./NcLoadingIcon-BIjaE3wQ.chunk.mjs";import{n as d,o as R,P as V,i as D,M as H,b as U,D as T,C as z}from"./icons-CNMlCj5c.chunk.mjs";import{A as X}from"./ActionFavorite-BtEFhUm5.chunk.mjs";import{F as W,C as Y,A as j}from"./AlbumForm-Bp1-F3W6.chunk.mjs";import{C as q}from"./CollectionContent-CeFnEYfi.chunk.mjs";import{H as Z}from"./HeaderNavigation-BUzx6s8t.chunk.mjs";import{P as G}from"./PhotosPicker-B1x8SnwC.chunk.mjs";import{F as J}from"./FetchFilesMixin-DMZVI8S8.chunk.mjs";import"./index-BzE8wXQs.chunk.mjs";import"./NcCheckboxRadioSwitch-flYu6ojL-gUnJ9cpv.chunk.mjs";import"./NcVNodes-BytHgX8b.chunk.mjs";import"./NcUserBubble-1YlD_SE1-CwFTgEVT.chunk.mjs";import"./FetchCollectionsMixin-MmTXmbxK.chunk.mjs";import"./collectionFetcher-CypGOHnH.chunk.mjs";import"./AbortControllerMixin-Di_Dp6RD.chunk.mjs";import"./floating-ui.utils.dom-Ddqhmmdk.chunk.mjs";import"./he-nRaGfZn1.chunk.mjs";import"./ShareType-Ve875rrp.chunk.mjs";import"./FilesSelectionMixin-C5lQ8GEm.chunk.mjs";import"./fileFetcher-HMS6ejXz.chunk.mjs";import"./index-SPoS3_zU--vjVFDfJ.chunk.mjs";import"./NcProgressBar-D7zYeXBH-CXvQyHbp.chunk.mjs";import"./useHotKey-B0BfPZdG.chunk.mjs";import"./FilesByMonthMixin-B5uFee9S.chunk.mjs";import"./PhotoSearch-B5VBx2w_.chunk.mjs";const K=v({__name:"AlbumHero",props:{coverFileId:{default:-1},blurhash:{default:void 0},title:null,subtitle:{default:""}},setup(t){const o=t,e=60,a=.35,l=1024,b=n(()=>o.coverFileId>0),u=n(()=>_(`/apps/photos/api/v1/preview/${o.coverFileId}?x=${l}&y=${l}`)),m=c(!1),h=c(!1);C(u,()=>{m.value=!1,h.value=!1});const r=c(0),p=n(()=>({height:`calc(100% + ${e}px)`,transform:`translateY(${r.value}px)`})),s=document.getElementById("app-content-vue")??window;A(()=>{s.addEventListener("scroll",i,{passive:!0}),i()}),F(()=>s.removeEventListener("scroll",i));function i(){const f=s instanceof Window?s.scrollY:s.scrollTop;r.value=Math.min(e,f*a)}return{__sfc:!0,props:o,MAX_PARALLAX_OFFSET:e,PARALLAX_RATIO:a,COVER_PREVIEW_SIZE:l,hasCover:b,coverUrl:u,coverLoaded:m,coverFailed:h,parallaxOffset:r,coverStyle:p,scroller:s,onScroll:i,NcBlurHash:E}}});var Q=function(){var t=this,o=t._self._c,e=t._self._setupProxy;return e.hasCover?o("header",{staticClass:"album-hero",attrs:{"aria-hidden":"true"}},[o("div",{staticClass:"album-hero__cover",style:e.coverStyle},[t.blurhash!==void 0?o(e.NcBlurHash,{staticClass:"album-hero__layer",attrs:{hash:t.blurhash}}):t._e(),e.coverFailed?t._e():o("img",{key:e.coverUrl,staticClass:"album-hero__layer album-hero__photo",class:{"album-hero__photo--visible":e.coverLoaded},attrs:{src:e.coverUrl,alt:"",decoding:"async",fetchpriority:"high"},on:{load:function(a){e.coverLoaded=!0},error:function(a){e.coverFailed=!0}}})],1),o("div",{staticClass:"album-hero__scrim"}),o("div",{staticClass:"album-hero__content"},[o("div",{staticClass:"album-hero__title"},[t._v(" "+t._s(t.title)+" ")]),t.subtitle!==""?o("div",{staticClass:"album-hero__subtitle"},[t._v(" "+t._s(t.subtitle)+" ")]):t._e()])]):t._e()},tt=[],ot=d(K,Q,tt,!1,null,"868386d8");const et=ot.exports;function at(t,o){const e=t.find(a=>a.fileid===o);return e?.attributes.hasPreview?e:t.filter(a=>a.attributes.hasPreview).reduce((a,l)=>a===void 0||l.attributes.timestamp>a.attributes.timestamp?l:a,void 0)??e}const lt={name:"AlbumContent",components:{ActionFavorite:X,AlbumForm:j,AlbumHero:et,Close:z,CollaboratorsSelectionForm:Y,CollectionContent:q,DeleteOutline:T,PhotosPicker:G,HeaderNavigation:Z,ImagePlusOutline:U,MapMarkerOutline:H,NcActionButton:M,NcActions:I,NcActionSeparator:$,NcButton:y,NcDialog:O,NcEmptyContent:x,NcLoadingIcon:L,NcModal:B,PencilOutline:D,Plus:V,ShareVariantOutline:R},mixins:[W,J],props:{albumName:{type:String,default:"/"}},setup(){return{isMobile:k()}},data(){return{showAddPhotosModal:!1,showManageCollaboratorView:!1,showEditAlbumForm:!1,loadingAddCollaborators:!1}},computed:{album(){return this.$store.getters.getAlbum(this.albumName)},albumFileIds(){return this.$store.getters.getAlbumFiles(this.albumName)},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},albumPhotos(){return this.albumFileIds.map(t=>this.$store.state.files.files[t]).filter(t=>t!==void 0)},coverPhoto(){return at(this.albumPhotos,this.album?.attributes["last-photo"]??-1)},coverFileId(){return this.coverPhoto?.fileid??this.album?.attributes["last-photo"]??-1},coverBlurhash(){return this.coverPhoto?.attributes["metadata-blurhash"]},albumSubtitle(){return this.album===void 0?"":[this.album.attributes.location,N("photos","%n photo","%n photos",this.album.attributes.nbItems)].filter(t=>t!=="").join(" · ")},removableSelectedFiles(){return(this.$refs.collectionContent?.selectedFileIds).map(t=>this.$store.state.files.files[t]).filter(t=>t.attributes["photos-album-file-origin"]!=="filters").map(t=>t.fileid.toString())}},async mounted(){this.fetchAlbum(),this.fetchAlbumContent()},methods:{async fetchAlbum(){await this.fetchCollection(this.albumFileName,S)},async fetchAlbumContent(){await this.fetchCollectionFiles(this.albumFileName,P)},async handleAlbumUpdate({album:t,changes:o}){this.showEditAlbumForm=!1,o.includes("name")&&await this.$router.push(`/albums/${t.basename}`),o.includes("filters")&&this.fetchAlbumContent()},async handleFilesPicked(t){this.showAddPhotosModal=!1,await this.$store.dispatch("addFilesToCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToAdd:t}),await this.fetchAlbumContent()},async handleRemoveFilesFromAlbum(t){this.$refs.collectionContent?.onUncheckFiles(t),await this.$store.dispatch("removeFilesFromCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToRemove:t})},async handleDeleteAlbum(){await this.$store.dispatch("deleteCollection",{collectionFileName:this.album?.root+this.album?.path})&&this.$router.push("/albums")},async handleSetCollaborators(t){try{this.loadingAddCollaborators=!0,this.showManageCollaboratorView=!1,await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{collaborators:t}})}catch(o){w.error("Error while setting album collaborators",{error:o})}finally{this.loadingAddCollaborators=!1}},async handleFiltersChange(t){await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{filters:t}}),this.fetchAlbumContent()},t:g}};var st=function(){var t=this,o=t._self._c;return o("div",{staticClass:"album-container"},[t.album!==void 0?o("AlbumHero",{attrs:{"cover-file-id":t.coverFileId,blurhash:t.coverBlurhash,title:t.albumName,subtitle:t.albumSubtitle}}):t._e(),o("CollectionContent",{ref:"collectionContent",attrs:{collection:t.album,"collection-file-ids":t.albumFileIds,loading:t.loadingCollection||t.loadingCollectionFiles,error:t.errorFetchingCollection||t.errorFetchingCollectionFiles},scopedSlots:t._u([{key:"header",fn:function({selectedFileIds:e,resetSelection:a}){return o("HeaderNavigation",{key:"navigation",attrs:{loading:t.loadingCollectionFiles,params:{albumName:t.albumName},path:"/"+t.albumName,title:t.albumName},on:{refresh:t.fetchAlbumContent}},[t.album!==void 0&&t.album.attributes.location!==""?o("div",{staticClass:"album__location",attrs:{slot:"subtitle"},slot:"subtitle"},[o("MapMarkerOutline"),t._v(t._s(t.album.attributes.location)+" ")],1):t._e(),o("template",{slot:"default"},[e.length>0?o("NcButton",{attrs:{"aria-label":t.t("photos","Unselect all")},on:{click:a},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Close")]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Unselect all"))+" ")]):t._e()],1),t.album!==void 0?o("template",{slot:"right"},[o("NcButton",{on:{click:function(l){t.showAddPhotosModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Plus",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Add photos to this album"))+" ")]),t.sharingEnabled?o("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Manage collaborators for this album")},on:{click:function(l){t.showManageCollaboratorView=!0}}},[o("ShareVariantOutline",{attrs:{slot:"icon"},slot:"icon"})],1):t._e(),o("NcActions",{attrs:{"aria-label":t.t("photos","Open actions menu")}},[o("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Edit album details")},on:{click:function(l){t.showEditAlbumForm=!0}}},[t._v(" "+t._s(t.t("photos","Edit album details"))+" "),o("PencilOutline",{attrs:{slot:"icon"},slot:"icon"})],1),o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:t.handleDeleteAlbum}},[t._v(" "+t._s(t.t("photos","Delete album"))+" "),o("DeleteOutline",{attrs:{slot:"icon"},slot:"icon"})],1),e.length>0?[o("NcActionSeparator"),o("ActionFavorite",{attrs:{"selected-file-ids":e}}),t.removableSelectedFiles.length!==0?o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(l){return t.handleRemoveFilesFromAlbum(t.removableSelectedFiles)}}},[t._v(" "+t._s(t.t("photos","Remove selection from album"))+" "),o("Close",{attrs:{slot:"icon"},slot:"icon"})],1):t._e()]:t._e()],2)],1):t._e()],2)}}])},[t.album!==void 0&&t.album.attributes.nbItems===0&&!(t.loadingCollectionFiles||t.loadingCollection)?o("NcEmptyContent",{staticClass:"album__empty",attrs:{slot:"empty-content",name:t.t("photos","This album does not have any photos or videos yet!")},slot:"empty-content"},[o("ImagePlusOutline",{attrs:{slot:"icon"},slot:"icon"}),o("NcButton",{staticClass:"album__empty__button",attrs:{slot:"action",variant:"primary","aria-label":t.t("photos","Add photos to this album")},on:{click:function(e){t.showAddPhotosModal=!0}},slot:"action"},[o("Plus",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Add"))+" ")],1)],1):t._e()],1),t.album!==void 0?o("PhotosPicker",{attrs:{open:t.showAddPhotosModal,"blacklist-ids":t.albumFileIds,destination:t.album.basename,name:t.t("photos","Add photos to {albumName}",{albumName:t.albumName},void 0,{escape:!1,sanitize:!1})},on:{"update:open":function(e){t.showAddPhotosModal=e},"files-picked":t.handleFilesPicked}}):t._e(),t.showManageCollaboratorView&&t.album!==void 0?o("NcModal",{attrs:{name:t.t("photos","Manage collaborators")},on:{close:function(e){t.showManageCollaboratorView=!1}}},[o("CollaboratorsSelectionForm",{attrs:{"album-name":t.album.basename,collaborators:t.album.attributes.collaborators},scopedSlots:t._u([{key:"default",fn:function({collaborators:e}){return[o("NcButton",{attrs:{"aria-label":t.t("photos","Save collaborators for this album."),variant:"primary",disabled:t.loadingAddCollaborators},on:{click:function(a){return t.handleSetCollaborators(e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loadingAddCollaborators?o("NcLoadingIcon"):t._e()]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Save"))+" ")])]}}],null,!1,2061546483)})],1):t._e(),t.showEditAlbumForm?o("NcDialog",{attrs:{name:t.t("photos","Edit album details"),"close-on-click-outside":"",size:"normal"},on:{closing:function(e){t.showEditAlbumForm=!1}}},[o("AlbumForm",{attrs:{album:t.album},on:{done:e=>t.handleAlbumUpdate(e)}})],1):t._e()],1)},it=[],rt=d(lt,st,it,!1,null,"dd86895f");const Dt=rt.exports;export{Dt as default}; -//# sourceMappingURL=AlbumContent-YAtauBD0.chunk.mjs.map +import{c as v,m as n,i as _,x as c,y as C,q as A,A as F,t as g,a as N}from"./dav-DT_-tzOR.chunk.mjs";import{N as y,l as w,f as P,e as S,h as k}from"./index-Cu7wOhwV.chunk.mjs";import{c as I,N as M}from"./NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs";import{a as E,N as $}from"./FileComponent-CmXjv9Ap.chunk.mjs";import{c as B,N as O}from"./PhotosFiltersInput-DCbzjkAP.chunk.mjs";import{N as x}from"./NcEmptyContent-Dak05MxF.chunk.mjs";import{N as L}from"./NcLoadingIcon-oAHuxj6Q.chunk.mjs";import{n as d,o as R,P as V,i as D,M as H,b as U,D as T,C as z}from"./icons-CNMlCj5c.chunk.mjs";import{A as X}from"./ActionFavorite-C5Kvw7qq.chunk.mjs";import{F as W,C as Y,A as j}from"./AlbumForm-CIQfeO19.chunk.mjs";import{C as q}from"./CollectionContent-CJOE1HIB.chunk.mjs";import{H as Z}from"./HeaderNavigation-IWkh3kOy.chunk.mjs";import{P as G}from"./PhotosPicker-CNXf0Zo4.chunk.mjs";import{F as J}from"./FetchFilesMixin-BH5SRa4_.chunk.mjs";import"./index-BzE8wXQs.chunk.mjs";import"./NcCheckboxRadioSwitch-flYu6ojL-POGUumRo.chunk.mjs";import"./NcVNodes-DeIzs_-o.chunk.mjs";import"./NcUserBubble-1YlD_SE1-BdSIh5vj.chunk.mjs";import"./FetchCollectionsMixin-CUVkpmKO.chunk.mjs";import"./collectionFetcher-BrEAZuyc.chunk.mjs";import"./AbortControllerMixin-Di_Dp6RD.chunk.mjs";import"./floating-ui.utils.dom-Ddqhmmdk.chunk.mjs";import"./he-nRaGfZn1.chunk.mjs";import"./ShareType-DwTdT9ze.chunk.mjs";import"./FilesSelectionMixin-BM1zpezQ.chunk.mjs";import"./fileFetcher-D7Rs8T0r.chunk.mjs";import"./index-SPoS3_zU-CGExvrk0.chunk.mjs";import"./NcProgressBar-D7zYeXBH-CDZ7jEDg.chunk.mjs";import"./useHotKey-CbiJh5uX.chunk.mjs";import"./FilesByMonthMixin-B5uFee9S.chunk.mjs";import"./PhotoSearch-DHkZxzPo.chunk.mjs";const K=v({__name:"AlbumHero",props:{coverFileId:{default:-1},blurhash:{default:void 0},title:null,subtitle:{default:""}},setup(t){const o=t,e=60,a=.35,l=1024,b=n(()=>o.coverFileId>0),u=n(()=>_(`/apps/photos/api/v1/preview/${o.coverFileId}?x=${l}&y=${l}`)),m=c(!1),h=c(!1);C(u,()=>{m.value=!1,h.value=!1});const r=c(0),p=n(()=>({height:`calc(100% + ${e}px)`,transform:`translateY(${r.value}px)`})),s=document.getElementById("app-content-vue")??window;A(()=>{s.addEventListener("scroll",i,{passive:!0}),i()}),F(()=>s.removeEventListener("scroll",i));function i(){const f=s instanceof Window?s.scrollY:s.scrollTop;r.value=Math.min(e,f*a)}return{__sfc:!0,props:o,MAX_PARALLAX_OFFSET:e,PARALLAX_RATIO:a,COVER_PREVIEW_SIZE:l,hasCover:b,coverUrl:u,coverLoaded:m,coverFailed:h,parallaxOffset:r,coverStyle:p,scroller:s,onScroll:i,NcBlurHash:E}}});var Q=function(){var t=this,o=t._self._c,e=t._self._setupProxy;return e.hasCover?o("header",{staticClass:"album-hero",attrs:{"aria-hidden":"true"}},[o("div",{staticClass:"album-hero__cover",style:e.coverStyle},[t.blurhash!==void 0?o(e.NcBlurHash,{staticClass:"album-hero__layer",attrs:{hash:t.blurhash}}):t._e(),e.coverFailed?t._e():o("img",{key:e.coverUrl,staticClass:"album-hero__layer album-hero__photo",class:{"album-hero__photo--visible":e.coverLoaded},attrs:{src:e.coverUrl,alt:"",decoding:"async",fetchpriority:"high"},on:{load:function(a){e.coverLoaded=!0},error:function(a){e.coverFailed=!0}}})],1),o("div",{staticClass:"album-hero__scrim"}),o("div",{staticClass:"album-hero__content"},[o("div",{staticClass:"album-hero__title"},[t._v(" "+t._s(t.title)+" ")]),t.subtitle!==""?o("div",{staticClass:"album-hero__subtitle"},[t._v(" "+t._s(t.subtitle)+" ")]):t._e()])]):t._e()},tt=[],ot=d(K,Q,tt,!1,null,"868386d8");const et=ot.exports;function at(t,o){const e=t.find(a=>a.fileid===o);return e?.attributes.hasPreview?e:t.filter(a=>a.attributes.hasPreview).reduce((a,l)=>a===void 0||l.attributes.timestamp>a.attributes.timestamp?l:a,void 0)??e}const lt={name:"AlbumContent",components:{ActionFavorite:X,AlbumForm:j,AlbumHero:et,Close:z,CollaboratorsSelectionForm:Y,CollectionContent:q,DeleteOutline:T,PhotosPicker:G,HeaderNavigation:Z,ImagePlusOutline:U,MapMarkerOutline:H,NcActionButton:M,NcActions:I,NcActionSeparator:$,NcButton:y,NcDialog:O,NcEmptyContent:x,NcLoadingIcon:L,NcModal:B,PencilOutline:D,Plus:V,ShareVariantOutline:R},mixins:[W,J],props:{albumName:{type:String,default:"/"}},setup(){return{isMobile:k()}},data(){return{showAddPhotosModal:!1,showManageCollaboratorView:!1,showEditAlbumForm:!1,loadingAddCollaborators:!1}},computed:{album(){return this.$store.getters.getAlbum(this.albumName)},albumFileIds(){return this.$store.getters.getAlbumFiles(this.albumName)},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},albumPhotos(){return this.albumFileIds.map(t=>this.$store.state.files.files[t]).filter(t=>t!==void 0)},coverPhoto(){return at(this.albumPhotos,this.album?.attributes["last-photo"]??-1)},coverFileId(){return this.coverPhoto?.fileid??this.album?.attributes["last-photo"]??-1},coverBlurhash(){return this.coverPhoto?.attributes["metadata-blurhash"]},albumSubtitle(){return this.album===void 0?"":[this.album.attributes.location,N("photos","%n photo","%n photos",this.album.attributes.nbItems)].filter(t=>t!=="").join(" · ")},removableSelectedFiles(){return(this.$refs.collectionContent?.selectedFileIds).map(t=>this.$store.state.files.files[t]).filter(t=>t.attributes["photos-album-file-origin"]!=="filters").map(t=>t.fileid.toString())}},async mounted(){this.fetchAlbum(),this.fetchAlbumContent()},methods:{async fetchAlbum(){await this.fetchCollection(this.albumFileName,S)},async fetchAlbumContent(){await this.fetchCollectionFiles(this.albumFileName,P)},async handleAlbumUpdate({album:t,changes:o}){this.showEditAlbumForm=!1,o.includes("name")&&await this.$router.push(`/albums/${t.basename}`),o.includes("filters")&&this.fetchAlbumContent()},async handleFilesPicked(t){this.showAddPhotosModal=!1,await this.$store.dispatch("addFilesToCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToAdd:t}),await this.fetchAlbumContent()},async handleRemoveFilesFromAlbum(t){this.$refs.collectionContent?.onUncheckFiles(t),await this.$store.dispatch("removeFilesFromCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToRemove:t})},async handleDeleteAlbum(){await this.$store.dispatch("deleteCollection",{collectionFileName:this.album?.root+this.album?.path})&&this.$router.push("/albums")},async handleSetCollaborators(t){try{this.loadingAddCollaborators=!0,this.showManageCollaboratorView=!1,await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{collaborators:t}})}catch(o){w.error("Error while setting album collaborators",{error:o})}finally{this.loadingAddCollaborators=!1}},async handleFiltersChange(t){await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{filters:t}}),this.fetchAlbumContent()},t:g}};var st=function(){var t=this,o=t._self._c;return o("div",{staticClass:"album-container"},[t.album!==void 0?o("AlbumHero",{attrs:{"cover-file-id":t.coverFileId,blurhash:t.coverBlurhash,title:t.albumName,subtitle:t.albumSubtitle}}):t._e(),o("CollectionContent",{ref:"collectionContent",attrs:{collection:t.album,"collection-file-ids":t.albumFileIds,loading:t.loadingCollection||t.loadingCollectionFiles,error:t.errorFetchingCollection||t.errorFetchingCollectionFiles},scopedSlots:t._u([{key:"header",fn:function({selectedFileIds:e,resetSelection:a}){return o("HeaderNavigation",{key:"navigation",attrs:{loading:t.loadingCollectionFiles,params:{albumName:t.albumName},path:"/"+t.albumName,title:t.albumName},on:{refresh:t.fetchAlbumContent}},[t.album!==void 0&&t.album.attributes.location!==""?o("div",{staticClass:"album__location",attrs:{slot:"subtitle"},slot:"subtitle"},[o("MapMarkerOutline"),t._v(t._s(t.album.attributes.location)+" ")],1):t._e(),o("template",{slot:"default"},[e.length>0?o("NcButton",{attrs:{"aria-label":t.t("photos","Unselect all")},on:{click:a},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Close")]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Unselect all"))+" ")]):t._e()],1),t.album!==void 0?o("template",{slot:"right"},[o("NcButton",{on:{click:function(l){t.showAddPhotosModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Plus",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Add photos to this album"))+" ")]),t.sharingEnabled?o("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Manage collaborators for this album")},on:{click:function(l){t.showManageCollaboratorView=!0}}},[o("ShareVariantOutline",{attrs:{slot:"icon"},slot:"icon"})],1):t._e(),o("NcActions",{attrs:{"aria-label":t.t("photos","Open actions menu")}},[o("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Edit album details")},on:{click:function(l){t.showEditAlbumForm=!0}}},[t._v(" "+t._s(t.t("photos","Edit album details"))+" "),o("PencilOutline",{attrs:{slot:"icon"},slot:"icon"})],1),o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:t.handleDeleteAlbum}},[t._v(" "+t._s(t.t("photos","Delete album"))+" "),o("DeleteOutline",{attrs:{slot:"icon"},slot:"icon"})],1),e.length>0?[o("NcActionSeparator"),o("ActionFavorite",{attrs:{"selected-file-ids":e}}),t.removableSelectedFiles.length!==0?o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(l){return t.handleRemoveFilesFromAlbum(t.removableSelectedFiles)}}},[t._v(" "+t._s(t.t("photos","Remove selection from album"))+" "),o("Close",{attrs:{slot:"icon"},slot:"icon"})],1):t._e()]:t._e()],2)],1):t._e()],2)}}])},[t.album!==void 0&&t.album.attributes.nbItems===0&&!(t.loadingCollectionFiles||t.loadingCollection)?o("NcEmptyContent",{staticClass:"album__empty",attrs:{slot:"empty-content",name:t.t("photos","This album does not have any photos or videos yet!")},slot:"empty-content"},[o("ImagePlusOutline",{attrs:{slot:"icon"},slot:"icon"}),o("NcButton",{staticClass:"album__empty__button",attrs:{slot:"action",variant:"primary","aria-label":t.t("photos","Add photos to this album")},on:{click:function(e){t.showAddPhotosModal=!0}},slot:"action"},[o("Plus",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Add"))+" ")],1)],1):t._e()],1),t.album!==void 0?o("PhotosPicker",{attrs:{open:t.showAddPhotosModal,"blacklist-ids":t.albumFileIds,destination:t.album.basename,name:t.t("photos","Add photos to {albumName}",{albumName:t.albumName},void 0,{escape:!1,sanitize:!1})},on:{"update:open":function(e){t.showAddPhotosModal=e},"files-picked":t.handleFilesPicked}}):t._e(),t.showManageCollaboratorView&&t.album!==void 0?o("NcModal",{attrs:{name:t.t("photos","Manage collaborators")},on:{close:function(e){t.showManageCollaboratorView=!1}}},[o("CollaboratorsSelectionForm",{attrs:{"album-name":t.album.basename,collaborators:t.album.attributes.collaborators},scopedSlots:t._u([{key:"default",fn:function({collaborators:e}){return[o("NcButton",{attrs:{"aria-label":t.t("photos","Save collaborators for this album."),variant:"primary",disabled:t.loadingAddCollaborators},on:{click:function(a){return t.handleSetCollaborators(e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loadingAddCollaborators?o("NcLoadingIcon"):t._e()]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Save"))+" ")])]}}],null,!1,2061546483)})],1):t._e(),t.showEditAlbumForm?o("NcDialog",{attrs:{name:t.t("photos","Edit album details"),"close-on-click-outside":"",size:"normal"},on:{closing:function(e){t.showEditAlbumForm=!1}}},[o("AlbumForm",{attrs:{album:t.album},on:{done:e=>t.handleAlbumUpdate(e)}})],1):t._e()],1)},it=[],rt=d(lt,st,it,!1,null,"dd86895f");const Dt=rt.exports;export{Dt as default}; +//# sourceMappingURL=AlbumContent-DH-v3OMz.chunk.mjs.map diff --git a/js/AlbumContent-YAtauBD0.chunk.mjs.license b/js/AlbumContent-DH-v3OMz.chunk.mjs.license similarity index 100% rename from js/AlbumContent-YAtauBD0.chunk.mjs.license rename to js/AlbumContent-DH-v3OMz.chunk.mjs.license diff --git a/js/AlbumContent-YAtauBD0.chunk.mjs.map b/js/AlbumContent-DH-v3OMz.chunk.mjs.map similarity index 99% rename from js/AlbumContent-YAtauBD0.chunk.mjs.map rename to js/AlbumContent-DH-v3OMz.chunk.mjs.map index cffe38af36..bbb112d26c 100644 --- a/js/AlbumContent-YAtauBD0.chunk.mjs.map +++ b/js/AlbumContent-DH-v3OMz.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AlbumContent-YAtauBD0.chunk.mjs","sources":["../src/components/AlbumHero.vue","../src/utils/albumCover.ts","../src/views/AlbumContent.vue"],"sourcesContent":["\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { PhotoFile } from '../store/files.ts'\n\n/**\n * Pick the photo to show as the cover of an album.\n *\n * The album points at the photo added last, which is not necessarily one a\n * preview can be built for - and a cover without a preview leaves an empty\n * tile. The most recent photo with a preview is used instead in that case,\n * falling back to the photo the album points at when none of them has one.\n *\n * @param files - Photos of the album\n * @param coverFileId - File id the album points at, `-1` when it has no photo\n */\nexport function pickAlbumCover(files: PhotoFile[], coverFileId: number): PhotoFile | undefined {\n\tconst cover = files.find((file) => file.fileid === coverFileId)\n\tif (cover?.attributes.hasPreview) {\n\t\treturn cover\n\t}\n\n\tconst mostRecentWithPreview = files\n\t\t.filter((file) => file.attributes.hasPreview)\n\t\t.reduce(\n\t\t\t(newest, file) => newest === undefined || file.attributes.timestamp > newest.attributes.timestamp ? file : newest,\n\t\t\tundefined,\n\t\t)\n\n\treturn mostRecentWithPreview ?? cover\n}\n","\n\n\n\n\n\n"],"names":["MAX_PARALLAX_OFFSET","PARALLAX_RATIO","COVER_PREVIEW_SIZE","hasCover","computed","props","coverUrl","generateUrl","coverLoaded","ref","coverFailed","watch","parallaxOffset","coverStyle","scroller","onMounted","onScroll","onBeforeUnmount","scrollTop","pickAlbumCover","files","coverFileId","cover","file","newest","_sfc_main","ActionFavorite","AlbumForm","AlbumHero","Close","CollaboratorsSelectionForm","CollectionContent","DeleteOutline","PhotosPicker","HeaderNavigation","ImagePlusOutline","MapMarkerOutline","NcActionButton","NcActions","NcActionSeparator","NcButton","NcDialog","NcEmptyContent","NcLoadingIcon","NcModal","PencilOutline","Plus","ShareVariantOutline","FetchCollectionContentMixin","FetchFilesMixin","useIsMobile","fileId","translatePlural","part","albumsExtraProps","albumFilesExtraProps","album","changes","fileIds","collaborators","error","logger","filters","translate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AlbumContent-DH-v3OMz.chunk.mjs","sources":["../src/components/AlbumHero.vue","../src/utils/albumCover.ts","../src/views/AlbumContent.vue"],"sourcesContent":["\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { PhotoFile } from '../store/files.ts'\n\n/**\n * Pick the photo to show as the cover of an album.\n *\n * The album points at the photo added last, which is not necessarily one a\n * preview can be built for - and a cover without a preview leaves an empty\n * tile. The most recent photo with a preview is used instead in that case,\n * falling back to the photo the album points at when none of them has one.\n *\n * @param files - Photos of the album\n * @param coverFileId - File id the album points at, `-1` when it has no photo\n */\nexport function pickAlbumCover(files: PhotoFile[], coverFileId: number): PhotoFile | undefined {\n\tconst cover = files.find((file) => file.fileid === coverFileId)\n\tif (cover?.attributes.hasPreview) {\n\t\treturn cover\n\t}\n\n\tconst mostRecentWithPreview = files\n\t\t.filter((file) => file.attributes.hasPreview)\n\t\t.reduce(\n\t\t\t(newest, file) => newest === undefined || file.attributes.timestamp > newest.attributes.timestamp ? file : newest,\n\t\t\tundefined,\n\t\t)\n\n\treturn mostRecentWithPreview ?? cover\n}\n","\n\n\n\n\n\n"],"names":["MAX_PARALLAX_OFFSET","PARALLAX_RATIO","COVER_PREVIEW_SIZE","hasCover","computed","props","coverUrl","generateUrl","coverLoaded","ref","coverFailed","watch","parallaxOffset","coverStyle","scroller","onMounted","onScroll","onBeforeUnmount","scrollTop","pickAlbumCover","files","coverFileId","cover","file","newest","_sfc_main","ActionFavorite","AlbumForm","AlbumHero","Close","CollaboratorsSelectionForm","CollectionContent","DeleteOutline","PhotosPicker","HeaderNavigation","ImagePlusOutline","MapMarkerOutline","NcActionButton","NcActions","NcActionSeparator","NcButton","NcDialog","NcEmptyContent","NcLoadingIcon","NcModal","PencilOutline","Plus","ShareVariantOutline","FetchCollectionContentMixin","FetchFilesMixin","useIsMobile","fileId","translatePlural","part","albumsExtraProps","albumFilesExtraProps","album","changes","fileIds","collaborators","error","logger","filters","translate"],"mappings":"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"} \ No newline at end of file diff --git a/js/AlbumContent-YAtauBD0.chunk.mjs.map.license b/js/AlbumContent-DH-v3OMz.chunk.mjs.map.license similarity index 100% rename from js/AlbumContent-YAtauBD0.chunk.mjs.map.license rename to js/AlbumContent-DH-v3OMz.chunk.mjs.map.license diff --git a/js/AlbumForm-Bp1-F3W6.chunk.mjs b/js/AlbumForm-CIQfeO19.chunk.mjs similarity index 97% rename from js/AlbumForm-Bp1-F3W6.chunk.mjs rename to js/AlbumForm-CIQfeO19.chunk.mjs index 8af997988d..68e7d82946 100644 --- a/js/AlbumForm-Bp1-F3W6.chunk.mjs +++ b/js/AlbumForm-CIQfeO19.chunk.mjs @@ -1,2 +1,2 @@ -import{S as o,v as S,I as _,a as d}from"./ShareType-Ve875rrp.chunk.mjs";import{c as y,x as w,y as $,t as s,E as x,i as B,k as A,b as I,g as M}from"./dav-DT_-tzOR.chunk.mjs";import{n as P,q as n,r as V,D as O,E,F as U,s as c,l as u,S as z,N as g,e as T,z as q,m as K,c as f}from"./index-CM9zOQ6d.chunk.mjs";import{N as R}from"./NcLoadingIcon-BIjaE3wQ.chunk.mjs";import{d as D,e as j,P as G,f as H,b as Y,g as J}from"./PhotosFiltersInput-BJWs6bK0.chunk.mjs";import{E as W,s as Z,t as Q,C as X,n as k,g as tt,u as et,M as at}from"./icons-CNMlCj5c.chunk.mjs";import{G as lt}from"./NcAvatar-BbHwxwyd-DLFH-1uB.chunk.mjs";import{a as ot,b as it}from"./collectionFetcher-CypGOHnH.chunk.mjs";import{A as st}from"./AbortControllerMixin-Di_Dp6RD.chunk.mjs";const C="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e";V(E,O);const rt={model:{prop:"modelValue",event:"update:modelValue"}},nt=y({...rt,__name:"NcSelectUsers",props:{ariaLabelClearSelected:{type:String,default:n("Clear selected")},ariaLabelListbox:{type:String,default:n("Options")},ariaLabelDeselectOption:{type:Function,default:t=>n("Deselect {option}",{option:t})},keepOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},filterBy:{type:Function,default:null},inputId:{type:String,default:()=>lt()},inputLabel:{type:String,default:n("Select account")},labelOutside:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},required:{type:Boolean,default:!1},modelValue:{type:Object,default:null}},emits:["search","update:modelValue"],setup(t,{emit:e}){const a=t,l=w("");$(l,()=>{e("search",l.value)});const i=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),r=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),h=i-2*r;function N(p,v,b){if(a.filterBy)return a.filterBy;const F=/[^<]*<([^>]+)/,m=b.match(F),L=p.subname?.toLocaleLowerCase()??"";return m&&L.indexOf(m[1].toLocaleLowerCase())>-1||`${v} ${p.subname}`.toLocaleLowerCase().indexOf(b.toLocaleLowerCase())>-1}return{__sfc:!0,props:a,emit:e,search:l,clickableArea:i,gridBaseLine:r,avatarSize:h,localFilterBy:N,NcListItemIcon:j,NcSelect:D}}});var ct=function(){var t=this,e=t._self._c,a=t._self._setupProxy;return e(a.NcSelect,t._b({staticClass:"nc-select-users",attrs:{"filter-by":a.localFilterBy,label:"displayName"},on:{search:function(l){a.search=l},"update:model-value":function(l){return t.$emit("update:modelValue",l)}},scopedSlots:t._u([{key:"option",fn:function(l){return[e(a.NcListItemIcon,t._b({attrs:{"avatar-size":32,name:l.displayName,search:a.search}},"NcListItemIcon",l,!1))]}},{key:"selected-option",fn:function(l){return[e(a.NcListItemIcon,t._b({attrs:{"avatar-size":a.avatarSize,name:l.displayName,"no-margin":"",search:a.search}},"NcListItemIcon",l,!1))]}}])},"NcSelect",t.$props,!1))},ut=[],ht=P(nt,ct,ut,!1,null,"7f7ecbfe");const dt=ht.exports,pt=y({name:"FetchCollectionContentMixin",data(){return{fetchSemaphore:new z(1),loadingCollection:!1,loadingCollectionFiles:!1,errorFetchingCollection:null,errorFetchingCollectionFiles:null}},mixins:[st],methods:{async fetchCollection(t,e,a){if(this.loadingCollection)return null;try{this.loadingCollection=!0,this.errorFetchingCollection=null;const l=await it(t,{signal:this.abortController.signal},e,a);return this.$store.dispatch("addCollections",{collections:[l]}),l}catch(l){if(l.response?.status===404)return this.errorFetchingCollection=404,null;this.errorFetchingCollection=l,u.error("[PublicCollectionContent] Error fetching collection",{error:l}),c(s("photos","Failed to fetch collection."))}finally{this.loadingCollection=!1}return null},async fetchCollectionFiles(t,e=[],a){if(this.loadingCollectionFiles)return[];e=[...e,...U];const l=await this.fetchSemaphore.acquire();try{this.errorFetchingCollectionFiles=null,this.loadingCollectionFiles=!0;const i=await ot(t,{signal:this.abortController.signal},e,a),r=i.map(h=>h.fileid?.toString());return this.$store.dispatch("appendFiles",i),await this.$store.commit("setCollectionFiles",{collectionFileName:t,fileIds:r}),i}catch(i){if(i.response?.status===404)return this.errorFetchingCollectionFiles=404,[];this.errorFetchingCollectionFiles=i,c(s("photos","Failed to fetch collections list.")),u.error("[PublicCollectionContent] Error fetching collection files",{error:i})}finally{this.loadingCollectionFiles=!1,this.fetchSemaphore.release(l)}return[]}}}),bt={name:"CollaboratorsSelectionForm",components:{Close:X,ContentCopy:Q,Check:Z,Earth:W,NcButton:g,NcSelectUsers:dt},mixins:[pt],props:{albumName:{type:String,required:!0},collaborators:{type:Array,default:()=>[]},allowPublicLink:{type:Boolean,default:!0}},data(){return{availableCollaborators:{},selectedCollaboratorsKeys:[],currentSearchResults:[],loadingCollaborators:!1,randomId:Math.random().toString().substring(2,10),searchSequence:0,publicLinkCopied:!1,collaboratorTypes:o,config:{minSearchStringLength:parseInt(OC.config["sharing.minSearchStringLength"],10)||0}}},computed:{searchResults(){return this.currentSearchResults.filter(({id:t})=>t!==A()?.uid).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===o.User?"user":"group",iconSvg:t.type===o.Group?C:void 0})).filter(({key:t})=>!this.selectedCollaboratorsKeys.includes(t))},selectedCollaborators(){return this.selectedCollaboratorsKeys.map(t=>this.availableCollaborators[t])},selectedUsers:{get(){return this.selectedCollaborators.filter(({type:t})=>t!==o.Link).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===o.User?"user":"group",iconSvg:t.type===o.Group?C:void 0}))},set(t){this.selectedCollaboratorsKeys=t.map(({key:e})=>e)}},isPublicLinkSelected(){return this.selectedCollaboratorsKeys.includes(`${o.Link}`)},publicLink(){return this.availableCollaborators[o.Link]},publicLinkURL(){return`${window.location.protocol}//${window.location.host}${B(`apps/photos/public/${this.publicLink.id}`)}`},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)}},watch:{collaborators(t){this.populateCollaborators(t)}},mounted(){this.populateCollaborators(this.collaborators)},methods:{async searchCollaborators(t){if(t===void 0||(t=t.trim(),t.length{switch(l.source){case"users":return{id:l.id,label:l.label,type:o.User};case"groups":return{id:l.id,label:l.label,type:o.Group};default:throw new Error(`Invalid collaborator source ${l.source}`)}}),this.availableCollaborators={...this.availableCollaborators,...this.currentSearchResults.reduce(this.indexCollaborators,{})}}catch(a){if(e!==this.searchSequence)return;this.errorFetchingCollaborators=a,u.error(this.t("photos","Failed to fetch collaborators list."),{error:a}),c(this.t("photos","Failed to fetch collaborators list."))}finally{e===this.searchSequence&&(this.loadingCollaborators=!1)}},populateCollaborators(t){const e=t.reduce(this.indexCollaborators,{});this.selectedCollaboratorsKeys=Object.keys(e),this.availableCollaborators={3:{id:"",label:this.t("photos","Public link"),type:o.Link},...this.availableCollaborators,...e}},indexCollaborators(t,e){return{...t,[`${e.type}${e.type===o.Link?"":":"}${e.type===o.Link?"":e.id}`]:e}},async createPublicLinkForAlbum(){this.selectEntity(`${o.Link}`),await this.updateAlbumCollaborators(),await this.fetchCollection(this.albumFileName,T)},async deletePublicLink(){this.unselectEntity(`${o.Link}`),this.availableCollaborators[3]={id:"",label:this.t("photos","Public link"),type:o.Link},this.publicLinkCopied=!1,await this.updateAlbumCollaborators()},async updateAlbumCollaborators(){try{await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:{collaborators:this.selectedCollaborators}})}catch(t){u.error("[PublicAlbumContent] Error updating album",{error:t}),c(this.t("photos","Failed to update album."))}},async copyPublicLink(){await navigator.clipboard.writeText(this.publicLinkURL),this.publicLinkCopied=!0,setTimeout(()=>{this.publicLinkCopied=!1},1e4)},selectEntity(t){this.selectedCollaboratorsKeys.includes(t)||this.selectedCollaboratorsKeys.push(t)},unselectEntity(t){const e=this.selectedCollaboratorsKeys.indexOf(t);e!==-1&&this.selectedCollaboratorsKeys.splice(e,1)},t:s}};var mt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"manage-collaborators"},[e("h2",{staticClass:"manage-collaborators__title"},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]),e("form",{staticClass:"manage-collaborators__form",on:{submit:function(a){a.preventDefault()}}},[e("NcSelectUsers",{attrs:{"input-id":"sharing-search-input","input-label":t.t("photos","Add people or groups who can edit your album"),loading:t.loadingCollaborators,label:"label",filterable:!1,placeholder:t.t("photos","Search people or groups"),"clear-search-on-blur":()=>!1,multiple:!0,"append-to-body":!1,options:t.searchResults},on:{search:t.searchCollaborators,"option:selected":({key:a})=>t.selectEntity(a)},model:{value:t.selectedUsers,callback:function(a){t.selectedUsers=a},expression:"selectedUsers"}},[t._v(" "+t._s(t.t("photos","No recommendations. Start typing."))+" ")])],1),e("div",{staticClass:"actions"},[t.allowPublicLink?e("div",{staticClass:"actions__public-link"},[t.isPublicLinkSelected&&t.publicLink.id!==""?[e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{"aria-label":t.t("photos","Copy the public link"),title:t.publicLinkURL},on:{click:t.copyPublicLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.publicLinkCopied?e("Check"):e("ContentCopy")]},proxy:!0}],null,!1,845538853)},[t.publicLinkCopied?[t._v(" "+t._s(t.t("photos","Public link copied!"))+" ")]:[t._v(" "+t._s(t.t("photos","Copy public link"))+" ")]],2),e("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Delete the public link")},on:{click:t.deletePublicLink}},[e("Close",{attrs:{slot:"icon"},slot:"icon"})],1)]:e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{disabled:t.isPublicLinkSelected&&t.publicLink.id==="","aria-label":t.t("photos","Create public link share")},on:{click:t.createPublicLinkForAlbum}},[e("Earth",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Share via public link"))+" ")],1)],2):t._e(),e("div",{staticClass:"actions__slot"},[t._t("default",null,{collaborators:t.selectedCollaborators})],2)])])},ft=[],Ct=k(bt,mt,ft,!1,null,"beb979f1");const yt=Ct.exports,gt={name:"AlbumForm",components:{MapMarkerOutline:at,AccountMultiplePlusOutline:et,SendOutline:tt,NcButton:g,NcLoadingIcon:R,NcTextField:Y,CollaboratorsSelectionForm:yt,PhotosFiltersInput:H,PhotosFiltersDisplay:G},props:{album:{type:Object,default:null},filtersValue:{type:Object,default:()=>({})},displayBackButton:{type:Boolean,default:!1}},data(){return{showCollaboratorView:!1,albumName:"",albumLocation:"",albumFilters:J.reduce((t,e)=>({...t,[e.id]:[]}),{}),loading:!1}},computed:{editMode(){return this.album!==null},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},albumNameValidationError(){const t=this.$store.getters.albums[this.albumFileName];if(t!==void 0&&this.album!==t&&!this.loading)return s("files","This name is already in use.");try{S(this.albumName)}catch(e){if(!(e instanceof _))throw e;switch(e.reason){case d.Character:return s("files",'"{char}" is not allowed inside a filename.',{char:e.segment});case d.ReservedName:return;case d.Extension:return;default:return s("files","Invalid filename.")}}},canSubmit(){return this.albumName!==""&&this.albumNameValidationError===void 0&&!this.loading}},mounted(){this.editMode?(this.albumName=this.album?.basename,this.albumLocation=this.album?.attributes.location??"",this.albumFilters={...this.albumFilters,...structuredClone(this.album?.attributes.filters??{})}):this.albumFilters={...this.albumFilters,...structuredClone(this.filtersValue)},this.$nextTick(()=>{this.$refs.nameInput.$el.getElementsByTagName("input")[0].focus()})},methods:{submit(t=[]){this.canSubmit&&(this.editMode?this.handleUpdateAlbum():this.handleCreateAlbum(t))},async handleCreateAlbum(t=[]){try{this.loading=!0;const e=I({basename:this.albumName,filename:f+"/"+this.albumName,lastmod:"",size:0,type:"directory",etag:null,props:{displayname:this.albumName,resourcetype:{},nbItems:0,location:this.albumLocation,"last-photo":-1,date:K().format("MMMM YYYY"),collaborators:t,filters:this.filtersValue,source:M(`dav/${this.albumFileName}`)}},f);let a=await this.$store.dispatch("createCollection",{collection:e});if(a===void 0)return;const l={};this.albumLocation!==""&&(l.location=this.albumLocation),(this.albumLocation!==""||t.length!==0)&&(l.collaborators=t),Object.keys(this.filtersValue).length>0&&(l.filters=this.filtersValue),a=await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:l}),this.$emit("done",{album:a})}finally{this.loading=!1}},async handleUpdateAlbum(){try{this.loading=!0;let t=this.album?.clone();const e=[];if(this.album!==null&&this.album.basename!==this.albumName&&(e.push("name"),t=await this.$store.dispatch("renameCollection",{collectionFileName:this.album.root+this.album.path,newBaseName:this.albumName}),t===this.album))return;this.album!==null&&this.album.attributes.location!==this.albumLocation&&(e.push("location"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{location:this.albumLocation}})),this.album!==null&&JSON.stringify(this.album.attributes.filters)!==JSON.stringify(this.albumFilters)&&(e.push("filters"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{filters:this.albumFilters}})),this.$emit("done",{album:t,changes:e})}finally{this.loading=!1}},selectFilter(t){this.albumFilters[t.filterId].push(t.value)},deselectFilter(t){const e=this.albumFilters[t.filterId].indexOf(t.value);e!==-1&&this.albumFilters[t.filterId].splice(e,1)},back(){this.$emit("back")},t:s}};var kt=function(){var t=this,e=t._self._c;return t.showCollaboratorView?e("CollaboratorsSelectionForm",{attrs:{"album-name":t.albumName,"allow-public-link":!1},scopedSlots:t._u([{key:"default",fn:function({collaborators:a}){return[e("span",{staticClass:"left-buttons"},[e("NcButton",{attrs:{variant:"tertiary"},on:{click:function(l){t.showCollaboratorView=!1}}},[t._v(" "+t._s(t.t("photos","Back"))+" ")])],1),e("span",{staticClass:"right-buttons"},[e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(l){return t.submit(a)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)]}}])}):e("form",{staticClass:"album-form",on:{submit:function(a){return a.preventDefault(),t.submit()}}},[e("div",{staticClass:"form-inputs"},[e("NcTextField",{ref:"nameInput",attrs:{type:"text",name:"name","helper-text":t.albumNameValidationError,error:t.albumNameValidationError!==void 0,required:!0,label:t.t("photos","Name of the album")},model:{value:t.albumName,callback:function(a){t.albumName=typeof a=="string"?a.trim():a},expression:"albumName"}}),e("NcTextField",{attrs:{name:"location",type:"text",label:t.t("photos","Location of the album")},scopedSlots:t._u([{key:"default",fn:function(){return[e("MapMarkerOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3863723734),model:{value:t.albumLocation,callback:function(a){t.albumLocation=a},expression:"albumLocation"}})],1),e("PhotosFiltersInput",{attrs:{"selected-filters":t.albumFilters},on:{"select-filter":t.selectFilter}}),e("PhotosFiltersDisplay",{attrs:{"selected-filters":t.albumFilters},on:{"deselect-filter":t.deselectFilter}}),e("div",{staticClass:"form-buttons"},[e("span",{staticClass:"left-buttons"},[t.displayBackButton?e("NcButton",{attrs:{variant:"tertiary"},on:{click:t.back}},[t._v(" "+t._s(t.t("photos","Back"))+" ")]):t._e()],1),e("span",{staticClass:"right-buttons"},[t.sharingEnabled&&!t.editMode?e("NcButton",{attrs:{variant:"secondary",disabled:!t.canSubmit},on:{click:function(a){t.showCollaboratorView=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountMultiplePlusOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1381680579)},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]):t._e(),e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(a){return t.submit()}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2348760288)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)])],1)},Nt=[],vt=k(gt,kt,Nt,!1,null,"546e550b");const It=vt.exports;export{It as A,yt as C,pt as F}; -//# sourceMappingURL=AlbumForm-Bp1-F3W6.chunk.mjs.map +import{S as o,v as S,I as _,a as d}from"./ShareType-DwTdT9ze.chunk.mjs";import{c as y,x as w,y as $,t as s,E as x,i as B,k as A,b as I,g as M}from"./dav-DT_-tzOR.chunk.mjs";import{n as P,q as n,r as V,D as O,E,F as U,s as c,l as u,S as z,N as g,e as T,z as q,m as K,c as f}from"./index-Cu7wOhwV.chunk.mjs";import{N as R}from"./NcLoadingIcon-oAHuxj6Q.chunk.mjs";import{d as D,e as j,P as G,f as H,b as Y,g as J}from"./PhotosFiltersInput-DCbzjkAP.chunk.mjs";import{E as W,s as Z,t as Q,C as X,n as k,g as tt,u as et,M as at}from"./icons-CNMlCj5c.chunk.mjs";import{G as lt}from"./NcAvatar-BbHwxwyd-COnH1lDD.chunk.mjs";import{a as ot,b as it}from"./collectionFetcher-BrEAZuyc.chunk.mjs";import{A as st}from"./AbortControllerMixin-Di_Dp6RD.chunk.mjs";const C="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e";V(E,O);const rt={model:{prop:"modelValue",event:"update:modelValue"}},nt=y({...rt,__name:"NcSelectUsers",props:{ariaLabelClearSelected:{type:String,default:n("Clear selected")},ariaLabelListbox:{type:String,default:n("Options")},ariaLabelDeselectOption:{type:Function,default:t=>n("Deselect {option}",{option:t})},keepOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},filterBy:{type:Function,default:null},inputId:{type:String,default:()=>lt()},inputLabel:{type:String,default:n("Select account")},labelOutside:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},required:{type:Boolean,default:!1},modelValue:{type:Object,default:null}},emits:["search","update:modelValue"],setup(t,{emit:e}){const a=t,l=w("");$(l,()=>{e("search",l.value)});const i=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),r=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),h=i-2*r;function N(p,v,b){if(a.filterBy)return a.filterBy;const F=/[^<]*<([^>]+)/,m=b.match(F),L=p.subname?.toLocaleLowerCase()??"";return m&&L.indexOf(m[1].toLocaleLowerCase())>-1||`${v} ${p.subname}`.toLocaleLowerCase().indexOf(b.toLocaleLowerCase())>-1}return{__sfc:!0,props:a,emit:e,search:l,clickableArea:i,gridBaseLine:r,avatarSize:h,localFilterBy:N,NcListItemIcon:j,NcSelect:D}}});var ct=function(){var t=this,e=t._self._c,a=t._self._setupProxy;return e(a.NcSelect,t._b({staticClass:"nc-select-users",attrs:{"filter-by":a.localFilterBy,label:"displayName"},on:{search:function(l){a.search=l},"update:model-value":function(l){return t.$emit("update:modelValue",l)}},scopedSlots:t._u([{key:"option",fn:function(l){return[e(a.NcListItemIcon,t._b({attrs:{"avatar-size":32,name:l.displayName,search:a.search}},"NcListItemIcon",l,!1))]}},{key:"selected-option",fn:function(l){return[e(a.NcListItemIcon,t._b({attrs:{"avatar-size":a.avatarSize,name:l.displayName,"no-margin":"",search:a.search}},"NcListItemIcon",l,!1))]}}])},"NcSelect",t.$props,!1))},ut=[],ht=P(nt,ct,ut,!1,null,"7f7ecbfe");const dt=ht.exports,pt=y({name:"FetchCollectionContentMixin",data(){return{fetchSemaphore:new z(1),loadingCollection:!1,loadingCollectionFiles:!1,errorFetchingCollection:null,errorFetchingCollectionFiles:null}},mixins:[st],methods:{async fetchCollection(t,e,a){if(this.loadingCollection)return null;try{this.loadingCollection=!0,this.errorFetchingCollection=null;const l=await it(t,{signal:this.abortController.signal},e,a);return this.$store.dispatch("addCollections",{collections:[l]}),l}catch(l){if(l.response?.status===404)return this.errorFetchingCollection=404,null;this.errorFetchingCollection=l,u.error("[PublicCollectionContent] Error fetching collection",{error:l}),c(s("photos","Failed to fetch collection."))}finally{this.loadingCollection=!1}return null},async fetchCollectionFiles(t,e=[],a){if(this.loadingCollectionFiles)return[];e=[...e,...U];const l=await this.fetchSemaphore.acquire();try{this.errorFetchingCollectionFiles=null,this.loadingCollectionFiles=!0;const i=await ot(t,{signal:this.abortController.signal},e,a),r=i.map(h=>h.fileid?.toString());return this.$store.dispatch("appendFiles",i),await this.$store.commit("setCollectionFiles",{collectionFileName:t,fileIds:r}),i}catch(i){if(i.response?.status===404)return this.errorFetchingCollectionFiles=404,[];this.errorFetchingCollectionFiles=i,c(s("photos","Failed to fetch collections list.")),u.error("[PublicCollectionContent] Error fetching collection files",{error:i})}finally{this.loadingCollectionFiles=!1,this.fetchSemaphore.release(l)}return[]}}}),bt={name:"CollaboratorsSelectionForm",components:{Close:X,ContentCopy:Q,Check:Z,Earth:W,NcButton:g,NcSelectUsers:dt},mixins:[pt],props:{albumName:{type:String,required:!0},collaborators:{type:Array,default:()=>[]},allowPublicLink:{type:Boolean,default:!0}},data(){return{availableCollaborators:{},selectedCollaboratorsKeys:[],currentSearchResults:[],loadingCollaborators:!1,randomId:Math.random().toString().substring(2,10),searchSequence:0,publicLinkCopied:!1,collaboratorTypes:o,config:{minSearchStringLength:parseInt(OC.config["sharing.minSearchStringLength"],10)||0}}},computed:{searchResults(){return this.currentSearchResults.filter(({id:t})=>t!==A()?.uid).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===o.User?"user":"group",iconSvg:t.type===o.Group?C:void 0})).filter(({key:t})=>!this.selectedCollaboratorsKeys.includes(t))},selectedCollaborators(){return this.selectedCollaboratorsKeys.map(t=>this.availableCollaborators[t])},selectedUsers:{get(){return this.selectedCollaborators.filter(({type:t})=>t!==o.Link).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===o.User?"user":"group",iconSvg:t.type===o.Group?C:void 0}))},set(t){this.selectedCollaboratorsKeys=t.map(({key:e})=>e)}},isPublicLinkSelected(){return this.selectedCollaboratorsKeys.includes(`${o.Link}`)},publicLink(){return this.availableCollaborators[o.Link]},publicLinkURL(){return`${window.location.protocol}//${window.location.host}${B(`apps/photos/public/${this.publicLink.id}`)}`},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)}},watch:{collaborators(t){this.populateCollaborators(t)}},mounted(){this.populateCollaborators(this.collaborators)},methods:{async searchCollaborators(t){if(t===void 0||(t=t.trim(),t.length{switch(l.source){case"users":return{id:l.id,label:l.label,type:o.User};case"groups":return{id:l.id,label:l.label,type:o.Group};default:throw new Error(`Invalid collaborator source ${l.source}`)}}),this.availableCollaborators={...this.availableCollaborators,...this.currentSearchResults.reduce(this.indexCollaborators,{})}}catch(a){if(e!==this.searchSequence)return;this.errorFetchingCollaborators=a,u.error(this.t("photos","Failed to fetch collaborators list."),{error:a}),c(this.t("photos","Failed to fetch collaborators list."))}finally{e===this.searchSequence&&(this.loadingCollaborators=!1)}},populateCollaborators(t){const e=t.reduce(this.indexCollaborators,{});this.selectedCollaboratorsKeys=Object.keys(e),this.availableCollaborators={3:{id:"",label:this.t("photos","Public link"),type:o.Link},...this.availableCollaborators,...e}},indexCollaborators(t,e){return{...t,[`${e.type}${e.type===o.Link?"":":"}${e.type===o.Link?"":e.id}`]:e}},async createPublicLinkForAlbum(){this.selectEntity(`${o.Link}`),await this.updateAlbumCollaborators(),await this.fetchCollection(this.albumFileName,T)},async deletePublicLink(){this.unselectEntity(`${o.Link}`),this.availableCollaborators[3]={id:"",label:this.t("photos","Public link"),type:o.Link},this.publicLinkCopied=!1,await this.updateAlbumCollaborators()},async updateAlbumCollaborators(){try{await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:{collaborators:this.selectedCollaborators}})}catch(t){u.error("[PublicAlbumContent] Error updating album",{error:t}),c(this.t("photos","Failed to update album."))}},async copyPublicLink(){await navigator.clipboard.writeText(this.publicLinkURL),this.publicLinkCopied=!0,setTimeout(()=>{this.publicLinkCopied=!1},1e4)},selectEntity(t){this.selectedCollaboratorsKeys.includes(t)||this.selectedCollaboratorsKeys.push(t)},unselectEntity(t){const e=this.selectedCollaboratorsKeys.indexOf(t);e!==-1&&this.selectedCollaboratorsKeys.splice(e,1)},t:s}};var mt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"manage-collaborators"},[e("h2",{staticClass:"manage-collaborators__title"},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]),e("form",{staticClass:"manage-collaborators__form",on:{submit:function(a){a.preventDefault()}}},[e("NcSelectUsers",{attrs:{"input-id":"sharing-search-input","input-label":t.t("photos","Add people or groups who can edit your album"),loading:t.loadingCollaborators,label:"label",filterable:!1,placeholder:t.t("photos","Search people or groups"),"clear-search-on-blur":()=>!1,multiple:!0,"append-to-body":!1,options:t.searchResults},on:{search:t.searchCollaborators,"option:selected":({key:a})=>t.selectEntity(a)},model:{value:t.selectedUsers,callback:function(a){t.selectedUsers=a},expression:"selectedUsers"}},[t._v(" "+t._s(t.t("photos","No recommendations. Start typing."))+" ")])],1),e("div",{staticClass:"actions"},[t.allowPublicLink?e("div",{staticClass:"actions__public-link"},[t.isPublicLinkSelected&&t.publicLink.id!==""?[e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{"aria-label":t.t("photos","Copy the public link"),title:t.publicLinkURL},on:{click:t.copyPublicLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.publicLinkCopied?e("Check"):e("ContentCopy")]},proxy:!0}],null,!1,845538853)},[t.publicLinkCopied?[t._v(" "+t._s(t.t("photos","Public link copied!"))+" ")]:[t._v(" "+t._s(t.t("photos","Copy public link"))+" ")]],2),e("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Delete the public link")},on:{click:t.deletePublicLink}},[e("Close",{attrs:{slot:"icon"},slot:"icon"})],1)]:e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{disabled:t.isPublicLinkSelected&&t.publicLink.id==="","aria-label":t.t("photos","Create public link share")},on:{click:t.createPublicLinkForAlbum}},[e("Earth",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Share via public link"))+" ")],1)],2):t._e(),e("div",{staticClass:"actions__slot"},[t._t("default",null,{collaborators:t.selectedCollaborators})],2)])])},ft=[],Ct=k(bt,mt,ft,!1,null,"beb979f1");const yt=Ct.exports,gt={name:"AlbumForm",components:{MapMarkerOutline:at,AccountMultiplePlusOutline:et,SendOutline:tt,NcButton:g,NcLoadingIcon:R,NcTextField:Y,CollaboratorsSelectionForm:yt,PhotosFiltersInput:H,PhotosFiltersDisplay:G},props:{album:{type:Object,default:null},filtersValue:{type:Object,default:()=>({})},displayBackButton:{type:Boolean,default:!1}},data(){return{showCollaboratorView:!1,albumName:"",albumLocation:"",albumFilters:J.reduce((t,e)=>({...t,[e.id]:[]}),{}),loading:!1}},computed:{editMode(){return this.album!==null},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},albumNameValidationError(){const t=this.$store.getters.albums[this.albumFileName];if(t!==void 0&&this.album!==t&&!this.loading)return s("files","This name is already in use.");try{S(this.albumName)}catch(e){if(!(e instanceof _))throw e;switch(e.reason){case d.Character:return s("files",'"{char}" is not allowed inside a filename.',{char:e.segment});case d.ReservedName:return;case d.Extension:return;default:return s("files","Invalid filename.")}}},canSubmit(){return this.albumName!==""&&this.albumNameValidationError===void 0&&!this.loading}},mounted(){this.editMode?(this.albumName=this.album?.basename,this.albumLocation=this.album?.attributes.location??"",this.albumFilters={...this.albumFilters,...structuredClone(this.album?.attributes.filters??{})}):this.albumFilters={...this.albumFilters,...structuredClone(this.filtersValue)},this.$nextTick(()=>{this.$refs.nameInput.$el.getElementsByTagName("input")[0].focus()})},methods:{submit(t=[]){this.canSubmit&&(this.editMode?this.handleUpdateAlbum():this.handleCreateAlbum(t))},async handleCreateAlbum(t=[]){try{this.loading=!0;const e=I({basename:this.albumName,filename:f+"/"+this.albumName,lastmod:"",size:0,type:"directory",etag:null,props:{displayname:this.albumName,resourcetype:{},nbItems:0,location:this.albumLocation,"last-photo":-1,date:K().format("MMMM YYYY"),collaborators:t,filters:this.filtersValue,source:M(`dav/${this.albumFileName}`)}},f);let a=await this.$store.dispatch("createCollection",{collection:e});if(a===void 0)return;const l={};this.albumLocation!==""&&(l.location=this.albumLocation),(this.albumLocation!==""||t.length!==0)&&(l.collaborators=t),Object.keys(this.filtersValue).length>0&&(l.filters=this.filtersValue),a=await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:l}),this.$emit("done",{album:a})}finally{this.loading=!1}},async handleUpdateAlbum(){try{this.loading=!0;let t=this.album?.clone();const e=[];if(this.album!==null&&this.album.basename!==this.albumName&&(e.push("name"),t=await this.$store.dispatch("renameCollection",{collectionFileName:this.album.root+this.album.path,newBaseName:this.albumName}),t===this.album))return;this.album!==null&&this.album.attributes.location!==this.albumLocation&&(e.push("location"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{location:this.albumLocation}})),this.album!==null&&JSON.stringify(this.album.attributes.filters)!==JSON.stringify(this.albumFilters)&&(e.push("filters"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{filters:this.albumFilters}})),this.$emit("done",{album:t,changes:e})}finally{this.loading=!1}},selectFilter(t){this.albumFilters[t.filterId].push(t.value)},deselectFilter(t){const e=this.albumFilters[t.filterId].indexOf(t.value);e!==-1&&this.albumFilters[t.filterId].splice(e,1)},back(){this.$emit("back")},t:s}};var kt=function(){var t=this,e=t._self._c;return t.showCollaboratorView?e("CollaboratorsSelectionForm",{attrs:{"album-name":t.albumName,"allow-public-link":!1},scopedSlots:t._u([{key:"default",fn:function({collaborators:a}){return[e("span",{staticClass:"left-buttons"},[e("NcButton",{attrs:{variant:"tertiary"},on:{click:function(l){t.showCollaboratorView=!1}}},[t._v(" "+t._s(t.t("photos","Back"))+" ")])],1),e("span",{staticClass:"right-buttons"},[e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(l){return t.submit(a)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)]}}])}):e("form",{staticClass:"album-form",on:{submit:function(a){return a.preventDefault(),t.submit()}}},[e("div",{staticClass:"form-inputs"},[e("NcTextField",{ref:"nameInput",attrs:{type:"text",name:"name","helper-text":t.albumNameValidationError,error:t.albumNameValidationError!==void 0,required:!0,label:t.t("photos","Name of the album")},model:{value:t.albumName,callback:function(a){t.albumName=typeof a=="string"?a.trim():a},expression:"albumName"}}),e("NcTextField",{attrs:{name:"location",type:"text",label:t.t("photos","Location of the album")},scopedSlots:t._u([{key:"default",fn:function(){return[e("MapMarkerOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3863723734),model:{value:t.albumLocation,callback:function(a){t.albumLocation=a},expression:"albumLocation"}})],1),e("PhotosFiltersInput",{attrs:{"selected-filters":t.albumFilters},on:{"select-filter":t.selectFilter}}),e("PhotosFiltersDisplay",{attrs:{"selected-filters":t.albumFilters},on:{"deselect-filter":t.deselectFilter}}),e("div",{staticClass:"form-buttons"},[e("span",{staticClass:"left-buttons"},[t.displayBackButton?e("NcButton",{attrs:{variant:"tertiary"},on:{click:t.back}},[t._v(" "+t._s(t.t("photos","Back"))+" ")]):t._e()],1),e("span",{staticClass:"right-buttons"},[t.sharingEnabled&&!t.editMode?e("NcButton",{attrs:{variant:"secondary",disabled:!t.canSubmit},on:{click:function(a){t.showCollaboratorView=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountMultiplePlusOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1381680579)},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]):t._e(),e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(a){return t.submit()}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2348760288)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)])],1)},Nt=[],vt=k(gt,kt,Nt,!1,null,"546e550b");const It=vt.exports;export{It as A,yt as C,pt as F}; +//# sourceMappingURL=AlbumForm-CIQfeO19.chunk.mjs.map diff --git a/js/AlbumForm-Bp1-F3W6.chunk.mjs.license b/js/AlbumForm-CIQfeO19.chunk.mjs.license similarity index 100% rename from js/AlbumForm-Bp1-F3W6.chunk.mjs.license rename to js/AlbumForm-CIQfeO19.chunk.mjs.license diff --git a/js/AlbumForm-Bp1-F3W6.chunk.mjs.map b/js/AlbumForm-CIQfeO19.chunk.mjs.map similarity index 99% rename from js/AlbumForm-Bp1-F3W6.chunk.mjs.map rename to js/AlbumForm-CIQfeO19.chunk.mjs.map index 0d72067957..8dbe0aa407 100644 --- a/js/AlbumForm-Bp1-F3W6.chunk.mjs.map +++ b/js/AlbumForm-CIQfeO19.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AlbumForm-Bp1-F3W6.chunk.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-BoPfmCbV.mjs","../src/mixins/FetchCollectionContentMixin.ts","../src/components/Albums/CollaboratorsSelectionForm.vue","../src/components/Albums/AlbumForm.vue"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e\"","import '../assets/NcSelectUsers-BDh2CSCJ.css';\nimport { defineComponent, ref, watch } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-6OlDNank.mjs\";\nimport { N as NcSelect } from \"./NcSelect-COY5TV2U.mjs\";\nimport { r as register, x as t47, h as t16, a as t } from \"./_l10n-Dv1YKfKS.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t16, t47);\nconst __default__ = {\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n }\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n __name: \"NcSelectUsers\",\n props: {\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Keep the dropdown open after selecting an entry.\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the component\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Callback to determine if the provided option should match the current search text.\n * Used to determine if the option should be displayed.\n *\n * By default it filters by the `displayName` and `subname` properties of the user\n * option object unless this prop is set explicitly\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => GenRandomId()\n },\n /**\n * Visible label for the input element\n *\n * @default 'Select account'\n */\n inputLabel: {\n type: String,\n default: t(\"Select account\")\n },\n /**\n * Pass true if you are using an external label.\n * In this case make sure you set the `for` attribute of your `