From b3f11d8b4b84dd84056d7d5f17d97ba0aeb86fd7 Mon Sep 17 00:00:00 2001 From: Peter Ringelmann Date: Fri, 7 Aug 2026 07:35:55 +0200 Subject: [PATCH 1/4] fix(core): never insert a unified search result above a rendered one Signed-off-by: Peter Ringelmann --- .../UnifiedSearch/UnifiedSearchModal.vue | 32 +- core/src/composables/useUnifiedSearch.ts | 4 + core/src/services/UnifiedSearchController.ts | 81 ++++- .../components/UnifiedSearchModal.spec.ts | 61 +++- .../composables/useUnifiedSearch.spec.ts | 4 + .../services/UnifiedSearchController.spec.ts | 277 ++++++++++++++++-- 6 files changed, 418 insertions(+), 41 deletions(-) diff --git a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue index 1810fb2f57376..a53bd30259402 100644 --- a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue +++ b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue @@ -376,11 +376,12 @@ export default defineComponent({ const searchStore = useSearchStore() const isSmallMobile = useIsSmallMobile() - const { searchStates, search, loadMore, reset } = useUnifiedSearch() + const { searchStates, revealOrder, search, loadMore, reset } = useUnifiedSearch() return { t, searchStates, + revealOrder, search, loadMore, reset, @@ -548,18 +549,19 @@ export default defineComponent({ .filter((filter) => filter.type !== 'provider') .map((filter) => filter.type) - return Object.entries(this.searchStates) - .filter(([, state]) => state.entries.length > 0 && (state.status === 'loaded' || state.status === 'loading')) - .map(([providerId, state]) => { - const provider = this.providers.find((p) => p.id === providerId) - const supportsActiveFilters = this.providerIsCompatibleWithFilters(provider, contentFilterTypes) - return { - ...provider, - results: state.entries, - hasMore: state.hasMore, - supportsActiveFilters, - } - }) + // Category order and category-level visibility are the controller's, see + // getRevealOrder(). Do not re-derive or re-sort them here. + return this.revealOrder.map((providerId) => { + const state = this.searchStates[providerId] + const provider = this.providers.find((p) => p.id === providerId) + const supportsActiveFilters = this.providerIsCompatibleWithFilters(provider, contentFilterTypes) + return { + ...provider, + results: state.entries, + hasMore: state.hasMore, + supportsActiveFilters, + } + }) }, filteredResults() { @@ -615,6 +617,10 @@ export default defineComponent({ // two can't drift (a11y invariant). Aggregate: filtered then partial-match groups, // capped to RESULTS_PER_CATEGORY with `overflow` when there's more. Detail: the // opened category alone, uncapped. + // + // This partition is a second ordering axis, so reveal order holds *within* a section, + // not across the two: with content filters active, a filter-compatible category that + // lands late still renders above an already-shown partial match. renderedGroups() { if (this.detailCategory) { return this.detailGroup diff --git a/core/src/composables/useUnifiedSearch.ts b/core/src/composables/useUnifiedSearch.ts index aed0376ce3e47..b07b053f20086 100644 --- a/core/src/composables/useUnifiedSearch.ts +++ b/core/src/composables/useUnifiedSearch.ts @@ -13,9 +13,12 @@ import { UnifiedSearchController } from '../services/UnifiedSearchController.ts' */ export function useUnifiedSearch() { const searchStates = shallowRef>({}) + const revealOrder = shallowRef([]) const controller = new UnifiedSearchController((states) => { + // Both assigned here, never separately: the view reads one against the other. searchStates.value = states + revealOrder.value = controller.getRevealOrder() }) onUnmounted(() => { @@ -24,6 +27,7 @@ export function useUnifiedSearch() { return { searchStates, + revealOrder, search: controller.search.bind(controller), loadMore: controller.loadMore.bind(controller), reset: controller.reset.bind(controller), diff --git a/core/src/services/UnifiedSearchController.ts b/core/src/services/UnifiedSearchController.ts index 43c4117183140..9c1db7b735ea5 100644 --- a/core/src/services/UnifiedSearchController.ts +++ b/core/src/services/UnifiedSearchController.ts @@ -31,14 +31,33 @@ export const REVEAL_INTERVAL_MS = 1500 */ export const PAGE_SIZE = 10 +/** + * Whether a category has anything for the user to look at. Blocked is deliberately + * withheld, failed carries no entries, and a loading category keeps its previous page up + * (stale-while-revalidate) so it stays visible through a refetch. + * + * Exported so the one definition also serves the Vue-side test doubles; the controller is + * the only place that decides category-level visibility. + * + * @param state the category state to test + */ +export function isCategoryVisible(state: CategorySearchState): boolean { + return state.entries.length > 0 && (state.status === 'loaded' || state.status === 'loading') +} + /** * Runs a unified search across categories in priority order, blocking * lower-priority results until their predecessors arrive or a timer reveals them. + * + * Priority decides who waits for whom. It has no say over what is already on screen: + * see `getRevealOrder()`. */ export class UnifiedSearchController { private query: string = '' private params: Record = {} private searchStates: Record = {} + private revealOrder: string[] = [] + private revealWindowOpen: boolean = false private searchGeneration: number = 0 private revealTimer: ReturnType | null = null private pendingCancels: (() => void)[] = [] @@ -60,6 +79,12 @@ export class UnifiedSearchController { // Each recurring category is reseeded with its prior entries below; dropped ones vanish. const previous = this.searchStates this.searchStates = {} + // Prune rather than clear: survivors keep the slots they already hold, so refining a query + // never re-sorts rendered results back to priority order. A category the new search + // dropped is reseeded invisible if it ever returns, so it re-enters at the bottom. This + // cannot cover the window while the states below are still being reseeded one at a time; + // getRevealOrder() does that. + this.revealOrder = this.revealOrder.filter((category) => categories.includes(category)) this.searchGeneration++ const generation = this.searchGeneration this.query = query @@ -72,7 +97,7 @@ export class UnifiedSearchController { // Only entries that were actually on screen seed the stale view. A blocked or failed // category's entries were fetched but never rendered, so they must not carry over // (and must not let the category skip the ordered reveal). - const staleEntries = prev && (prev.status === 'loaded' || prev.status === 'loading') ? prev.entries : [] + const staleEntries = prev && isCategoryVisible(prev) ? prev.entries : [] return this.searchCategory(category, generation, categories, staleEntries) })) } @@ -137,6 +162,22 @@ export class UnifiedSearchController { return { ...this.searchStates } } + /** + * The ids of the categories currently on screen, in display order. + * + * Append-only, so a category never moves up into a slot another one already occupies: a + * result that arrives late renders below what the user is already reading, however high + * its priority. Read this rather than the snapshot's key order, which is the priority + * order and an input to blocking, not a rendering order. + * + * Every id is indexable in the same snapshot, so a caller can map without guarding. + * + * @return visible category ids, top to bottom + */ + getRevealOrder(): string[] { + return this.revealOrder.filter((category) => category in this.searchStates) + } + dispose(): void { this.stopBackgroundWork() } @@ -144,6 +185,7 @@ export class UnifiedSearchController { reset(): void { this.stopBackgroundWork() this.searchStates = {} + this.revealOrder = [] this.query = '' this.params = {} this.searchGeneration++ @@ -225,19 +267,23 @@ export class UnifiedSearchController { }) } + /** + * Arm the one reveal window a search gets. Ordered reveal governs the first paint only: + * when the window closes everything blocked is shown and nothing may block again, so a + * category that lands later is revealed straight away, at the end. Only a new search + * opens another window. + */ private startRevealTimer(): void { this.stopRevealTimer() + this.revealWindowOpen = true this.revealTimer = setTimeout(() => { - const categories = Object.keys(this.searchStates) - const hasPendingCategories = categories.some((category) => ['loading', 'blocked'].includes(this.searchStates[category].status)) - this.unblockAllCategories(categories) - if (hasPendingCategories) { - this.startRevealTimer() - } + this.revealWindowOpen = false + this.unblockAllCategories(Object.keys(this.searchStates)) }, REVEAL_INTERVAL_MS) } private stopRevealTimer(): void { + this.revealWindowOpen = false if (this.revealTimer) { clearTimeout(this.revealTimer) this.revealTimer = null @@ -275,7 +321,8 @@ export class UnifiedSearchController { } private shouldBlockCategory(category: string, categories: string[]): boolean { - if (!this.searchStates[category]) { + // Once the window has closed, ordered reveal is over for this search. + if (!this.revealWindowOpen || !this.searchStates[category]) { return false } @@ -285,10 +332,28 @@ export class UnifiedSearchController { }) } + /** + * Keep the display order in step with what is on screen. Losing its results frees a + * category's slot, so the list closes the gap instead of leaving a hole. + * + * @param category the category id that just changed + * @param state its merged state + */ + private syncRevealOrder(category: string, state: CategorySearchState): void { + const at = this.revealOrder.indexOf(category) + const visible = isCategoryVisible(state) + if (visible && at === -1) { + this.revealOrder.push(category) + } else if (!visible && at !== -1) { + this.revealOrder.splice(at, 1) + } + } + private patchStates(next: Record>): void { Object.keys(next).forEach((category) => { const categoryState = { ...this.searchStates[category], ...next[category] } this.searchStates[category] = categoryState + this.syncRevealOrder(category, categoryState) }) this.onChange?.(this.getSnapshot()) } diff --git a/core/src/tests/components/UnifiedSearchModal.spec.ts b/core/src/tests/components/UnifiedSearchModal.spec.ts index 17f3afd7d65be..8c8524da16881 100644 --- a/core/src/tests/components/UnifiedSearchModal.spec.ts +++ b/core/src/tests/components/UnifiedSearchModal.spec.ts @@ -4,7 +4,7 @@ */ import { shallowMount } from '@vue/test-utils' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { ref } from 'vue' +import { computed, ref } from 'vue' // @nextcloud/vue's Window._nc_focus_trap augmentation is not in this test's program, // so reach the shared trap stack through a cast. onEscapeKey only compares identity, @@ -44,11 +44,13 @@ vi.mock('../../logger.js', () => ({ })) import UnifiedSearchModal from '../../components/UnifiedSearch/UnifiedSearchModal.vue' +import { isCategoryVisible } from '../../services/UnifiedSearchController.ts' let searchSpy: ReturnType let loadMoreSpy: ReturnType let resetSpy: ReturnType let searchStates: ReturnType +let revealOrderOverride: ReturnType // VTU v1 (the legacy Vue 2.7 project) has no flushPromises export; drain the // microtask + timer queue so resolved provider fetches and their .then run. @@ -73,12 +75,22 @@ beforeEach(() => { searchSpy = vi.fn() loadMoreSpy = vi.fn() searchStates = ref({}) + // The controller derives the reveal order from what is visible, and when every category + // arrives in priority order that is simply the snapshot's key order. Mirror that here, + // through the controller's own predicate so the double can't drift from it, and tests + // that do not care about order need no extra setup. The ones that do set + // revealOrderOverride to make display order diverge from priority order. + revealOrderOverride = ref(null) + const revealOrder = computed(() => revealOrderOverride.value ?? Object.entries(searchStates.value) + .filter(([, state]) => isCategoryVisible(state)) + .map(([category]) => category)) // Faithful stand-in for the composable's reset: like the real one, it empties // the reactive snapshot the modal renders from. resetSpy = vi.fn(() => { searchStates.value = {} + revealOrderOverride.value = null }) - composable.api = { searchStates, search: searchSpy, loadMore: loadMoreSpy, reset: resetSpy } + composable.api = { searchStates, revealOrder, search: searchSpy, loadMore: loadMoreSpy, reset: resetSpy } }) afterEach(() => vi.clearAllMocks()) @@ -1175,3 +1187,48 @@ describe('UnifiedSearchModal loading state', () => { expect(wrapper.findComponent({ name: 'NcLoadingIcon' }).exists()).toBe(true) }) }) + +describe('UnifiedSearchModal reveal order', () => { + const providers = [ + { id: 'files', name: 'Files', order: 0 }, + { id: 'talk', name: 'Talk', order: 1 }, + { id: 'deck', name: 'Deck', order: 2 }, + ] + + /** + * Mount with three loaded categories and an explicit display order. + */ + async function withRevealOrder(order: string[]) { + const wrapper = factory() + wrapper.vm.providers = providers + searchStates.value = { + files: loaded([{ resourceUrl: '/files' }]), + talk: loaded([{ resourceUrl: '/talk' }]), + deck: loaded([{ resourceUrl: '/deck' }]), + } + revealOrderOverride.value = order + wrapper.vm.searchQuery = 'query' + await wrapper.vm.$nextTick() + return wrapper + } + + it('renders groups and navigable rows in reveal order rather than priority order', async () => { + // files has top priority but was slow, so it was revealed last. + const wrapper = await withRevealOrder(['talk', 'deck', 'files']) + + const titles = wrapper.findAll('.result-title').wrappers.map((w) => w.text()) + expect(titles).toEqual(['Talk', 'Deck', 'Files']) + // navigableRows must agree with the DOM, or aria-activedescendant names a row + // somewhere other than where the highlight is. + expect(wrapper.vm.navigableRows.map((row) => row.resourceUrl)).toEqual(['/talk', '/deck', '/files']) + }) + + it('withholds a category that has results but has not been revealed', async () => { + // deck is loaded and non-empty but still blocked behind a slower category, so the + // controller keeps it out of the order and the modal must not second-guess that. + const wrapper = await withRevealOrder(['files', 'talk']) + + const titles = wrapper.findAll('.result-title').wrappers.map((w) => w.text()) + expect(titles).toEqual(['Files', 'Talk']) + }) +}) diff --git a/core/src/tests/composables/useUnifiedSearch.spec.ts b/core/src/tests/composables/useUnifiedSearch.spec.ts index c9a873a1b07dc..e1b01d60d1b7f 100644 --- a/core/src/tests/composables/useUnifiedSearch.spec.ts +++ b/core/src/tests/composables/useUnifiedSearch.spec.ts @@ -88,6 +88,7 @@ describe('useUnifiedSearch', () => { const { api } = mountComposable() expect(api.searchStates.value).toEqual({}) + expect(api.revealOrder.value).toEqual([]) }) it('reflects controller state reactively as a search resolves', async () => { @@ -102,6 +103,8 @@ describe('useUnifiedSearch', () => { status: 'loaded', entries: ['a result'], }) + // The order mirrors alongside the states; the view reads one against the other. + expect(api.revealOrder.value).toEqual(['files']) }) it('appends a page through loadMore and reflects it', async () => { @@ -138,6 +141,7 @@ describe('useUnifiedSearch', () => { // Reset drops the previous session's results from the reactive mirror, so // the modal renders nothing stale on its next open. expect(api.searchStates.value).toEqual({}) + expect(api.revealOrder.value).toEqual([]) }) it('cancels in-flight requests when the component unmounts', () => { diff --git a/core/src/tests/services/UnifiedSearchController.spec.ts b/core/src/tests/services/UnifiedSearchController.spec.ts index bc8b5b581a37f..856097dff647e 100644 --- a/core/src/tests/services/UnifiedSearchController.spec.ts +++ b/core/src/tests/services/UnifiedSearchController.spec.ts @@ -179,6 +179,8 @@ describe('UnifiedSearchController', () => { talk: { status: 'loaded', entries: ['Talk result'], cursor: null, hasMore: false, loadMoreFailed: false }, deck: loading, }) + // A failed category has nothing to show, so it never takes a display slot. + expect(searchController.getRevealOrder()).toEqual(['talk']) }) }) @@ -246,15 +248,15 @@ describe('UnifiedSearchController', () => { }) }) - describe('result ordering', () => { - it('keeps categories in the order passed to search, regardless of which resolve first', async () => { + describe('reveal order', () => { + it('keys the snapshot in priority order, regardless of which categories resolve first', async () => { const providers = mockProviders(['files', 'talk', 'deck']) const searchController = new UnifiedSearchController() searchController.search('query', ['files', 'talk', 'deck']) // Resolve in reverse priority order: lowest-priority provider first, - // highest-priority one last. If order followed arrival, this would flip it. + // highest-priority one last. If key order followed arrival, this would flip it. providers.deck.resolve(['deck result']) await vi.advanceTimersByTimeAsync(0) providers.talk.resolve(['talk result']) @@ -265,25 +267,192 @@ describe('UnifiedSearchController', () => { // Keys still follow the categories array: each category's slot is inserted // synchronously (the 'loading' patch) before any request resolves, so // arrival order cannot reorder the snapshot. + // + // Key order is the internal priority order: it decides who blocks whom and keeps a + // batched flush preferred-ordered. Display order is getRevealOrder(), asserted in + // the cases below, and the two deliberately disagree once anything arrives late. expect(Object.keys(searchController.getSnapshot())).toEqual(['files', 'talk', 'deck']) }) + + it('appends a late high-priority category below the ones already revealed', async () => { + const providers = mockProviders(['files', 'talk', 'deck']) + + const searchController = new UnifiedSearchController() + searchController.search('query', ['files', 'talk', 'deck']) + + // talk and deck settle while files (top priority) is still in flight, so both block. + providers.talk.resolve(['Talk result']) + providers.deck.resolve(['Deck result']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual([]) + + // The tick gives up waiting for files and reveals them. + await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + expect(searchController.getRevealOrder()).toEqual(['talk', 'deck']) + + // files lands just after. It must go below what is already on screen: displacing + // rendered results is the jump this whole mechanism exists to prevent. + providers.files.resolve(['Files result']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['talk', 'deck', 'files']) + }) + + it('keeps priority order among categories revealed in the same flush', async () => { + const providers = mockProviders(['files', 'talk', 'deck']) + + const searchController = new UnifiedSearchController() + searchController.search('query', ['files', 'talk', 'deck']) + + // deck arrives before talk, both blocked behind files. + providers.deck.resolve(['Deck result']) + await vi.advanceTimersByTimeAsync(0) + providers.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + + // Nothing was on screen before the flush, so there is nothing to displace and the + // preferred order applies between them rather than the order they happened to arrive. + await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + expect(searchController.getRevealOrder()).toEqual(['talk', 'deck']) + }) + + it('keeps reveal positions across a refined query', async () => { + const first = mockProviders(['files', 'talk']) + + const searchController = new UnifiedSearchController() + searchController.search('old', ['files', 'talk']) + + // talk gets on screen first, so the session order is talk before files. + first.talk.resolve(['Old talk']) + await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + first.files.resolve(['Old files']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + + // Refining must not re-sort what is already on screen back to priority order. + // Both categories stay rendered throughout (stale-while-revalidate), so moving + // them would be a displacement with identical content. + const second = mockProviders(['files', 'talk']) + searchController.search('new', ['files', 'talk']) + expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + + second.files.resolve(['New files']) + second.talk.resolve(['New talk']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + }) + + it('releases a slot when a category loses its results, and appends it again if it returns', async () => { + const first = mockProviders(['files', 'talk']) + + const searchController = new UnifiedSearchController() + searchController.search('a', ['files', 'talk']) + first.files.resolve(['Files a']) + first.talk.resolve(['Talk a']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) + + // files has nothing for the refined query, so it stops being visible and frees + // its slot. talk closing the gap moves up, which is not an insertion above it. + const second = mockProviders(['files', 'talk']) + searchController.search('b', ['files', 'talk']) + second.files.resolve([]) + second.talk.resolve(['Talk b']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['talk']) + + // It has results again on the next query, so it comes back as a fresh reveal: + // at the end, not back at its old priority slot. + const third = mockProviders(['files', 'talk']) + searchController.search('c', ['files', 'talk']) + third.files.resolve(['Files c']) + third.talk.resolve(['Talk c']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + }) + + it('re-appends a category that left the search entirely instead of reclaiming its old slot', async () => { + const first = mockProviders(['files', 'talk']) + + const searchController = new UnifiedSearchController() + searchController.search('foo', ['files', 'talk']) + first.files.resolve(['Files result']) + first.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) + + // A provider filter narrows the search: files leaves the category list altogether, + // which is a different exit from losing its results (that one goes through + // syncRevealOrder; this one goes through the prune in search()). + const second = mockProviders(['talk']) + searchController.search('foo', ['talk']) + second.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + expect(searchController.getRevealOrder()).toEqual(['talk']) + + // The filter comes off. talk never left the screen, so files has to come back below + // it: reclaiming slot 0 would shove a rendered group down. + const third = mockProviders(['files', 'talk']) + searchController.search('foo', ['files', 'talk']) + third.files.resolve(['Files result']) + third.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + + expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + }) + + it('never hands out a category the snapshot cannot index, part-way through a search', async () => { + const first = mockProviders(['files', 'talk']) + const unindexable: string[][] = [] + + // Reads back through the controller the way the composable does: the callback only + // runs during a search, so the reference is live by then. + const searchController = new UnifiedSearchController((states) => { + const missing = searchController.getRevealOrder().filter((category) => !(category in states)) + if (missing.length > 0) { + unindexable.push(missing) + } + }) + + searchController.search('foo', ['files', 'talk']) + first.files.resolve(['Files result']) + first.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + + // A refined query empties the snapshot and reseeds one category at a time, notifying + // after each. The order still holds both survivors throughout, so between those two + // notifications the order names a category the snapshot has not got back yet. The + // view maps the order straight onto the snapshot, so the accessor must never expose + // that: a computed dereferencing a missing state throws inside the page header. + const second = mockProviders(['files', 'talk']) + searchController.search('bar', ['files', 'talk']) + second.files.resolve(['Files 2']) + second.talk.resolve(['Talk 2']) + await vi.advanceTimersByTimeAsync(0) + + expect(unindexable).toEqual([]) + }) }) describe('resetting between searches', () => { it('drops categories that are not part of a newer, narrower search', async () => { - mockProviders(['files', 'talk', 'deck']) + const first = mockProviders(['files', 'talk', 'deck']) const searchController = new UnifiedSearchController() searchController.search('first', ['files', 'talk', 'deck']) + first.files.resolve(['Files result']) + first.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) // A narrower search replaces the first. The dropped categories must - // not linger in the snapshot. + // not linger in the snapshot, nor in the display order: the view maps the + // order straight onto the snapshot and would hit a missing category. mockProviders(['files']) searchController.search('second', ['files']) expect(searchController.getSnapshot()).toEqual({ - files: loading, + files: { status: 'loading', entries: ['Files result'], cursor: null, hasMore: false, loadMoreFailed: false }, }) + expect(searchController.getRevealOrder()).toEqual(['files']) }) }) @@ -406,6 +575,8 @@ describe('UnifiedSearchController', () => { searchController.reset() expect(searchController.getSnapshot()).toEqual({}) + // Closing the popover is the one point where display order re-derives from priority. + expect(searchController.getRevealOrder()).toEqual([]) }) it('notifies with the empty snapshot when reset', async () => { @@ -652,6 +823,8 @@ describe('UnifiedSearchController', () => { loadMoreFailed: false, }) expect(onChange).toHaveBeenCalled() + // Still visible, so it holds its display slot instead of dropping out and reappearing. + expect(searchController.getRevealOrder()).toEqual(['files']) }) it('re-dispatches with the stored cursor', async () => { @@ -891,26 +1064,28 @@ describe('UnifiedSearchController', () => { }) }) - it('keeps flushing on later timer cycles while categories are still loading', async () => { - const providers = mockProviders(['files', 'talk', 'deck']) + it('arms a fresh reveal window for each new search', async () => { + const first = mockProviders(['files', 'talk']) const searchController = new UnifiedSearchController() - searchController.search('query', ['files', 'talk', 'deck']) - - // deck arrives out of order and is revealed by the first flush. - providers.deck.resolve(['Deck result']) - await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) - expect(searchController.getSnapshot().deck.status).toBe('loaded') + searchController.search('first', ['files', 'talk']) - // A later flush passes with nothing blocked while files/talk keep loading. + // The first search spends its window on talk, then stands the timer down. talk + // comes back empty so it carries no stale results into the second search, which + // would otherwise settle it straight to loaded and never block it. + first.talk.resolve([]) await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + expect(searchController.getSnapshot().talk.status).toBe('loaded') + expect(vi.getTimerCount()).toBe(0) - // talk now arrives out of order (files still loading) and is blocked. - providers.talk.resolve(['Talk result']) + // A new search must get its own window, otherwise its out-of-order categories + // would stay blocked forever with no flush left to reveal them. + const second = mockProviders(['files', 'talk']) + searchController.search('second', ['files', 'talk']) + second.talk.resolve(['Second talk']) await vi.advanceTimersByTimeAsync(0) expect(searchController.getSnapshot().talk.status).toBe('blocked') - // The timer must still be running to flush talk on a later cycle. await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) expect(searchController.getSnapshot().talk.status).toBe('loaded') }) @@ -976,5 +1151,71 @@ describe('UnifiedSearchController', () => { await vi.advanceTimersByTimeAsync(0) expect(searchController.getSnapshot().talk.status).toBe('loaded') }) + + it('reveals a category that settles after the window closed straight away', async () => { + const providers = mockProviders(['files', 'talk', 'deck', 'mail']) + + const searchController = new UnifiedSearchController() + searchController.search('query', ['files', 'talk', 'deck', 'mail']) + + // talk and deck settle behind the still-loading files and block. + providers.talk.resolve(['Talk result']) + providers.deck.resolve(['Deck result']) + await vi.advanceTimersByTimeAsync(0) + + // The window closes and reveals them, with files and mail still in flight. + await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + expect(searchController.getRevealOrder()).toEqual(['talk', 'deck']) + + // mail lands right after. Ordered reveal is over, so it paints immediately at the + // end instead of blocking behind files for another whole window. + providers.mail.resolve(['Mail result']) + await vi.advanceTimersByTimeAsync(0) + + expect(searchController.getSnapshot().mail.status).toBe('loaded') + expect(searchController.getRevealOrder()).toEqual(['talk', 'deck', 'mail']) + }) + + it('does not re-arm the reveal timer while a provider is still hung', async () => { + const providers = mockProviders(['files', 'talk']) + + const searchController = new UnifiedSearchController() + searchController.search('query', ['files', 'talk']) + + providers.talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + + // The window reveals talk and closes for good. Nothing can block after that, so + // there is nothing for a later cycle to do and the timer must stand down even + // though files never resolved. + await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + + expect(searchController.getSnapshot().files.status).toBe('loading') + expect(vi.getTimerCount()).toBe(0) + }) + + it('does not block a category that settles while an earlier one is paging', async () => { + const files = pagedProvider() + const talk = deferredProvider() + service.search.mockImplementation(({ type }: { type: string }) => (type === 'files' ? files : talk)) + + const searchController = new UnifiedSearchController() + searchController.search('query', ['files', 'talk']) + + // files lands with more pages to fetch; talk is still in flight when the window closes. + files.resolvePage(0, { entries: ['a'], cursor: 'cursor-1', isPaginated: true }) + await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) + + // The user pages files, which puts it back into 'loading' after the window closed. + searchController.loadMore('files') + + // talk settles behind it. Ordered reveal is over, so a paging predecessor must not + // block it: the window is one-shot, so nothing would ever release it again. + talk.resolve(['Talk result']) + await vi.advanceTimersByTimeAsync(0) + + expect(searchController.getSnapshot().talk.status).toBe('loaded') + expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) + }) }) }) From a6fcbe3a90de593dc9a115b7b0a5b86be7cbda16 Mon Sep 17 00:00:00 2001 From: Peter Ringelmann Date: Fri, 7 Aug 2026 08:19:00 +0200 Subject: [PATCH 2/4] feat(core): reduce unifieid search reveal interval Signed-off-by: Peter Ringelmann --- core/src/services/UnifiedSearchController.ts | 58 ++++++-------- .../services/UnifiedSearchController.spec.ts | 75 ++++++++----------- 2 files changed, 51 insertions(+), 82 deletions(-) diff --git a/core/src/services/UnifiedSearchController.ts b/core/src/services/UnifiedSearchController.ts index 9c1db7b735ea5..05e9b28d86432 100644 --- a/core/src/services/UnifiedSearchController.ts +++ b/core/src/services/UnifiedSearchController.ts @@ -23,7 +23,7 @@ export interface CategorySearchParams { extraQueries?: object } -export const REVEAL_INTERVAL_MS = 1500 +export const REVEAL_INTERVAL_MS = 1000 /** * Results fetched per category per page. Sized for the detail view (which shows the @@ -32,9 +32,10 @@ export const REVEAL_INTERVAL_MS = 1500 export const PAGE_SIZE = 10 /** - * Whether a category has anything for the user to look at. Blocked is deliberately - * withheld, failed carries no entries, and a loading category keeps its previous page up - * (stale-while-revalidate) so it stays visible through a refetch. + * Whether a category has anything for the user to look at. Blocked is deliberately withheld + * and failed carries no entries. Loading counts because paging keeps the pages already + * fetched on screen while the next one is in flight; a new query has no entries to show, so + * it reads as not visible until results actually land. * * Exported so the one definition also serves the Vue-side test doubles; the controller is * the only place that decides category-level visibility. @@ -74,17 +75,12 @@ export class UnifiedSearchController { */ async search(query: string, categories: string[], params?: Record): Promise { this.cancelPendingRequests() - // Stale-while-revalidate: keep the previous page on screen while the new search is in - // flight, so refining a query swaps results in place instead of flashing an empty panel. - // Each recurring category is reseeded with its prior entries below; dropped ones vanish. - const previous = this.searchStates + // A new query hides everything the last one produced. Carrying results over would only + // let them shift under the user once the real ones land, and the results are about to + // differ anyway. So each search is a clean slate: empty screen, then a fresh ordered + // reveal from priority order. Nothing is on screen, so nothing can be displaced. this.searchStates = {} - // Prune rather than clear: survivors keep the slots they already hold, so refining a query - // never re-sorts rendered results back to priority order. A category the new search - // dropped is reseeded invisible if it ever returns, so it re-enters at the bottom. This - // cannot cover the window while the states below are still being reseeded one at a time; - // getRevealOrder() does that. - this.revealOrder = this.revealOrder.filter((category) => categories.includes(category)) + this.revealOrder = [] this.searchGeneration++ const generation = this.searchGeneration this.query = query @@ -92,14 +88,7 @@ export class UnifiedSearchController { this.startRevealTimer() - await Promise.allSettled(categories.map((category) => { - const prev = previous[category] - // Only entries that were actually on screen seed the stale view. A blocked or failed - // category's entries were fetched but never rendered, so they must not carry over - // (and must not let the category skip the ordered reveal). - const staleEntries = prev && isCategoryVisible(prev) ? prev.entries : [] - return this.searchCategory(category, generation, categories, staleEntries) - })) + await Promise.allSettled(categories.map((category) => this.searchCategory(category, generation, categories))) } /** @@ -165,17 +154,18 @@ export class UnifiedSearchController { /** * The ids of the categories currently on screen, in display order. * - * Append-only, so a category never moves up into a slot another one already occupies: a - * result that arrives late renders below what the user is already reading, however high - * its priority. Read this rather than the snapshot's key order, which is the priority - * order and an input to blocking, not a rendering order. + * Append-only within a search, so a category never moves up into a slot another one already + * occupies: a result that arrives late renders below what the user is already reading, + * however high its priority. A new query starts over from priority order, since it clears + * the screen first and so has nothing to displace. Read this rather than the snapshot's key + * order, which is the priority order and an input to blocking, not a rendering order. * - * Every id is indexable in the same snapshot, so a caller can map without guarding. + * Only ever names categories the current snapshot holds, so a caller can map without guarding. * * @return visible category ids, top to bottom */ getRevealOrder(): string[] { - return this.revealOrder.filter((category) => category in this.searchStates) + return [...this.revealOrder] } dispose(): void { @@ -196,13 +186,10 @@ export class UnifiedSearchController { category: string, generation: number, categories: string[], - staleEntries: unknown[] = [], ): Promise { - // Seed with the prior page (stale-while-revalidate) so it stays visible under the - // spinner until the fresh page replaces it. Empty on a first search. this.patchStates({ [category]: { status: 'loading', - entries: staleEntries, + entries: [], cursor: null, hasMore: false, loadMoreFailed: false, @@ -227,12 +214,9 @@ export class UnifiedSearchController { const { entries, cursor, isPaginated } = response.data.ocs.data // Decide blocked vs loaded once, here at settle. Reconcile only promotes after this - // (never re-blocks), so this is the only place a category becomes blocked. A category - // that carried stale results skips blocking: it is already on screen, so blocking it - // would blink it off until its predecessors clear. Ordered reveal is only for the - // first paint, when nothing is shown yet. + // (never re-blocks), so this is the only place a category becomes blocked. this.patchStates({ [category]: { - status: (staleEntries.length === 0 && this.shouldBlockCategory(category, categories)) ? 'blocked' : 'loaded', + status: this.shouldBlockCategory(category, categories) ? 'blocked' : 'loaded', entries, cursor, hasMore: this.hasMorePages(isPaginated, cursor), diff --git a/core/src/tests/services/UnifiedSearchController.spec.ts b/core/src/tests/services/UnifiedSearchController.spec.ts index 856097dff647e..2c4af7361f43f 100644 --- a/core/src/tests/services/UnifiedSearchController.spec.ts +++ b/core/src/tests/services/UnifiedSearchController.spec.ts @@ -315,30 +315,29 @@ describe('UnifiedSearchController', () => { expect(searchController.getRevealOrder()).toEqual(['talk', 'deck']) }) - it('keeps reveal positions across a refined query', async () => { + it('restarts the reveal order from priority on a new query', async () => { const first = mockProviders(['files', 'talk']) const searchController = new UnifiedSearchController() searchController.search('old', ['files', 'talk']) - // talk gets on screen first, so the session order is talk before files. + // talk got on screen first, so this query renders talk above files. first.talk.resolve(['Old talk']) await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) first.files.resolve(['Old files']) await vi.advanceTimersByTimeAsync(0) expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) - // Refining must not re-sort what is already on screen back to priority order. - // Both categories stay rendered throughout (stale-while-revalidate), so moving - // them would be a displacement with identical content. + // A new query hides everything: the results are about to be different, so there is + // nothing on screen to protect and the next paint starts from priority order again. const second = mockProviders(['files', 'talk']) searchController.search('new', ['files', 'talk']) - expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + expect(searchController.getRevealOrder()).toEqual([]) second.files.resolve(['New files']) second.talk.resolve(['New talk']) await vi.advanceTimersByTimeAsync(0) - expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) }) it('releases a slot when a category loses its results, and appends it again if it returns', async () => { @@ -360,17 +359,17 @@ describe('UnifiedSearchController', () => { await vi.advanceTimersByTimeAsync(0) expect(searchController.getRevealOrder()).toEqual(['talk']) - // It has results again on the next query, so it comes back as a fresh reveal: - // at the end, not back at its old priority slot. + // The next query is a clean slate, so it comes back in preferred order rather than + // staying demoted for the rest of the session. const third = mockProviders(['files', 'talk']) searchController.search('c', ['files', 'talk']) third.files.resolve(['Files c']) third.talk.resolve(['Talk c']) await vi.advanceTimersByTimeAsync(0) - expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) }) - it('re-appends a category that left the search entirely instead of reclaiming its old slot', async () => { + it('recovers preferred order after a provider filter round trip', async () => { const first = mockProviders(['files', 'talk']) const searchController = new UnifiedSearchController() @@ -380,24 +379,22 @@ describe('UnifiedSearchController', () => { await vi.advanceTimersByTimeAsync(0) expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) - // A provider filter narrows the search: files leaves the category list altogether, - // which is a different exit from losing its results (that one goes through - // syncRevealOrder; this one goes through the prune in search()). + // A provider filter narrows the search: files leaves the category list altogether. const second = mockProviders(['talk']) searchController.search('foo', ['talk']) second.talk.resolve(['Talk result']) await vi.advanceTimersByTimeAsync(0) expect(searchController.getRevealOrder()).toEqual(['talk']) - // The filter comes off. talk never left the screen, so files has to come back below - // it: reclaiming slot 0 would shove a rendered group down. + // The filter comes off. Each search stands on its own, so files is back on top + // instead of being stuck below talk until the popover closes. const third = mockProviders(['files', 'talk']) searchController.search('foo', ['files', 'talk']) third.files.resolve(['Files result']) third.talk.resolve(['Talk result']) await vi.advanceTimersByTimeAsync(0) - expect(searchController.getRevealOrder()).toEqual(['talk', 'files']) + expect(searchController.getRevealOrder()).toEqual(['files', 'talk']) }) it('never hands out a category the snapshot cannot index, part-way through a search', async () => { @@ -443,21 +440,20 @@ describe('UnifiedSearchController', () => { first.talk.resolve(['Talk result']) await vi.advanceTimersByTimeAsync(0) - // A narrower search replaces the first. The dropped categories must - // not linger in the snapshot, nor in the display order: the view maps the - // order straight onto the snapshot and would hit a missing category. + // A narrower search replaces the first. The dropped categories must not linger in + // the snapshot, and nothing from the previous query stays on screen. mockProviders(['files']) searchController.search('second', ['files']) expect(searchController.getSnapshot()).toEqual({ - files: { status: 'loading', entries: ['Files result'], cursor: null, hasMore: false, loadMoreFailed: false }, + files: loading, }) - expect(searchController.getRevealOrder()).toEqual(['files']) + expect(searchController.getRevealOrder()).toEqual([]) }) }) - describe('stale-while-revalidate', () => { - it('keeps the previous results visible while a refetch is in flight', async () => { + describe('changing the query', () => { + it('drops the previous results as soon as the query changes', async () => { const first = mockProviders(['files']) const searchController = new UnifiedSearchController() @@ -465,19 +461,18 @@ describe('UnifiedSearchController', () => { first.files.resolve(['Old result']) await vi.advanceTimersByTimeAsync(0) - // A refined query starts a new search. The prior entries must stay on screen - // (status loading, entries kept) so the panel does not flash empty mid-request. + // The new query is about to return different results, so keeping the old ones up + // would only let them shift under the user once the real ones land. Hide, then show. const second = mockProviders(['files']) searchController.search('new', ['files']) expect(searchController.getSnapshot().files).toEqual({ status: 'loading', - entries: ['Old result'], + entries: [], cursor: null, hasMore: false, loadMoreFailed: false, }) - // The fresh page replaces them once it lands. second.files.resolve(['New result']) await vi.advanceTimersByTimeAsync(0) expect(searchController.getSnapshot().files).toEqual({ @@ -489,7 +484,7 @@ describe('UnifiedSearchController', () => { }) }) - it('settles a refetched category that carried results straight to loaded, never blocked', async () => { + it('puts every category back through the ordered reveal on a new query', async () => { const first = mockProviders(['files', 'talk']) const searchController = new UnifiedSearchController() @@ -499,23 +494,15 @@ describe('UnifiedSearchController', () => { first.talk.resolve(['Old talk']) await vi.advanceTimersByTimeAsync(0) - // Refine. talk (lower priority) comes back before files this time. It already had - // results, so it must not drop into blocked (which excludes it from the rendered - // set and blinks it off screen); it stays visible by settling straight to loaded. + // Refine. talk comes back first this time. Nothing is on screen to protect any more, + // so it takes its turn in the queue again instead of skipping the reveal. const second = mockProviders(['files', 'talk']) searchController.search('new', ['files', 'talk']) second.talk.resolve(['New talk']) await vi.advanceTimersByTimeAsync(0) - expect(searchController.getSnapshot().talk.status).toBe('loaded') - // files is still fetching; its stale page stays up meanwhile. - expect(searchController.getSnapshot().files).toEqual({ - status: 'loading', - entries: ['Old files'], - cursor: null, - hasMore: false, - loadMoreFailed: false, - }) + expect(searchController.getSnapshot().talk.status).toBe('blocked') + expect(searchController.getRevealOrder()).toEqual([]) }) }) @@ -1070,10 +1057,8 @@ describe('UnifiedSearchController', () => { const searchController = new UnifiedSearchController() searchController.search('first', ['files', 'talk']) - // The first search spends its window on talk, then stands the timer down. talk - // comes back empty so it carries no stale results into the second search, which - // would otherwise settle it straight to loaded and never block it. - first.talk.resolve([]) + // The first search spends its window on talk, then stands the timer down. + first.talk.resolve(['First talk']) await vi.advanceTimersByTimeAsync(REVEAL_INTERVAL_MS) expect(searchController.getSnapshot().talk.status).toBe('loaded') expect(vi.getTimerCount()).toBe(0) From 588515689027aa728cab0156f4bab61a9c5acce9 Mon Sep 17 00:00:00 2001 From: Peter Ringelmann Date: Fri, 7 Aug 2026 14:19:39 +0200 Subject: [PATCH 3/4] fix(core): clear unified search results on the keystroke Signed-off-by: Peter Ringelmann --- .../UnifiedSearch/UnifiedSearchModal.vue | 26 +++-- .../components/UnifiedSearchModal.spec.ts | 103 +++++++++++++++--- 2 files changed, 104 insertions(+), 25 deletions(-) diff --git a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue index a53bd30259402..cd81cc70c6c92 100644 --- a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue +++ b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue @@ -769,9 +769,7 @@ export default defineComponent({ // when closed (e.g. the local search bar on deck), so a hidden modal must // not fire background searches. if (this.open) { - // Mark busy synchronously so the debounce window doesn't flash the empty state. - this.pendingSearch = true - this.debouncedFind(this.searchQuery) + this.scheduleSearch() } }, }, @@ -954,6 +952,18 @@ export default defineComponent({ this.$emit('update:open', false) }, + /** + * Blank the results, then queue the search. Every query and filter change comes through + * here. The results on screen answer the previous question, so holding them until the + * debounce fires only means they shift once the real ones land. + */ + scheduleSearch() { + this.reset() + // Mark busy synchronously so the debounce window doesn't flash the empty state. + this.pendingSearch = true + this.debouncedFind(this.searchQuery) + }, + find(query: string) { // The debounced search is running now; from here `searching` (or `!initialized`) drives busy. this.pendingSearch = false @@ -1053,7 +1063,7 @@ export default defineComponent({ this.filters[existingPersonFilter].name = person.displayName } - this.debouncedFind(this.searchQuery) + this.scheduleSearch() unifiedSearchLogger.debug('Person filter applied', { person }) }, @@ -1161,7 +1171,7 @@ export default defineComponent({ }) this.filters = this.syncProviderFilters(this.filters, this.filteredProviders) unifiedSearchLogger.debug('Search filters (newly added)', { filters: this.filters }) - this.debouncedFind(this.searchQuery) + this.scheduleSearch() }, removeFilter(filter) { @@ -1183,7 +1193,7 @@ export default defineComponent({ } } } - this.debouncedFind(this.searchQuery) + this.scheduleSearch() }, syncProviderFilters(firstArray, secondArray) { @@ -1219,7 +1229,7 @@ export default defineComponent({ this.filters.push(this.dateFilter) } - this.debouncedFind(this.searchQuery) + this.scheduleSearch() }, applyQuickDateRange(range) { @@ -1301,7 +1311,7 @@ export default defineComponent({ break } } - this.debouncedFind(this.searchQuery) + this.scheduleSearch() }, groupProvidersByApp(filters) { diff --git a/core/src/tests/components/UnifiedSearchModal.spec.ts b/core/src/tests/components/UnifiedSearchModal.spec.ts index 8c8524da16881..c584efad9a742 100644 --- a/core/src/tests/components/UnifiedSearchModal.spec.ts +++ b/core/src/tests/components/UnifiedSearchModal.spec.ts @@ -140,12 +140,13 @@ describe('UnifiedSearchModal controller wiring', () => { { id: 'talk', name: 'Talk', order: 1 }, { id: 'deck', name: 'Deck', order: 2 }, ] + wrapper.vm.searchQuery = 'query' + await wrapper.vm.$nextTick() searchStates.value = { files: loaded([{ resourceUrl: '/a' }]), talk: { status: 'blocked', entries: [{ resourceUrl: '/b' }], cursor: null, hasMore: false, loadMoreFailed: false }, deck: loaded([]), } - wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() // files: loaded + non-empty -> shown. talk: blocked -> withheld. deck: empty -> dropped. @@ -156,12 +157,13 @@ describe('UnifiedSearchModal controller wiring', () => { it('keeps a paging category on screen while its next page loads', async () => { const wrapper = factory() wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] + wrapper.vm.searchQuery = 'query' + await wrapper.vm.$nextTick() // loadMore keeps page 1 visible but flips the category to 'loading' for the // paging spinner. The group (and its rows) must not disappear during the refetch. searchStates.value = { files: { status: 'loading', entries: [{ resourceUrl: '/a' }], cursor: 'cursor-1', hasMore: true, loadMoreFailed: false }, } - wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() // The already-loaded row stays on screen while the next page loads. @@ -268,9 +270,10 @@ describe('UnifiedSearchModal controller wiring', () => { const wrapper = factory() wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] wrapper.vm.minSearchLength = 3 + wrapper.vm.searchQuery = 'ab' + await wrapper.vm.$nextTick() // A search started for a longer query is still loading when the query shrinks. searchStates.value = { files: { status: 'loading', entries: [], cursor: null, hasMore: false, loadMoreFailed: false } } - wrapper.vm.searchQuery = 'ab' await wrapper.vm.$nextTick() expect(wrapper.vm.searching).toBe(true) @@ -303,14 +306,17 @@ describe('UnifiedSearchModal reset on close', () => { it('clears the controller results when the modal closes, so nothing stale renders on the next open', async () => { const wrapper = factory() // starts open wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] + wrapper.vm.searchQuery = 'query' + await wrapper.vm.$nextTick() // A previous search left results in the still-mounted controller. searchStates.value = { files: loaded([{ resourceUrl: '/a' }]) } - wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() expect(wrapper.vm.results).toHaveLength(1) // Closing must reset the controller (the modal never unmounts, so dispose never // runs). The next open then starts empty instead of flashing the old results. + // Cleared first: query changes reset too, so only the close counts here. + resetSpy.mockClear() await wrapper.setProps({ open: false }) expect(resetSpy).toHaveBeenCalledOnce() @@ -503,11 +509,14 @@ describe('UnifiedSearchModal keyboard selection', () => { /** * Seed the modal with one provider and the given rows, then let it settle. */ + // Query first, then results: a query change blanks the panel, so seeding before it would + // just be wiped. This is the real order of events too. async function withRows(wrapper: ReturnType, rows: unknown[]) { wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] - searchStates.value = { files: loaded(rows) } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { files: loaded(rows) } + await wrapper.vm.$nextTick() } it('has no active row before any results', () => { @@ -557,11 +566,12 @@ describe('UnifiedSearchModal keyboard selection', () => { { id: 'files', name: 'Files', order: 0 }, { id: 'talk', name: 'Talk', order: 1 }, ] + wrapper.vm.searchQuery = 'query' + await wrapper.vm.$nextTick() searchStates.value = { files: loaded([{ resourceUrl: '/a' }]), talk: loaded([{ resourceUrl: '/b' }]), } - wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() // From the auto-selected first row (files-0), the next move crosses into the next group. @@ -615,9 +625,10 @@ describe('UnifiedSearchModal keyboard selection', () => { { id: 'files', name: 'Files', order: 0 }, { id: 'talk', name: 'Talk', order: 1 }, ] - searchStates.value = { files: loaded([{ resourceUrl: '/a' }, { resourceUrl: '/b' }]) } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { files: loaded([{ resourceUrl: '/a' }, { resourceUrl: '/b' }]) } + await wrapper.vm.$nextTick() wrapper.vm.moveActive('next') // 0 → 1 expect(wrapper.vm.activeDescendantId).toBe('unified-search-result-files-1') @@ -679,16 +690,17 @@ describe('UnifiedSearchModal keyboard selection', () => { { id: 'files', name: 'Files', order: 0, filters: { since: true, until: true } }, { id: 'talk', name: 'Talk', order: 1 }, ] - searchStates.value = { - files: loaded([{ resourceUrl: '/f1' }]), - talk: loaded([{ resourceUrl: '/t1' }]), - } // An active date filter splits the incompatible provider (talk) into the // partial-matches section, exercising the filtered-then-unfiltered concat. wrapper.vm.dateFilter = { id: 'date', type: 'date', text: '', startFrom: new Date('2026-01-01'), endAt: new Date('2026-02-01') } wrapper.vm.filters = [wrapper.vm.dateFilter] wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { + files: loaded([{ resourceUrl: '/f1' }]), + talk: loaded([{ resourceUrl: '/t1' }]), + } + await wrapper.vm.$nextTick() expect(wrapper.vm.navigableRows.map((row: { id: string }) => row.id)).toEqual([ 'unified-search-result-files-0', @@ -756,9 +768,10 @@ describe('UnifiedSearchModal live region', () => { const wrapper = factory() wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] wrapper.vm.initialized = true - searchStates.value = { files: { status: 'loading', entries: [], cursor: null, hasMore: false, loadMoreFailed: false } } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { files: { status: 'loading', entries: [], cursor: null, hasMore: false, loadMoreFailed: false } } + await wrapper.vm.$nextTick() expect(wrapper.vm.liveMessage).toContain('Searching') }) @@ -864,9 +877,10 @@ describe('UnifiedSearchModal result presentation', () => { async function withGroup(wrapper: ReturnType, id: string, entries: unknown[], hasMore = false) { wrapper.vm.providers = [{ id, name: 'Files', order: 0 }] wrapper.vm.initialized = true - searchStates.value = { [id]: loaded(entries, hasMore) } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { [id]: loaded(entries, hasMore) } + await wrapper.vm.$nextTick() } const rows = (n: number) => Array.from({ length: n }, (_, i) => ({ resourceUrl: `/r${i}` })) @@ -1111,9 +1125,10 @@ describe('UnifiedSearchModal loading state', () => { const wrapper = factory() wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] wrapper.vm.initialized = true - searchStates.value = { files: loadingState } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { files: loadingState } + await wrapper.vm.$nextTick() // The debounce fires and dispatches the real search, clearing the pending flag; from // here the controller's loading state alone drives busy. wrapper.vm.find('query') @@ -1161,9 +1176,10 @@ describe('UnifiedSearchModal loading state', () => { const wrapper = factory() wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] wrapper.vm.initialized = true - searchStates.value = { files: loadingState } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { files: loadingState } + await wrapper.vm.$nextTick() // The debounce fires and dispatches; the pending flag clears and the loading category // alone keeps it busy. wrapper.vm.find('query') @@ -1180,9 +1196,10 @@ describe('UnifiedSearchModal loading state', () => { const wrapper = factory() wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] wrapper.vm.initialized = true - searchStates.value = { files: loadingState } wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() + searchStates.value = { files: loadingState } + await wrapper.vm.$nextTick() expect(wrapper.findComponent({ name: 'NcLoadingIcon' }).exists()).toBe(true) }) @@ -1201,13 +1218,14 @@ describe('UnifiedSearchModal reveal order', () => { async function withRevealOrder(order: string[]) { const wrapper = factory() wrapper.vm.providers = providers + wrapper.vm.searchQuery = 'query' + await wrapper.vm.$nextTick() searchStates.value = { files: loaded([{ resourceUrl: '/files' }]), talk: loaded([{ resourceUrl: '/talk' }]), deck: loaded([{ resourceUrl: '/deck' }]), } revealOrderOverride.value = order - wrapper.vm.searchQuery = 'query' await wrapper.vm.$nextTick() return wrapper } @@ -1232,3 +1250,54 @@ describe('UnifiedSearchModal reveal order', () => { expect(titles).toEqual(['Files', 'Talk']) }) }) + +describe('UnifiedSearchModal clearing on change', () => { + /** + * Mount with one settled result on screen, ready for a change to blank it. + */ + async function withResultsOnScreen() { + const wrapper = factory() + wrapper.vm.providers = [{ id: 'files', name: 'Files', order: 0 }] + wrapper.vm.initialized = true + wrapper.vm.searchQuery = 'query' + await flushPromises() + searchStates.value = { files: loaded([{ resourceUrl: '/a' }]) } + await flushPromises() + expect(wrapper.findAllComponents({ name: 'SearchResult' })).toHaveLength(1) + resetSpy.mockClear() + return wrapper + } + + it('hides the previous results on the keystroke, not when the debounce fires', async () => { + const wrapper = await withResultsOnScreen() + + // Waiting for the debounce would leave the old query's results up for another 300ms, + // and they would then shift as the new ones land. + wrapper.vm.searchQuery = 'querying' + await flushPromises() + + expect(resetSpy).toHaveBeenCalled() + expect(wrapper.findAllComponents({ name: 'SearchResult' })).toHaveLength(0) + }) + + it('hides the previous results when a filter changes', async () => { + const wrapper = await withResultsOnScreen() + + wrapper.vm.updateDateFilter() + await flushPromises() + + expect(resetSpy).toHaveBeenCalled() + expect(wrapper.findAllComponents({ name: 'SearchResult' })).toHaveLength(0) + }) + + it('does not flash the empty state while the debounce is pending', async () => { + const wrapper = await withResultsOnScreen() + + wrapper.vm.searchQuery = 'querying' + await flushPromises() + + // Blank because a search is coming, not because the search found nothing. + expect(wrapper.vm.showEmptyContentInfo).toBe(false) + expect(wrapper.vm.isBusy).toBe(true) + }) +}) From 3339aa44db33d5064bdcb8251a378f7fdf05ddff Mon Sep 17 00:00:00 2001 From: Peter Ringelmann Date: Fri, 7 Aug 2026 14:48:59 +0200 Subject: [PATCH 4/4] chore: rebuild assets Signed-off-by: Peter Ringelmann --- dist/core-unified-search.js | 4 ++-- dist/core-unified-search.js.map | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/core-unified-search.js b/dist/core-unified-search.js index 86c7735dff8cb..68279d499b7fd 100644 --- a/dist/core-unified-search.js +++ b/dist/core-unified-search.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var t,e={6830(t,e,n){var i=n(21777),a=n(53334),r=n(35947),s=n(10810),o=n(85471),l=n(61338),c=n(53429),d=n(97786),u=n(46855),A=n(74095),h=n(39689),p=n(52372),f=n(88289),m=n(66001);const C={name:"FilterVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var v=n(14486);const g=(0,v.A)(C,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon filter-variant-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,b={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},y=(0,v.A)(b,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon magnify-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,_=(0,o.pM)({__name:"UnifiedSearchInput",props:{expanded:{type:Boolean},activeDescendantId:null,query:null,loading:{type:Boolean},filtersRevealed:{type:Boolean}},setup(t,{expose:e,emit:n}){const i=t,r=(0,c.F)(),s=(0,a.t)("core","Apps, files, messages, and more"),l={ArrowDown:"next",ArrowUp:"prev"},d=(0,o.KR)(),u=(0,o.KR)(),C=(0,o.KR)(!1),v=(0,o.EW)(()=>C.value||i.query.length>0||Boolean(i.expanded)),b=(0,o.EW)(()=>C.value&&0===i.query.length&&!i.filtersRevealed);function _(){u.value?.focus()}return e({focus:_}),{__sfc:!0,props:i,emit:n,isSmallMobile:r,placeholderText:s,resultsContainerId:"unified-search-results",directionByKey:l,fieldRef:d,inputRef:u,isFocused:C,isActive:v,showFunnel:b,onFocusOut:function(t){d.value?.contains(t.relatedTarget)||(C.value=!1)},onMouseDown:function(t){t.target!==u.value&&t.preventDefault()},onInput:function(t){n("update:query",t.target.value)},openFilters:function(){u.value?.focus(),n("open-filters")},clearOrClose:function(){if(i.query.length>0)return n("update:query",""),void u.value?.focus();const t=document.activeElement;t?.blur(),n("close")},onKeyDown:function(t){if(t.isComposing)return;if("Escape"===t.key&&!i.expanded)return void u.value?.blur();if(!i.expanded)return;const e=l[t.key];e?(t.preventDefault(),n("navigate",e)):"Enter"===t.key&&(t.preventDefault(),n("activate"))},focus:_,t:a.t,NcButton:A.A,NcHeaderButton:h.N,NcKbd:p.N,NcLoadingIcon:f.A,IconClose:m.A,IconFilterVariant:g,IconMagnify:y}}});var x=n(85072),w=n.n(x),k=n(97825),S=n.n(k),B=n(77659),D=n.n(B),I=n(55056),F=n.n(I),E=n(10540),M=n.n(E),T=n(41113),z=n.n(T),R=n(14600),q={};q.styleTagTransform=z(),q.setAttributes=F(),q.insert=D().bind(null,"head"),q.domAPI=S(),q.insertStyleElement=M(),w()(R.A,q),R.A&&R.A.locals&&R.A.locals;const N=(0,v.A)(_,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("search",{staticClass:"unified-search-input",class:{"unified-search-input--mobile":n.isSmallMobile}},[n.isSmallMobile?e(n.NcHeaderButton,{attrs:{id:"unified-search-trigger",ariaLabel:n.placeholderText,"aria-haspopup":"dialog","aria-expanded":t.expanded?"true":"false"},on:{click:function(e){return t.$emit("click",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.IconMagnify,{attrs:{size:20}})]},proxy:!0}],null,!1,1795316816)}):e("div",{ref:"fieldRef",staticClass:"unified-search-input__field",class:{"unified-search-input__field--active":n.isActive},on:{focusin:function(t){n.isFocused=!0},focusout:n.onFocusOut,mousedown:n.onMouseDown}},[e("div",{staticClass:"unified-search-input__resting",class:{"unified-search-input__resting--filled":t.query.length>0},attrs:{"aria-hidden":"true"}},[e(n.IconMagnify,{attrs:{size:20}}),t._v(" "),e("span",{staticClass:"unified-search-input__label"},[t._v(t._s(n.placeholderText))])],1),t._v(" "),e("input",{ref:"inputRef",staticClass:"unified-search-input__input",attrs:{type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":t.expanded?"true":"false","aria-controls":t.expanded?n.resultsContainerId:void 0,"aria-activedescendant":t.expanded&&t.activeDescendantId||void 0,"aria-label":n.placeholderText},domProps:{value:t.query},on:{input:n.onInput,keydown:n.onKeyDown}}),t._v(" "),n.showFunnel?e(n.NcButton,{staticClass:"unified-search-input__filter",attrs:{variant:"tertiary-no-background","aria-label":n.t("core","Filters")},on:{click:n.openFilters},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.IconFilterVariant,{attrs:{size:20}})]},proxy:!0}],null,!1,2820714996)}):t._e(),t._v(" "),t.loading?e(n.NcLoadingIcon,{staticClass:"unified-search-input__loading",attrs:{size:20}}):t._e(),t._v(" "),n.isActive?e(n.NcButton,{staticClass:"unified-search-input__clear",attrs:{variant:"tertiary-no-background","aria-label":t.query.length>0?n.t("core","Clear search"):n.t("core","Close search")},on:{click:n.clearOrClose},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.IconClose,{attrs:{size:20}})]},proxy:!0}],null,!1,4099733813)}):t._e(),t._v(" "),n.isActive?t._e():e("span",{staticClass:"unified-search-input__shortcut",attrs:{"aria-hidden":"true"}},[e(n.NcKbd,{attrs:{symbol:"Control"}}),t._v(" "),e(n.NcKbd,{attrs:{symbol:"K"}})],1)],1)],1)},[],!1,null,"59e94aec",null).exports;var U=n(9165),L=n(6695),O=n(16879);const P=(0,o.pM)({__name:"UnifiedSearchLocalSearchBar",props:{query:null,open:{type:Boolean}},emits:["update:open","update:query","global-search"],setup(t,{emit:e}){const n=t;(0,o.$9)((t,e)=>({dfb017de:e.searchGlobalButtonCSSWidth}));const i=(0,o.KR)();(0,o.nT)(()=>{n.open&&i.value&&i.value.focus()});const r=(0,c.al)(),s=(0,o.KR)(),{width:l}=(0,d.Lhy)(s),u=(0,o.EW)(()=>l.value?`${l.value}px`:"var(--default-clickable-area)");return{__sfc:!0,props:n,emit:e,searchInput:i,isMobile:r,searchGlobalButton:s,searchGlobalButtonWidth:l,searchGlobalButtonCSSWidth:u,clearAndCloseSearch:function(){e("update:query",""),e("update:open",!1)},mdiClose:U.hyP,mdiCloudSearchOutline:U.ydM,t:a.Tl,NcButton:A.A,NcIconSvgWrapper:L.A,NcInputField:O.A}}});var G=n(89226),H={};H.styleTagTransform=z(),H.setAttributes=F(),H.insert=D().bind(null,"head"),H.domAPI=S(),H.insertStyleElement=M(),w()(G.A,H),G.A&&G.A.locals&&G.A.locals;const $=(0,v.A)(P,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("Transition",[t.open?e("div",{staticClass:"local-unified-search animated-width",class:{"local-unified-search--open":t.open}},[e(n.NcInputField,{ref:"searchInput",staticClass:"local-unified-search__input animated-width",attrs:{"aria-label":n.t("core","Search in current app"),placeholder:n.t("core","Search in current app"),"show-trailing-button":"","trailing-button-label":n.t("core","Clear search"),"model-value":t.query},on:{"update:value":function(e){return t.$emit("update:query",e)},"trailing-button-click":n.clearAndCloseSearch},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiClose}})]},proxy:!0}],null,!1,3585538455)}),t._v(" "),e(n.NcButton,{ref:"searchGlobalButton",staticClass:"local-unified-search__global-search",attrs:{"aria-label":n.t("core","Search everywhere"),title:n.t("core","Search everywhere"),variant:"tertiary-no-background"},on:{click:function(e){return t.$emit("global-search")}},scopedSlots:t._u([n.isMobile?null:{key:"default",fn:function(){return[t._v("\n\t\t\t\t"+t._s(n.t("core","Search everywhere"))+"\n\t\t\t")]},proxy:!0},{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiCloudSearchOutline}})]},proxy:!0}],null,!0)})],1):t._e()])},[],!1,null,"2b577e50",null).exports;var V=n(81222),K=n(52697),Y=n(57505),Q=n(24764),j=n(41944),W=n(48943),Z=n(82182);const J={name:"AccountMultipleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},X=(0,v.A)(J,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon account-multiple-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,tt={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=(0,v.A)(tt,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon arrow-left-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var nt=n(33691);const it={name:"CalendarBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},at=(0,v.A)(it,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-blank-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var rt=n(26690);const st={name:"FilterIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ot=(0,v.A)(st,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon filter-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,lt={name:"ShapeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ct=(0,v.A)(lt,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon shape-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M11,13.5V21.5H3V13.5H11M9,15.5H5V19.5H9V15.5M12,2L17.5,11H6.5L12,2M12,5.86L10.08,9H13.92L12,5.86M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13M17.5,15A2.5,2.5 0 0,0 15,17.5A2.5,2.5 0 0,0 17.5,20A2.5,2.5 0 0,0 20,17.5A2.5,2.5 0 0,0 17.5,15Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var dt=n(48198),ut=n(83947);const At={name:"CalendarRangeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ht=(0,v.A)(At,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-range-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,pt={name:"CustomDateRangeModal",components:{NcButton:A.A,NcModal:ut.A,CalendarRangeIcon:ht,NcDateTimePicker:dt.A},props:{isOpen:{type:Boolean,required:!0}},data:()=>({dateFilter:{startFrom:null,endAt:null}}),computed:{isModalOpen:{get(){return this.isOpen},set(t){this.$emit("update:is-open",t)}}},methods:{closeModal(){this.isModalOpen=!1},applyCustomRange(){this.$emit("set:custom-date-range",this.dateFilter),this.closeModal()}}};var ft=n(12667),mt={};mt.styleTagTransform=z(),mt.setAttributes=F(),mt.insert=D().bind(null,"head"),mt.domAPI=S(),mt.insertStyleElement=M(),w()(ft.A,mt),ft.A&&ft.A.locals&&ft.A.locals;const Ct=(0,v.A)(pt,function(){var t=this,e=t._self._c;return t.isModalOpen?e("NcModal",{attrs:{id:"unified-search",name:t.t("core","Custom date range"),show:t.isModalOpen,size:"small","clear-view-delay":0,title:t.t("core","Custom date range")},on:{"update:show":function(e){t.isModalOpen=e},close:t.closeModal}},[e("div",{staticClass:"unified-search-custom-date-modal"},[e("h1",[t._v(t._s(t.t("core","Custom date range")))]),t._v(" "),e("div",{staticClass:"unified-search-custom-date-modal__pickers"},[e("NcDateTimePicker",{attrs:{id:"unifiedsearch-custom-date-range-start",label:t.t("core","Pick start date"),type:"date"},model:{value:t.dateFilter.startFrom,callback:function(e){t.$set(t.dateFilter,"startFrom",e)},expression:"dateFilter.startFrom"}}),t._v(" "),e("NcDateTimePicker",{attrs:{id:"unifiedsearch-custom-date-range-end",label:t.t("core","Pick end date"),type:"date"},model:{value:t.dateFilter.endAt,callback:function(e){t.$set(t.dateFilter,"endAt",e)},expression:"dateFilter.endAt"}})],1),t._v(" "),e("div",{staticClass:"unified-search-custom-date-modal__footer"},[e("NcButton",{on:{click:t.applyCustomRange},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CalendarRangeIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,3084610734)},[t._v("\n\t\t\t\t"+t._s(t.t("core","Search in date range"))+"\n\t\t\t\t")])],1)])]):t._e()},[],!1,null,"2907014b",null).exports;var vt=n(54562);const gt={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bt=(0,v.A)(gt,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon alert-circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,yt={name:"SearchableList",components:{IconMagnify:y,IconAlertCircleOutline:bt,NcAvatar:j.A,NcButton:A.A,NcEmptyContent:W.A,NcPopover:vt.A,NcTextField:Z.A},props:{labelText:{type:String,default:"this is a label"},searchList:{type:Array,required:!0},emptyContentText:{type:String,required:!0}},data:()=>({opened:!1,error:!1,searchTerm:""}),computed:{filteredList(){return this.searchList.filter(t=>!this.searchTerm.toLowerCase().length||["displayName"].some(e=>t[e].toLowerCase().includes(this.searchTerm.toLowerCase())))}},methods:{clearSearch(){this.searchTerm=""},setOpened(t){this.opened=t},itemSelected(t){this.$emit("item-selected",t),this.clearSearch(),this.setOpened(!1)},searchTermChanged(t){this.$emit("search-term-change",t)}}};var _t=n(60645),xt={};xt.styleTagTransform=z(),xt.setAttributes=F(),xt.insert=D().bind(null,"head"),xt.domAPI=S(),xt.insertStyleElement=M(),w()(_t.A,xt),_t.A&&_t.A.locals&&_t.A.locals;const wt=(0,v.A)(yt,function(){var t=this,e=t._self._c;return e("NcPopover",{attrs:{shown:t.opened},on:{show:function(e){return t.setOpened(!0)},hide:function(e){return t.setOpened(!1)}},scopedSlots:t._u([{key:"trigger",fn:function(){return[t._t("trigger")]},proxy:!0}],null,!0)},[t._v(" "),e("div",{staticClass:"searchable-list__wrapper"},[e("NcTextField",{attrs:{label:t.labelText,"trailing-button-icon":"close","show-trailing-button":""!==t.searchTerm},on:{"update:value":t.searchTermChanged,"trailing-button-click":t.clearSearch},model:{value:t.searchTerm,callback:function(e){t.searchTerm=e},expression:"searchTerm"}},[e("IconMagnify",{attrs:{size:20}})],1),t._v(" "),t.filteredList.length>0?e("ul",{staticClass:"searchable-list__list"},t._l(t.filteredList,function(n){return e("li",{key:n.id,attrs:{title:n.displayName,role:"button"}},[e("NcButton",{attrs:{alignment:"start",variant:"tertiary",wide:!0},on:{click:function(e){return t.itemSelected(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[n.isUser?e("NcAvatar",{attrs:{user:n.user,"hide-status":""}}):e("NcAvatar",{attrs:{"is-no-user":!0,"display-name":n.displayName,"hide-status":""}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t"+t._s(n.displayName)+"\n\t\t\t\t")])],1)}),0):e("div",{staticClass:"searchable-list__empty-content"},[e("NcEmptyContent",{attrs:{name:t.emptyContentText},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAlertCircleOutline")]},proxy:!0}])})],1)],1)])},[],!1,null,"66bd6570",null).exports,kt={name:"SearchFilterChip",components:{CloseIcon:m.A},props:{text:{type:String,required:!0},pretext:{type:String,required:!0}},emits:["delete"],computed:{removeLabel(){return(0,a.t)("core","Remove filter: {name}",{name:this.text})}},methods:{deleteChip(){this.$emit("delete")}}};var St=n(17830),Bt={};Bt.styleTagTransform=z(),Bt.setAttributes=F(),Bt.insert=D().bind(null,"head"),Bt.domAPI=S(),Bt.insertStyleElement=M(),w()(St.A,Bt),St.A&&St.A.locals&&St.A.locals;const Dt=(0,v.A)(kt,function(){var t=this,e=t._self._c;return e("div",{staticClass:"chip"},[e("span",{staticClass:"icon"},[t._t("icon"),t._v(" "),t.pretext.length?e("span",[t._v(" "+t._s(t.pretext)+" : ")]):t._e()],2),t._v(" "),e("span",{staticClass:"text"},[t._v(t._s(t.text))]),t._v(" "),e("button",{staticClass:"close-button",attrs:{type:"button","aria-label":t.removeLabel},on:{click:t.deleteChip}},[e("CloseIcon",{attrs:{size:18}})],1)])},[],!1,null,"5a4f6249",null).exports;var It=n(1522);const Ft=(0,o.pM)({__name:"AppIcon",props:{icon:null,outlined:{type:Boolean,default:!1}},setup(t){const e=t,n=(0,o.EW)(()=>({"--app-icon-url":`url("${e.icon.replace(/["\\]/g,"\\$&")}")`}));return{__sfc:!0,props:e,iconStyle:n}}});var Et=n(53628),Mt={};Mt.styleTagTransform=z(),Mt.setAttributes=F(),Mt.insert=D().bind(null,"head"),Mt.domAPI=S(),Mt.insertStyleElement=M(),w()(Et.A,Mt),Et.A&&Et.A.locals&&Et.A.locals;const Tt={name:"SearchResult",components:{AppIcon:(0,v.A)(Ft,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("span",{staticClass:"app-icon",class:{"app-icon--outlined":t.outlined}},[t.icon?e("span",{staticClass:"app-icon__img",style:n.iconStyle,attrs:{"aria-hidden":"true"}}):t._e(),t._v(" "),t._t("default")],2)},[],!1,null,"42bb03fc",null).exports,NcListItem:It.A},props:{thumbnailUrl:{type:String,default:null},title:{type:String,required:!0},subline:{type:String,default:null},resourceUrl:{type:String,default:null},icon:{type:String,default:""},rounded:{type:Boolean,default:!1},query:{type:String,default:""},elementId:{type:String,default:void 0},active:{type:Boolean,default:!1}},data:()=>({thumbnailHasError:!1}),computed:{hasThumbnail(){return this.isValidIconOrPreviewUrl(this.thumbnailUrl)&&!this.thumbnailHasError},iconIsUrl(){return this.isValidIconOrPreviewUrl(this.icon)},isAppIcon(){return this.rounded&&this.iconIsUrl&&!this.hasThumbnail}},watch:{thumbnailUrl(){this.thumbnailHasError=!1}},methods:{isValidIconOrPreviewUrl:t=>/^https?:\/\//.test(t)||t.startsWith("/"),thumbnailErrorHandler(){this.thumbnailHasError=!0}}};var zt=n(65719),Rt={};Rt.styleTagTransform=z(),Rt.setAttributes=F(),Rt.insert=D().bind(null,"head"),Rt.domAPI=S(),Rt.insertStyleElement=M(),w()(zt.A,Rt),zt.A&&zt.A.locals&&zt.A.locals;const qt=(0,v.A)(Tt,function(){var t=this,e=t._self._c;return e("NcListItem",{staticClass:"result-item",attrs:{id:t.elementId,name:t.title,bold:!1,active:t.active,href:t.resourceUrl,target:"_self"},scopedSlots:t._u([{key:"icon",fn:function(){return[t.isAppIcon?e("AppIcon",{staticClass:"result-item__app-icon",attrs:{icon:t.icon}}):e("div",{staticClass:"result-item__icon",class:{"result-item__icon--rounded":t.rounded,"result-item__icon--with-thumbnail":t.hasThumbnail,[t.icon]:!t.iconIsUrl&&!t.hasThumbnail},attrs:{"aria-hidden":"true"}},[t.hasThumbnail?e("img",{attrs:{src:t.thumbnailUrl},on:{error:t.thumbnailErrorHandler}}):t.iconIsUrl?e("img",{staticClass:"result-item__icon-img",attrs:{src:t.icon,alt:"","aria-hidden":"true"}}):t._e()])]},proxy:!0},{key:"subname",fn:function(){return[t._v("\n\t\t"+t._s(t.subline)+"\n\t")]},proxy:!0}])})},[],!1,null,"516c3939",null).exports;var Nt=n(44368),Ut=n(63814);const Lt=null===(Ot=(0,i.HW)())?(0,r.YK)().setApp("core").build():(0,r.YK)().setApp("core").setUid(Ot.uid).build();var Ot;const Pt=(0,r.YK)().setApp("unified-search").detectUser().build();async function Gt(){try{const{data:t}=await Nt.Ay.get((0,Ut.KT)("search/providers"),{params:{from:window.location.pathname.replace("/index.php","")+window.location.search}});if("ocs"in t&&"data"in t.ocs&&Array.isArray(t.ocs.data)&&t.ocs.data.length>0)return t.ocs.data}catch(t){Lt.error(t)}return[]}function Ht({type:t,query:e,cursor:n,since:i,until:a,limit:r,person:s,extraQueries:o={}}){const l=Nt.Ay.CancelToken.source();return{request:async()=>Nt.Ay.get((0,Ut.KT)("search/providers/{type}/search",{type:t}),{cancelToken:l.token,params:{term:e,cursor:n,since:i,until:a,limit:r,person:s,from:window.location.pathname.replace("/index.php","")+window.location.search,...o}}),cancel:l.cancel}}async function $t({searchTerm:t}){const{data:{contacts:e}}=await Nt.Ay.post((0,Ut.Jv)("/contactsmenu/contacts"),{filter:t});if(!t){let t=(0,i.HW)();return t={id:t.uid,fullName:t.displayName,emailAddresses:[]},e.unshift(t),e}return e}function Vt(t,e,n){return(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class Kt{constructor(t){Vt(this,"onChange",void 0),Vt(this,"query",""),Vt(this,"params",{}),Vt(this,"searchStates",{}),Vt(this,"searchGeneration",0),Vt(this,"revealTimer",null),Vt(this,"pendingCancels",[]),this.onChange=t}async search(t,e,n){this.cancelPendingRequests();const i=this.searchStates;this.searchStates={},this.searchGeneration++;const a=this.searchGeneration;this.query=t,this.params=n||{},this.startRevealTimer(),await Promise.allSettled(e.map(t=>{const n=i[t],r=!n||"loaded"!==n.status&&"loading"!==n.status?[]:n.entries;return this.searchCategory(t,a,e,r)}))}async loadMore(t){const e=this.searchGeneration,n={...this.searchStates[t]};if(!n.hasMore||"loaded"!==n.status)return;this.patchStates({[t]:{status:"loading",loadMoreFailed:!1}});const{request:i,cancel:a}=Ht({type:t,query:this.query,cursor:n.cursor,limit:10,...this.params[t]});this.pendingCancels.push(a);try{const a=await i();if(this.searchGeneration!==e)return;const{entries:r,cursor:s,isPaginated:o}=a.data.ocs.data,l=0===r.length;this.patchStates({[t]:{entries:[...n.entries,...r],cursor:s,hasMore:!l&&this.hasMorePages(o,s),status:"loaded"}})}catch{if(this.searchGeneration!==e)return;this.patchStates({[t]:{status:"loaded",loadMoreFailed:!0}})}}getSnapshot(){return{...this.searchStates}}dispose(){this.stopBackgroundWork()}reset(){this.stopBackgroundWork(),this.searchStates={},this.query="",this.params={},this.searchGeneration++,this.onChange?.(this.getSnapshot())}async searchCategory(t,e,n,i=[]){this.patchStates({[t]:{status:"loading",entries:i,cursor:null,hasMore:!1,loadMoreFailed:!1}});const{request:a,cancel:r}=Ht({type:t,query:this.query,cursor:null,limit:10,...this.params[t]});this.pendingCancels.push(r);try{const r=await a();if(this.searchGeneration!==e)return;const{entries:s,cursor:o,isPaginated:l}=r.data.ocs.data;this.patchStates({[t]:{status:0===i.length&&this.shouldBlockCategory(t,n)?"blocked":"loaded",entries:s,cursor:o,hasMore:this.hasMorePages(l,o),loadMoreFailed:!1}})}catch{if(this.searchGeneration!==e)return;this.patchStates({[t]:{status:"failed",entries:[],cursor:null,hasMore:!1,loadMoreFailed:!1}})}this.reconcileCategoryStatuses(n)}reconcileCategoryStatuses(t){t.forEach(e=>{"blocked"===this.searchStates[e].status&&(this.shouldBlockCategory(e,t)||this.patchStates({[e]:{status:"loaded"}}))})}startRevealTimer(){this.stopRevealTimer(),this.revealTimer=setTimeout(()=>{const t=Object.keys(this.searchStates),e=t.some(t=>["loading","blocked"].includes(this.searchStates[t].status));this.unblockAllCategories(t),e&&this.startRevealTimer()},1500)}stopRevealTimer(){this.revealTimer&&(clearTimeout(this.revealTimer),this.revealTimer=null)}cancelPendingRequests(){this.pendingCancels.forEach(t=>t()),this.pendingCancels=[]}stopBackgroundWork(){this.cancelPendingRequests(),this.stopRevealTimer()}unblockAllCategories(t){t.forEach(t=>{"blocked"===this.searchStates[t].status&&this.patchStates({[t]:{status:"loaded"}})})}hasMorePages(t,e){return t&&null!==e}shouldBlockCategory(t,e){return!!this.searchStates[t]&&e.slice(0,e.indexOf(t)).some(t=>{const e=this.searchStates[t];return e&&["loading","blocked"].includes(e.status)})}patchStates(t){Object.keys(t).forEach(e=>{const n={...this.searchStates[e],...t[e]};this.searchStates[e]=n}),this.onChange?.(this.getSnapshot())}}const Yt=(0,s.nY)("search",{state:()=>({externalFilters:[]}),actions:{registerExternalFilter({id:t,appId:e,searchFrom:n,label:i,callback:a,icon:r}){this.externalFilters.push({id:t,appId:e,searchFrom:n,name:i,callback:a,icon:r,isPluginFilter:!0})}}}),Qt=(0,o.pM)({name:"UnifiedSearchModal",components:{IconAccountMultipleOutline:X,IconArrowLeft:et,IconArrowRight:nt.A,IconCalendarBlankOutline:at,IconClose:m.A,IconDotsHorizontal:rt.A,IconFilter:ot,IconMagnify:y,IconShapeOutline:ct,CustomDateRangeModal:Ct,FilterChip:Dt,NcActions:Q.A,NcActionButton:Y.A,NcAvatar:j.A,NcButton:A.A,NcEmptyContent:W.A,NcLoadingIcon:f.A,NcTextField:Z.A,SearchableList:wt,SearchResult:qt},props:{open:{type:Boolean,required:!0},query:{type:String,default:""},localSearch:{type:Boolean,default:!1},filtersRevealed:{type:Boolean,default:!1}},emits:["update:open","update:query","update:activeDescendant","update:loading"],setup(){const t=(0,d.ZDG)(),e=Yt(),n=(0,c.F)(),{searchStates:i,search:r,loadMore:s,reset:l}=function(){const t=(0,o.IJ)({}),e=new Kt(e=>{t.value=e});return(0,o.hi)(()=>{e.dispose()}),{searchStates:t,search:e.search.bind(e),loadMore:e.loadMore.bind(e),reset:e.reset.bind(e)}}();return{t:a.t,searchStates:i,search:r,loadMore:s,reset:l,currentLocation:t,externalFilters:e.externalFilters,isSmallMobile:n}},data:()=>({providers:[],providerActionMenuIsOpen:!1,dateActionMenuIsOpen:!1,dateFilter:{id:"date",type:"date",text:"",startFrom:null,endAt:null},personFilter:{id:"person",type:"person",name:""},filteredProviders:[],searchQuery:"",placessearchTerm:"",dateTimeFilter:null,filters:[],contacts:[],showDateRangeModal:!1,initialized:!1,pendingSearch:!1,searchExternalResources:!1,detailCategory:null,activeIndex:-1,minSearchLength:(0,V.C)("unified-search","min-search-length",1),focusTrap:null}),computed:{isEmptySearch(){return 0===this.searchQuery.length},providerFilterActive(){return this.filters.some(t=>"date"!==t.type&&"person"!==t.type)},dateFilterActive(){return this.filters.some(t=>"date"===t.type)},personFilterActive(){return this.filters.some(t=>"person"===t.type)},hasAnyActiveFilter(){return this.filters.length>0},showFilterRow(){return!this.detailCategory&&(this.isSmallMobile||this.filtersRevealed||this.searchQuery.length>0||this.hasAnyActiveFilter)},showHeader(){return this.isSmallMobile||this.showFilterRow},searching(){return Object.values(this.searchStates).some(t=>"loading"===t.status)},isBusy(){return!(!this.open||this.isEmptySearch||this.isSearchQueryTooShort)&&(this.searching||this.pendingSearch||!this.initialized)},hasNoResults(){return!this.isEmptySearch&&0===this.results.length},isSearchQueryTooShort(){return this.searchQuery.lengtht.isExternalProvider)},hasContentFilters(){return this.filters.some(t=>"date"===t.type||"person"===t.type)},results(){if(this.isEmptySearch||this.isSearchQueryTooShort)return[];const t=this.filters.filter(t=>"provider"!==t.type).map(t=>t.type);return Object.entries(this.searchStates).filter(([,t])=>t.entries.length>0&&("loaded"===t.status||"loading"===t.status)).map(([e,n])=>{const i=this.providers.find(t=>t.id===e),a=this.providerIsCompatibleWithFilters(i,t);return{...i,results:n.entries,hasMore:n.hasMore,supportsActiveFilters:a}})},filteredResults(){const t=t=>{if("in-folder"!==t.id)return!1;const e=t.extraParams?.path;return!e||"/"===e||""===e};return this.hasContentFilters?this.results.filter(e=>!0===e.supportsActiveFilters&&!t(e)):this.results.filter(e=>!t(e))},filteredResultUrls(){const t=new Set;return this.filteredResults.forEach(e=>{e.results.forEach(e=>{e.resourceUrl&&t.add(e.resourceUrl)})}),t},unfilteredResults(){return this.hasContentFilters?this.results.filter(t=>!1===t.supportsActiveFilters).map(t=>({...t,results:t.results.filter(t=>!this.filteredResultUrls.has(t.resourceUrl))})).filter(t=>t.results.length>0):[]},detailGroup(){return this.detailCategory?this.results.find(t=>t.id===this.detailCategory)??null:null},renderedGroups(){return this.detailCategory?this.detailGroup?[this.toRenderedGroup(this.detailGroup,"detail",!1)]:[]:[...this.filteredResults.map(t=>this.toRenderedGroup(t,"filtered",!1)),...this.unfilteredResults.map((t,e)=>this.toRenderedGroup(t,"unfiltered",0===e))]},showConnectedServicesButton(){return this.hasExternalResources&&!this.detailCategory&&!this.isEmptySearch&&!this.isSearchQueryTooShort&&!this.isBusy},connectedServicesLabel(){return this.searchExternalResources?(0,a.t)("core","Less from connected services"):(0,a.t)("core","More from connected services")},navigableRows(){if(this.showEmptyContentInfo||this.isSmallMobile)return[];const t=[];return this.renderedGroups.forEach(e=>{e.results.forEach((n,i)=>{t.push({id:this.rowElementId(e.id,i,e.unfiltered),resourceUrl:n.resourceUrl})})}),t},activeRow(){return this.navigableRows[this.activeIndex]??null},activeDescendantId(){return this.activeRow?.id??null},liveMessage(){return!this.open||this.isEmptySearch||this.isSearchQueryTooShort?"":this.searching||!this.initialized?(0,a.t)("core","Searching …"):0===this.navigableRows.length?(0,a.t)("core","No matching results"):this.detailCategory&&this.detailGroup?(0,a.n)("core","Showing %n result from {name}","Showing %n results from {name}",this.navigableRows.length,{name:this.detailGroup.name}):(0,a.n)("core","%n result","%n results",this.navigableRows.length)},hasVisibleResults(){return this.filteredResults.length>0||this.unfilteredResults.length>0}},watch:{open(){this.open?(document.addEventListener("keydown",this.onEscapeKey),this.$nextTick(()=>this.activateFocusTrap()),this.initialized||Promise.all([Gt(),$t({searchTerm:""})]).then(([t,e])=>{this.providers=this.groupProvidersByApp([...t,...this.externalFilters]),this.contacts=this.mapContacts(e),Pt.debug("Search providers and contacts initialized:",{providers:this.providers,contacts:this.contacts}),this.initialized=!0,this.open&&this.searchQuery&&this.find(this.searchQuery)}).catch(t=>{Pt.error(t),this.initialized=!0}),this.searchQuery&&this.find(this.searchQuery)):(this.reset(),this.pendingSearch=!1,this.debouncedFind.clear(),this.detailCategory=null,document.removeEventListener("keydown",this.onEscapeKey),this.deactivateFocusTrap())},query:{immediate:!0,handler(){this.searchQuery=this.query}},searchQuery:{handler(){this.detailCategory=null,this.$emit("update:query",this.searchQuery),this.open&&(this.pendingSearch=!0,this.debouncedFind(this.searchQuery))}},searchExternalResources(){this.detailCategory=null,this.searchQuery&&this.find(this.searchQuery)},filters:{deep:!0,handler(){this.detailCategory=null}},detailGroup(t){this.detailCategory&&!t&&this.closeDetailView()},detailCategory(){this.$nextTick(()=>{this.$refs.resultsContainer&&(this.$refs.resultsContainer.scrollTop=0)})},navigableRows(t,e){this.reconcileActiveIndex(t,e)},isBusy:{immediate:!0,handler(t){this.$emit("update:loading",t)}},activeDescendantId:{immediate:!0,handler(t){this.$emit("update:activeDescendant",t),this.$nextTick(()=>this.scrollActiveIntoView())}}},mounted(){(0,l.B1)("nextcloud:unified-search:add-filter",this.handlePluginFilter)},methods:{onUpdateOpen(t){t||(this.$emit("update:open",!1),this.$emit("update:query",""))},onScrimClick(){this.deactivateFocusTrap(!1),this.onUpdateOpen(!1)},onMobileSearchInput(t){this.searchQuery=String(t)},onEscapeKey(t){if("Escape"!==t.key)return;if(this.providerActionMenuIsOpen||this.dateActionMenuIsOpen||this.showDateRangeModal)return;const e=window._nc_focus_trap??[];this.focusTrap&&e.at(-1)!==this.focusTrap||(t.preventDefault(),this.onUpdateOpen(!1))},activateFocusTrap(){if(this.focusTrap||!this.open)return;const t=this.$refs.panel;if(!t)return;const e=this.$el?.closest?.(".unified-search-menu")??null,n=e?.querySelector(".unified-search-input")??null,i=n?[n,t]:[t];this.focusTrap=(0,o.IG)((0,K.K)(i,{initialFocus:()=>t.querySelector('input[type="search"]')??n?.querySelector("input")??t,escapeDeactivates:!1,allowOutsideClick:!0,trapStack:window._nc_focus_trap??=[]})),this.focusTrap.activate()},deactivateFocusTrap(t=!0){this.focusTrap?.deactivate({returnFocus:t}),this.focusTrap=null},searchLocally(){this.$emit("update:query",this.searchQuery),this.$emit("update:open",!1)},find(t){if(this.pendingSearch=!1,this.isSearchQueryTooShort)return;if(!this.initialized)return;const e=this.filteredProviders.length>0?this.filteredProviders:this.providers.filter(t=>this.searchExternalResources||!t.isExternalProvider),n={};e.forEach(t=>{n[t.id]=this.buildCategoryParams(t)}),this.search(t,e.map(t=>t.id),n)},buildCategoryParams(t){const e={extraQueries:t.extraParams};return t.searchFrom&&(e.type=t.searchFrom),this.filters.forEach(n=>{"provider"!==n.type&&this.providerIsCompatibleWithFilters(t,[n.type])&&("date"===n.type?(e.since=this.dateFilter.startFrom?.toISOString(),e.until=this.dateFilter.endAt?.toISOString()):"person"===n.type&&(e.person=this.personFilter.user))}),e},mapContacts:t=>t.map(t=>({displayName:t.fullName,isNoUser:!1,subname:t.emailAddresses[0]?t.emailAddresses[0]:"",icon:"",user:t.id,isUser:t.isUser})),filterContacts(t){$t({searchTerm:t}).then(e=>{this.contacts=this.mapContacts(e),Pt.debug(`Contacts filtered by ${t}`,{contacts:this.contacts})})},applyPersonFilter(t){const e=this.filters.findIndex(e=>e.id===t.id);-1===e?(this.personFilter.id=t.id,this.personFilter.user=t.user,this.personFilter.name=t.displayName,this.filters.push(this.personFilter)):(this.filters[e].id=t.id,this.filters[e].user=t.user,this.filters[e].name=t.displayName),this.debouncedFind(this.searchQuery),Pt.debug("Person filter applied",{person:t})},loadMoreResultsForProvider(t){this.loadMore(t.id)},toRenderedGroup(t,e,n){const i="detail"===e;return{id:t.id,name:t.name,section:e,unfiltered:"unfiltered"===e,results:i?t.results:t.results.slice(0,3),overflow:!i&&t.results.length>3,hasMore:t.hasMore,inAppSearch:t.inAppSearch??!1,showPartialHeader:n}},headingId:t=>t.unfiltered?`unified-search-result-unfiltered-${t.id}`:`unified-search-result-${t.id}`,openDetailView(t){this.detailCategory=t.id,this.$nextTick(()=>this.focusSearchInput())},closeDetailView(){this.detailCategory=null,this.$nextTick(()=>this.focusSearchInput())},focusSearchInput(){const t=this.$refs.panel,e=t?.querySelector('input[type="search"]');if(e)return void e.focus();const n=this.$el?.closest?.(".unified-search-menu")??null,i=n?.querySelector(".unified-search-input input")??null;i?.focus()},toggleExternalResources(){this.searchExternalResources=!this.searchExternalResources,this.$nextTick(()=>this.focusSearchInput())},addProviderFilter(t){if(Pt.debug("Applying provider filter",{providerFilter:t}),!t.id)return;if(t.isPluginFilter){const e=this.filteredProviders.some(e=>e.id===t.id);t.callback(!e)}this.providerActionMenuIsOpen=!1;const e=this.filteredProviders.findIndex(e=>e.id===t.id);e>-1&&(this.filteredProviders.splice(e,1),this.filters=this.syncProviderFilters(this.filters,this.filteredProviders)),this.filteredProviders.push({...t,type:t.type||"provider",isPluginFilter:t.isPluginFilter||!1}),this.filters=this.syncProviderFilters(this.filters,this.filteredProviders),Pt.debug("Search filters (newly added)",{filters:this.filters}),this.debouncedFind(this.searchQuery)},removeFilter(t){if("provider"===t.type){for(let e=0;e{const a=t.id;"provider"===t.type&&(e.some(t=>t.id===a)||n.splice(i,1))}),e.forEach(t=>{const e=t.id;"provider"===t.type&&(n.some(t=>t.id===e)||n.push(t))}),n},updateDateFilter(){const t=this.filters.findIndex(t=>"date"===t.id);-1!==t?this.filters[t]=this.dateFilter:this.filters.push(this.dateFilter),this.debouncedFind(this.searchQuery)},applyQuickDateRange(t){this.dateActionMenuIsOpen=!1;const e=new Date;let n,i;switch(t){case"today":n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999),this.dateFilter.text=(0,a.t)("core","Today");break;case"7days":n=new Date(e.getFullYear(),e.getMonth(),e.getDate()-6,0,0,0,0),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999),this.dateFilter.text=(0,a.t)("core","Last 7 days");break;case"30days":n=new Date(e.getFullYear(),e.getMonth(),e.getDate()-29,0,0,0,0),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999),this.dateFilter.text=(0,a.t)("core","Last 30 days");break;case"thisyear":n=new Date(e.getFullYear(),0,1,0,0,0,0),i=new Date(e.getFullYear(),11,31,23,59,59,999),this.dateFilter.text=(0,a.t)("core","This year");break;case"lastyear":n=new Date(e.getFullYear()-1,0,1,0,0,0,0),i=new Date(e.getFullYear()-1,11,31,23,59,59,999),this.dateFilter.text=(0,a.t)("core","Last year");break;case"custom":return void(this.showDateRangeModal=!0);default:return}this.dateFilter.startFrom=n,this.dateFilter.endAt=i,this.updateDateFilter()},setCustomDateRange(t){Pt.debug("Custom date range",{range:t}),this.dateFilter.startFrom=t.startFrom,this.dateFilter.endAt=t.endAt,this.dateFilter.text=(0,a.t)("core","Between {startDate} and {endDate}",{startDate:this.dateFilter.startFrom.toLocaleDateString([(0,a.lO)()]),endDate:this.dateFilter.endAt.toLocaleDateString([(0,a.lO)()])}),this.updateDateFilter()},handlePluginFilter(t){Pt.debug("Handling plugin filter",{addFilterEvent:t});for(let e=0;ee.id===t.id);i>-1&&(n.extraParams=t.filterParams,this.filteredProviders[e]=n);break}}this.debouncedFind(this.searchQuery)},groupProvidersByApp(t){const e={};t.forEach(t=>{const n=t.appId?t.appId:"general";e[n]||(e[n]=[]),e[n].push(t)});const n=[];return Object.values(e).forEach(t=>{n.push(...t)}),n},providerIsCompatibleWithFilters(t,e){const n=t.searchFrom?this.providers.find(e=>e.id===t.searchFrom)??t:t;return e.every(t=>{switch(t){case"date":return void 0!==n.filters?.since&&void 0!==n.filters?.until;case"person":return void 0!==n.filters?.person;default:return void 0!==n.filters?.[t]}})},async enableAllProviders(){this.providers.forEach(async(t,e)=>{this.providers[e].disabled=!1})},rowElementId:(t,e,n=!1)=>n?`unified-search-result-unfiltered-${t}-${e}`:`unified-search-result-${t}-${e}`,moveActive(t){const e=this.navigableRows.length;if(0===e)return;const n=this.activeIndex;switch(t){case"next":this.activeIndex=n<0?0:Math.min(n+1,e-1);break;case"prev":this.activeIndex=n<0?0:Math.max(n-1,0);break;case"first":this.activeIndex=0;break;case"last":this.activeIndex=e-1}},activateActive(){const t=this.activeRow??this.navigableRows[0];t?.resourceUrl&&this.openResourceUrl(t.resourceUrl)},openResourceUrl(t){window.location.assign(t)},scrollActiveIntoView(){if(!this.activeDescendantId)return;const t=document.getElementById(this.activeDescendantId);t?.scrollIntoView?.({block:"nearest"})},reconcileActiveIndex(t,e){if(0===t.length)return void(this.activeIndex=-1);const n=e?.[this.activeIndex]?.id;if(void 0!==n){const e=t.findIndex(t=>t.id===n);this.activeIndex=e>=0?e:0}else this.activeIndex=0}}}),jt=Qt;var Wt=n(15131),Zt={};Zt.styleTagTransform=z(),Zt.setAttributes=F(),Zt.insert=D().bind(null,"head"),Zt.domAPI=S(),Zt.insertStyleElement=M(),w()(Wt.A,Zt),Wt.A&&Wt.A.locals&&Wt.A.locals;const Jt=(0,v.A)(jt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("transition",{attrs:{name:"unified-search-modal",appear:""}},[t.open?e("div",{staticClass:"unified-search-modal-root"},[e("CustomDateRangeModal",{staticClass:"unified-search__date-range",attrs:{isOpen:t.showDateRangeModal},on:{"set:customDateRange":t.setCustomDateRange,"update:isOpen":function(e){t.showDateRangeModal=e}}}),t._v(" "),e("div",{ref:"panel",staticClass:"unified-search-modal__container",attrs:{id:"unified-search-results"}},[e("div",{staticClass:"hidden-visually",attrs:{role:"status","aria-live":"polite"}},[t._v("\n\t\t\t\t"+t._s(t.liveMessage)+"\n\t\t\t")]),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showHeader,expression:"showHeader"}],staticClass:"unified-search-modal__header",class:{"unified-search-modal__header--has-results":t.hasVisibleResults&&!t.detailCategory}},[t.isSmallMobile?e("div",{staticClass:"unified-search-modal__mobile-input"},[e("NcTextField",{attrs:{type:"search",label:t.t("core","Apps, files, messages, and more"),modelValue:t.searchQuery,showTrailingButton:t.searchQuery.length>0,trailingButtonLabel:t.t("core","Clear search")},on:{"update:modelValue":t.onMobileSearchInput,"trailing-button-click":function(e){t.searchQuery=""}}}),t._v(" "),t.isBusy?e("NcLoadingIcon",{attrs:{size:20}}):t._e(),t._v(" "),e("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("core","Close search")},on:{click:function(e){return t.onUpdateOpen(!1)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)})],1):t._e(),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showFilterRow,expression:"showFilterRow"}],staticClass:"unified-search-modal__filters",attrs:{"data-cy-unified-search-filters":""}},[e("NcActions",{attrs:{wide:"",size:"small",open:t.providerActionMenuIsOpen,"menu-name":t.t("core","Type"),variant:t.providerFilterActive?"primary":"secondary","data-cy-unified-search-filter":"places"},on:{"update:open":function(e){t.providerActionMenuIsOpen=e}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconShapeOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1084672236)},[t._v(" "),t._l(t.providers,function(n){return e("NcActionButton",{key:`${n.id}-${n.name.replace(/\s/g,"")}`,attrs:{disabled:n.disabled},on:{click:function(e){return t.addProviderFilter(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("img",{staticClass:"filter-button__icon",attrs:{src:n.icon,alt:""}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t"+t._s(n.name)+"\n\t\t\t\t\t\t")])})],2),t._v(" "),e("NcActions",{attrs:{size:"small",wide:"",open:t.dateActionMenuIsOpen,"menu-name":t.t("core","Date"),variant:t.dateFilterActive?"primary":"secondary","data-cy-unified-search-filter":"date"},on:{"update:open":function(e){t.dateActionMenuIsOpen=e}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconCalendarBlankOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2513324059)},[t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("today")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Today"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("7days")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Last 7 days"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("30days")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Last 30 days"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("thisyear")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","This year"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("lastyear")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Last year"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("custom")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Custom date range"))+"\n\t\t\t\t\t\t")])],1),t._v(" "),e("SearchableList",{attrs:{labelText:t.t("core","Search people"),searchList:t.userContacts,emptyContentText:t.t("core","Not found"),"data-cy-unified-search-filter":"people"},on:{"search-term-change":t.debouncedFilterContacts,"item-selected":t.applyPersonFilter},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{attrs:{wide:"",size:"small",variant:"secondary",pressed:t.personFilterActive},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAccountMultipleOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2457664786)},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("core","People"))+"\n\t\t\t\t\t\t\t")])]},proxy:!0}],null,!1,662085814)}),t._v(" "),t.localSearch?e("NcButton",{attrs:{variant:"tertiary","data-cy-unified-search-filter":"current-view"},on:{click:t.searchLocally},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconFilter",{attrs:{size:20}})]},proxy:!0}],null,!1,4275912387)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("core","Filter in current view"))+"\n\t\t\t\t\t\t")]):t._e()],1),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.detailCategory&&t.hasAnyActiveFilter,expression:"!detailCategory && hasAnyActiveFilter"}],staticClass:"unified-search-modal__filters-applied"},t._l(t.filters,function(n){return e("FilterChip",{key:n.id,attrs:{text:n.name??n.text,pretext:""},on:{delete:function(e){return t.removeFilter(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return["person"===n.type?e("NcAvatar",{attrs:{user:n.user,size:24,disableMenu:"",hideStatus:"",hideFavorite:!1}}):"date"===n.type?e("IconCalendarBlankOutline"):e("img",{attrs:{src:n.icon,alt:""}})]},proxy:!0}],null,!0)})}),1)]),t._v(" "),t.showEmptyContentInfo?e("div",{staticClass:"unified-search-modal__no-content"},[e("NcEmptyContent",{attrs:{name:t.emptyContentMessage},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconMagnify",{attrs:{size:64}})]},proxy:!0}],null,!1,125778896)}),t._v(" "),t.showConnectedServicesButton?e("div",{staticClass:"unified-search-modal__connected-services"},[e("NcButton",{attrs:{variant:"secondary",wide:""},on:{click:t.toggleExternalResources}},[t._v("\n\t\t\t\t\t\t"+t._s(t.connectedServicesLabel)+"\n\t\t\t\t\t")])],1):t._e()],1):e("div",{ref:"resultsContainer",staticClass:"unified-search-modal__results"},[e("h3",{staticClass:"hidden-visually"},[t._v("\n\t\t\t\t\t"+t._s(t.t("core","Results"))+"\n\t\t\t\t")]),t._v(" "),t.detailCategory&&t.detailGroup?e("div",{staticClass:"unified-search-modal__detail-header"},[e("NcButton",{staticClass:"unified-search-modal__detail-back",attrs:{variant:"tertiary","aria-label":t.t("core","Back to all results")},on:{click:t.closeDetailView},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowLeft",{staticClass:"unified-search-modal__rtl-icon",attrs:{size:20}})]},proxy:!0}],null,!1,1818940180)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("core","Back"))+"\n\t\t\t\t\t")]),t._v(" "),e("h4",{staticClass:"unified-search-modal__detail-title",attrs:{id:t.headingId(t.detailGroup)}},[t._v("\n\t\t\t\t\t\t"+t._s(t.detailGroup.name)+"\n\t\t\t\t\t")])],1):t._e(),t._v(" "),t._l(t.renderedGroups,function(n){return e("div",{key:n.id,staticClass:"result-group"},[n.showPartialHeader?e("div",{staticClass:"unified-search-modal__unfiltered-header"},[e("span",{staticClass:"unified-search-modal__unfiltered-label"},[t._v(t._s(t.t("core","Partial matches")))])]):t._e(),t._v(" "),e("div",{staticClass:"result",class:{"result--unfiltered":n.unfiltered}},[n.overflow?e("NcButton",{staticClass:"result-title--more",attrs:{id:t.headingId(n),alignment:"start-reverse",variant:"tertiary-no-background"},on:{click:function(e){return t.openDetailView(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowRight",{staticClass:"unified-search-modal__rtl-icon",attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","More from {name}",{name:n.name}))+"\n\t\t\t\t\t\t\t")]):"detail"!==n.section?e("h4",{staticClass:"result-title",attrs:{id:t.headingId(n)}},[t._v("\n\t\t\t\t\t\t\t"+t._s(n.name)+"\n\t\t\t\t\t\t")]):t._e(),t._v(" "),e("ul",{staticClass:"result-items",attrs:{role:t.isSmallMobile?void 0:"listbox","aria-labelledby":t.headingId(n)}},t._l(n.results,function(i,a){return e("SearchResult",t._b({key:a,attrs:{role:t.isSmallMobile?void 0:"option",elementId:t.rowElementId(n.id,a,n.unfiltered),active:t.activeDescendantId===t.rowElementId(n.id,a,n.unfiltered)}},"SearchResult",i,!1))}),1),t._v(" "),e("div",{staticClass:"result-footer"},["detail"===n.section&&n.hasMore?e("NcButton",{attrs:{variant:"tertiary-no-background"},on:{click:function(e){return t.loadMoreResultsForProvider(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconDotsHorizontal",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("core","Load more results"))+"\n\t\t\t\t\t\t\t\t")]):t._e(),t._v(" "),n.inAppSearch?e("NcButton",{attrs:{alignment:"end-reverse",variant:"tertiary-no-background"},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("core","Search in"))+" "+t._s(n.name)+"\n\t\t\t\t\t\t\t\t")]):t._e()],1)],1)])}),t._v(" "),t.showConnectedServicesButton?e("div",{staticClass:"unified-search-modal__connected-services"},[e("NcButton",{attrs:{variant:"secondary",wide:""},on:{click:t.toggleExternalResources}},[t._v("\n\t\t\t\t\t\t"+t._s(t.connectedServicesLabel)+"\n\t\t\t\t\t")])],1):t._e()],2)]),t._v(" "),e("div",{staticClass:"unified-search-modal__scrim modal-mask",on:{click:t.onScrimClick}})],1):t._e()])},[],!1,null,"39a656a6",null).exports,Xt=(0,o.pM)({name:"UnifiedSearch",components:{UnifiedSearchModal:Jt,UnifiedSearchLocalSearchBar:$,UnifiedSearchInput:N},setup:()=>({currentLocation:(0,d.ZDG)(),isSmallMobile:(0,c.F)(),t:a.t}),data:()=>({queryText:"",showUnifiedSearch:!1,showLocalSearch:!1,activeDescendantId:"",searching:!1,filtersRevealed:!1}),computed:{debouncedQueryUpdate(){return(0,u.A)(this.emitUpdatedQuery,250)},supportsLocalSearch(){return["/apps/deck"].some(t=>this.currentLocation.pathname?.includes?.(t))},appHandlesSearchShortcut(){return["/settings/users","/settings/apps"].some(t=>this.currentLocation.pathname?.includes?.(t))}},watch:{queryText(){this.debouncedQueryUpdate(),this.supportsLocalSearch||this.isSmallMobile||(this.showUnifiedSearch=this.queryText.length>0)},showUnifiedSearch(t){t||(this.filtersRevealed=!1)}},mounted(){!1===window.OCP.Accessibility.disableKeyboardShortcuts()&&window.addEventListener("keydown",this.onKeyDown),(0,l.B1)("nextcloud:unified-search:reset",()=>{this.showLocalSearch=!1,this.queryText=""}),(0,l.B1)("nextcloud:unified-search:reset",()=>{(0,l.Ic)("nextcloud:unified-search.reset",{query:""})}),(0,l.B1)("nextcloud:unified-search:search",({query:t})=>{(0,l.Ic)("nextcloud:unified-search.search",{query:t})}),Lt.debug("Unified search initialized!")},beforeDestroy(){window.removeEventListener("keydown",this.onKeyDown)},methods:{onKeyDown(t){const e=t.key.toLowerCase();if(t.ctrlKey&&"f"===e){if(this.appHandlesSearchShortcut)return;if(this.supportsLocalSearch)return this.showLocalSearch||this.showUnifiedSearch||t.preventDefault(),void this.toggleUnifiedSearch();if(this.isSearchEngaged())return;t.preventDefault(),this.focusSearch()}else if((t.metaKey||t.ctrlKey)&&"k"===e){if(this.appHandlesSearchShortcut)return;t.preventDefault(),this.focusSearch()}},focusSearch(){this.isSmallMobile?this.openModal():this.focusInput()},focusInput(){const t=this.$refs.searchInput;t?.focus?.()},isSearchEngaged(){if(this.showUnifiedSearch)return!0;const t=this.$refs.searchInput?.$el;return Boolean(t&&t.contains(document.activeElement))},onNavigate(t){const e=this.$refs.searchModal;e?.moveActive?.(t)},onActivate(){const t=this.$refs.searchModal;t?.activateActive?.()},toggleUnifiedSearch(){this.supportsLocalSearch?this.showLocalSearch=!this.showLocalSearch:(this.showUnifiedSearch=!this.showUnifiedSearch,this.showLocalSearch=!1)},openModal(){this.showUnifiedSearch=!0,this.showLocalSearch=!1},onOpenFilters(){this.showUnifiedSearch=!0,this.showLocalSearch=!1,this.filtersRevealed=!0},onClose(){this.showUnifiedSearch=!1,this.showLocalSearch=!1},emitUpdatedQuery(){""===this.queryText?(0,l.Ic)("nextcloud:unified-search:reset"):(0,l.Ic)("nextcloud:unified-search:search",{query:this.queryText})}}});var te=n(16968),ee={};ee.styleTagTransform=z(),ee.setAttributes=F(),ee.insert=D().bind(null,"head"),ee.domAPI=S(),ee.insertStyleElement=M(),w()(te.A,ee),te.A&&te.A.locals&&te.A.locals;const ne=(0,v.A)(Xt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"unified-search-menu"},[e("UnifiedSearchInput",{ref:"searchInput",attrs:{query:t.queryText,expanded:t.showUnifiedSearch,activeDescendantId:t.activeDescendantId,loading:t.searching,filtersRevealed:t.filtersRevealed},on:{click:t.openModal,"open-filters":t.onOpenFilters,close:t.onClose,"update:query":function(e){t.queryText=e},navigate:t.onNavigate,activate:t.onActivate}}),t._v(" "),t.supportsLocalSearch?e("UnifiedSearchLocalSearchBar",{attrs:{open:t.showLocalSearch,query:t.queryText},on:{globalSearch:t.openModal,"update:open":function(e){t.showLocalSearch=e},"update:query":function(e){t.queryText=e}}}):t._e(),t._v(" "),e("UnifiedSearchModal",{ref:"searchModal",attrs:{localSearch:t.supportsLocalSearch,query:t.queryText,open:t.showUnifiedSearch,filtersRevealed:t.filtersRevealed},on:{"update:query":function(e){t.queryText=e},"update:open":function(e){t.showUnifiedSearch=e},"update:activeDescendant":function(e){t.activeDescendantId=e||""},"update:loading":function(e){t.searching=e}}})],1)},[],!1,null,"44547071",null).exports;n.nc=(0,i.aV)();const ie=(0,r.YK)().setApp("unified-search").detectUser().build();o.Ay.mixin({data:()=>({logger:ie}),methods:{t:a.Tl,n:a.zw}}),window.OCA=window.OCA||{},window.OCA.UnifiedSearch={registerFilterAction:({id:t,appId:e,searchFrom:n,label:i,callback:a,icon:r})=>{Yt().registerExternalFilter({id:t,appId:e,searchFrom:n,label:i,callback:a,icon:r})}},o.Ay.use(s.R2);const ae=(0,s.Ey)();new o.Ay({el:"#unified-search",pinia:ae,name:"UnifiedSearchRoot",render:t=>t(ne)})},53628(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".app-icon[data-v-42bb03fc]{--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;width:var(--app-icon-circle-size);height:var(--app-icon-circle-size);border-radius:50%;transform:scale(var(--app-icon-scale, 1));transition:transform var(--animation-quick) ease-out;background-color:var(--color-primary-element-light);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%, var(--color-primary-element-light) 100%);box-shadow:var(--app-icon-bevel)}@media(prefers-color-scheme: dark){.app-icon[data-v-42bb03fc]{--app-icon-bevel: none}}@media(prefers-reduced-motion: reduce){.app-icon[data-v-42bb03fc]{transition:none}}.app-icon__img[data-v-42bb03fc]{width:var(--app-icon-icon-size);height:var(--app-icon-icon-size);background-color:var(--color-primary-element);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%, var(--color-primary-element) 100%);mask:var(--app-icon-url) center/contain no-repeat}@media(forced-colors: active){.app-icon__img[data-v-42bb03fc]{background-color:CanvasText;background-image:none}}.app-icon--outlined[data-v-42bb03fc]{background:rgba(0,0,0,0);background-image:none;box-shadow:inset 0 0 0 2px var(--color-border-maxcontrast)}.app-icon--outlined .app-icon__img[data-v-42bb03fc]{background-color:var(--color-main-text);background-image:none}[data-themes*=dark] .app-icon{--app-icon-bevel: none}[data-themes*=light] .app-icon{--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element))}","",{version:3,sources:["webpack://./core/src/components/AppIcon.vue"],names:[],mappings:"AAKA,2BACC,+DAAA,CAEA,gEAAA,CACA,2OAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,iCAAA,CACA,kCAAA,CACA,iBAAA,CACA,yCAAA,CACA,oDAAA,CACA,mDAAA,CACA,iLAAA,CAKA,gCAAA,CAEA,mCAvBD,2BAwBE,sBAAA,CAAA,CAGD,uCA3BD,2BA4BE,eAAA,CAAA,CAGD,gCACC,+BAAA,CACA,gCAAA,CAGA,6CAAA,CACA,2KAAA,CAKA,iDAAA,CAID,8BACC,gCACC,2BAAA,CACA,qBAAA,CAAA,CAIF,qCACC,wBAAA,CACA,qBAAA,CACA,0DAAA,CAGD,oDACC,uCAAA,CACA,qBAAA,CAKF,8BACC,sBAAA,CAGD,+BACC,2OAAA",sourcesContent:["\n$bevel:\n\tinset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)),\n\tinset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));\n\n.app-icon {\n\t--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);\n\t// 28px on a 48px circle, so it follows when consumers resize the circle.\n\t--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);\n\t--app-icon-bevel: #{$bevel};\n\tbox-sizing: border-box;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: var(--app-icon-circle-size);\n\theight: var(--app-icon-circle-size);\n\tborder-radius: 50%;\n\ttransform: scale(var(--app-icon-scale, 1));\n\ttransition: transform var(--animation-quick) ease-out;\n\tbackground-color: var(--color-primary-element-light);\n\tbackground-image: linear-gradient(\n\t\tto bottom,\n\t\tcolor-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%,\n\t\tvar(--color-primary-element-light) 100%\n\t);\n\tbox-shadow: var(--app-icon-bevel);\n\n\t@media (prefers-color-scheme: dark) {\n\t\t--app-icon-bevel: none;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&__img {\n\t\twidth: var(--app-icon-icon-size);\n\t\theight: var(--app-icon-icon-size);\n\t\t// Masked rather than shown: app icons ship a hardcoded fill, so\n\t\t// currentColor never applies and a filter could only flip black and white.\n\t\tbackground-color: var(--color-primary-element);\n\t\tbackground-image: linear-gradient(\n\t\t\tto bottom,\n\t\t\tcolor-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%,\n\t\t\tvar(--color-primary-element) 100%\n\t\t);\n\t\tmask: var(--app-icon-url) center / contain no-repeat;\n\t}\n\n\t// Masked backgrounds are not force-adjusted the way is.\n\t@media (forced-colors: active) {\n\t\t&__img {\n\t\t\tbackground-color: CanvasText;\n\t\t\tbackground-image: none;\n\t\t}\n\t}\n\n\t&--outlined {\n\t\tbackground: transparent;\n\t\tbackground-image: none;\n\t\tbox-shadow: inset 0 0 0 2px var(--color-border-maxcontrast);\n\t}\n\n\t&--outlined &__img {\n\t\tbackground-color: var(--color-main-text);\n\t\tbackground-image: none;\n\t}\n}\n\n// An explicit theme choice must beat the media query above, which only sees the OS.\n:global([data-themes*=dark] .app-icon) {\n\t--app-icon-bevel: none;\n}\n\n:global([data-themes*=light] .app-icon) {\n\t--app-icon-bevel: #{$bevel};\n}\n"],sourceRoot:""}]);const o=s},12667(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".unified-search-custom-date-modal[data-v-2907014b]{padding:10px 20px 10px 20px}.unified-search-custom-date-modal h1[data-v-2907014b]{font-size:16px;font-weight:bolder;line-height:2em}.unified-search-custom-date-modal__pickers[data-v-2907014b]{display:flex;flex-direction:column}.unified-search-custom-date-modal__footer[data-v-2907014b]{display:flex;justify-content:end}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/CustomDateRangeModal.vue"],names:[],mappings:"AACA,mDACC,2BAAA,CAEA,sDACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,4DACC,YAAA,CACA,qBAAA,CAGD,2DACC,YAAA,CACA,mBAAA",sourcesContent:["\n.unified-search-custom-date-modal {\n\tpadding: 10px 20px 10px 20px;\n\n\th1 {\n\t\tfont-size: 16px;\n\t\tfont-weight: bolder;\n\t\tline-height: 2em;\n\t}\n\n\t&__pickers {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t&__footer {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t}\n\n}\n"],sourceRoot:""}]);const o=s},17830(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".chip[data-v-5a4f6249]{display:flex;align-items:center;padding:2px 4px;border:1px solid var(--color-primary-element-light);border-radius:20px;background-color:var(--color-primary-element-light);margin:2px}.chip .icon[data-v-5a4f6249]{display:flex;align-items:center;padding-inline-end:5px}.chip .icon img[data-v-5a4f6249]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-5a4f6249]{margin:0 2px}.chip .close-button[data-v-5a4f6249]{display:flex;align-items:center;width:auto;min-width:0;min-height:0;margin:0;padding:0;border:none;background:rgba(0,0,0,0);color:inherit;cursor:pointer;border-radius:var(--border-radius-element, 8px)}.chip .close-button[data-v-5a4f6249]:hover{filter:invert(20%)}.chip .close-button[data-v-5a4f6249]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:1px}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchFilterChip.vue"],names:[],mappings:"AACA,uBACI,YAAA,CACA,kBAAA,CACA,eAAA,CACA,mDAAA,CACA,kBAAA,CACA,mDAAA,CACA,UAAA,CAEA,6BACI,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,iCACI,UAAA,CACA,WAAA,CACA,kBAAA,CACA,yCAAA,CAIR,6BACI,YAAA,CAGJ,qCACI,YAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,aAAA,CACA,cAAA,CACA,+CAAA,CAEA,2CACI,kBAAA,CAGJ,mDACI,wCAAA,CACA,kBAAA",sourcesContent:["\n.chip {\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border: 1px solid var(--color-primary-element-light);\n border-radius: 20px;\n background-color: var(--color-primary-element-light);\n margin: 2px;\n\n .icon {\n display: flex;\n align-items: center;\n padding-inline-end: 5px;\n\n img {\n width: 20px;\n padding: 2px;\n border-radius: 20px;\n filter: var(--background-invert-if-bright);\n }\n }\n\n .text {\n margin: 0 2px;\n }\n\n .close-button {\n display: flex;\n align-items: center;\n width: auto;\n min-width: 0;\n min-height: 0;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: var(--border-radius-element, 8px);\n\n &:hover {\n filter: invert(20%);\n }\n\n &:focus-visible {\n outline: 2px solid var(--color-main-text);\n outline-offset: 1px;\n }\n }\n}\n"],sourceRoot:""}]);const o=s},65719(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,'.result-item[data-v-516c3939]{padding-inline:0}.result-item[data-v-516c3939] a{border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.result-item[data-v-516c3939] a:active,.result-item[data-v-516c3939] a:hover{background-color:var(--color-background-hover)}.result-item[data-v-516c3939] a:focus-visible{background-color:var(--color-background-hover);border-color:var(--color-border-maxcontrast)}.result-item[data-v-516c3939] a *{cursor:pointer}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item::before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline)*2);inset-inline-start:0;width:3px;border-radius:var(--border-radius-rounded);background-color:var(--color-primary-element);animation:result-pill-in-516c3939 var(--animation-quick) ease-out}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item:hover{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__name,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__subname,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__details,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-details__details{color:var(--color-main-text) !important}.result-item__icon[data-v-516c3939]{display:flex;align-items:center;justify-content:center;overflow:hidden;width:var(--default-clickable-area);height:var(--default-clickable-area);border-radius:var(--border-radius);margin-inline-start:var(--default-grid-baseline)}.result-item__icon--rounded[data-v-516c3939]{border-radius:calc(var(--default-clickable-area)/2)}.result-item__icon--with-thumbnail[data-v-516c3939]:not(.result-item__icon--rounded){border:1px solid var(--color-border);max-height:calc(var(--default-clickable-area) - 2px);max-width:calc(var(--default-clickable-area) - 2px)}.result-item__icon--with-thumbnail img[data-v-516c3939]{width:100%;height:100%;object-fit:cover;object-position:center}.result-item__icon-img[data-v-516c3939]{width:20px;height:20px;object-fit:contain;filter:var(--background-invert-if-dark)}.result-item__icon-img[src*="/filetypes/"][data-v-516c3939]{width:32px;height:32px;filter:none}.result-item__app-icon[data-v-516c3939]{--app-icon-circle-size: var(--default-clickable-area);margin-inline-start:var(--default-grid-baseline)}@keyframes result-pill-in-516c3939{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}',"",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchResult.vue"],names:[],mappings:"AACA,8BACC,gBAAA,CAEA,gCACC,8BAAA,CACA,mDAAA,CAGA,6EAEC,8CAAA,CAKD,8CACC,8CAAA,CACA,4CAAA,CAGD,kCACC,cAAA,CAOD,oEACC,8CAAA,CAMA,4EACC,UAAA,CACA,iBAAA,CACA,gDAAA,CACA,oBAAA,CACA,SAAA,CACA,0CAAA,CACA,6CAAA,CAEA,iEAAA,CAGD,0EACC,8CAAA,CAMF,6ZAIC,uCAAA,CAIF,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,mCAAA,CACA,oCAAA,CACA,kCAAA,CACA,gDAAA,CAEA,6CACC,mDAAA,CAGD,qFACC,oCAAA,CAEA,oDAAA,CACA,mDAAA,CAID,wDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAID,wCACC,UAAA,CACA,WAAA,CACA,kBAAA,CAEA,uCAAA,CAKA,4DACC,UAAA,CACA,WAAA,CACA,WAAA,CAMH,wCACC,qDAAA,CACA,gDAAA,CAKF,mCACC,KACC,mBAAA,CACA,SAAA,CAGD,GACC,mBAAA,CACA,SAAA,CAAA",sourcesContent:["\n.result-item {\n\tpadding-inline: 0;\n\n\t:deep(a) {\n\t\tborder: 2px solid transparent;\n\t\tborder-radius: var(--border-radius-large) !important;\n\n\t\t// Hover/press: neutral gray fill only, no border.\n\t\t&:active,\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t// Plain Tab into a result keeps a visible focus ring (a11y). Normally the combobox\n\t\t// keeps focus in the input and drives selection via `active` below.\n\t\t&:focus-visible {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-color: var(--color-border-maxcontrast);\n\t\t}\n\n\t\t* {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t// NcListItem's `active` state paints a primary fill, white text and a blue stripe.\n\t// We want a neutral look: the gray hover fill plus a maxcontrast border, readable text.\n\t&.list-item__wrapper--active {\n\t\t:deep(.list-item) {\n\t\t\tbackground-color: var(--color-background-hover);\n\n\t\t\t// Keyboard selection marker: the pill the left navigation paints on its active\n\t\t\t// entry. It has to hang off .list-item rather than the wrapper, because\n\t\t\t// .list-item is itself positioned and paints the opaque row background, so it\n\t\t\t// would cover a pseudo-element belonging to its parent.\n\t\t\t&::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-block: calc(var(--default-grid-baseline) * 2);\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\twidth: 3px;\n\t\t\t\tborder-radius: var(--border-radius-rounded);\n\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\t// Zeroed by the reduced-motion theme, so no separate media query is needed.\n\t\t\t\tanimation: result-pill-in var(--animation-quick) ease-out;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t}\n\n\t\t// Undo the forced active text colour. Chain through the anchor to outrank\n\t\t// NcListItem's own !important rule.\n\t\t:deep(.list-item__anchor .list-item-content__name),\n\t\t:deep(.list-item__anchor .list-item-content__subname),\n\t\t:deep(.list-item__anchor .list-item-content__details),\n\t\t:deep(.list-item__anchor .list-item-details__details) {\n\t\t\tcolor: var(--color-main-text) !important;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\toverflow: hidden;\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\tborder-radius: var(--border-radius);\n\t\tmargin-inline-start: var(--default-grid-baseline);\n\n\t\t&--rounded {\n\t\t\tborder-radius: calc(var(--default-clickable-area) / 2);\n\t\t}\n\n\t\t&--with-thumbnail:not(#{&}--rounded) {\n\t\t\tborder: 1px solid var(--color-border);\n\t\t\t// compensate for border\n\t\t\tmax-height: calc(var(--default-clickable-area) - 2px);\n\t\t\tmax-width: calc(var(--default-clickable-area) - 2px);\n\t\t}\n\n\t\t// A full-bleed thumbnail (preview or avatar) fills the box.\n\t\t&--with-thumbnail img {\n\t\t\t// Make sure to keep ratio\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\tobject-fit: cover;\n\t\t\tobject-position: center;\n\t\t}\n\n\t\t// A small monochrome glyph (e.g. a settings section), not a thumbnail.\n\t\t&-img {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tobject-fit: contain;\n\t\t\t// Dark monochrome icons invert to light in dark themes.\n\t\t\tfilter: var(--background-invert-if-dark);\n\n\t\t\t// Mime icons carry their own colours (a red PDF, a green spreadsheet), so the\n\t\t\t// dark-theme invert would recolour them: red comes out cyan. Sized to match the\n\t\t\t// 32px these icons had while they were painted as a background-image.\n\t\t\t&[src*='/filetypes/'] {\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tfilter: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// App results reuse the app-menu tile (AppIcon); size its circle to the icon column.\n\t&__app-icon {\n\t\t--app-icon-circle-size: var(--default-clickable-area);\n\t\tmargin-inline-start: var(--default-grid-baseline);\n\t}\n}\n\n// Grow the pill out of the row's centre line, matching the navigation entry.\n@keyframes result-pill-in {\n\tfrom {\n\t\ttransform: scaleY(0);\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\ttransform: scaleY(1);\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]);const o=s},60645(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".searchable-list__wrapper[data-v-66bd6570]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-66bd6570]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-66bd6570] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__list[data-v-66bd6570] .button-vue span{font-weight:initial}.searchable-list__empty-content[data-v-66bd6570]{margin-top:calc(var(--default-grid-baseline)*3)}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchableList.vue"],names:[],mappings:"AAEC,2CACC,4CAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,WAAA,CAGD,wCACC,UAAA,CACA,gBAAA,CACA,eAAA,CACA,uCAAA,CACA,oCAAA,CAEA,oDACC,mDAAA,CACA,yDACC,mBAAA,CAKH,iDACC,+CAAA",sourcesContent:["\n.searchable-list {\n\t&__wrapper {\n\t\tpadding: calc(var(--default-grid-baseline) * 3);\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 250px;\n\t}\n\n\t&__list {\n\t\twidth: 100%;\n\t\tmax-height: 284px;\n\t\toverflow-y: auto;\n\t\tmargin-top: var(--default-grid-baseline);\n\t\tpadding: var(--default-grid-baseline);\n\n\t\t:deep(.button-vue) {\n\t\t\tborder-radius: var(--border-radius-large) !important;\n\t\t\tspan {\n\t\t\t\tfont-weight: initial;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__empty-content {\n\t\tmargin-top: calc(var(--default-grid-baseline) * 3);\n\t}\n}\n"],sourceRoot:""}]);const o=s},14600(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".unified-search-input[data-v-59e94aec]{position:relative;z-index:51}.unified-search-input[data-v-59e94aec]:not(.unified-search-input--mobile){display:flex;align-items:center;width:clamp(200px,35vw,600px);max-width:calc(100% - 32px)}.unified-search-input--mobile[data-v-59e94aec]{display:contents}.unified-search-input__field[data-v-59e94aec]{--resting-background: rgba(0, 0, 0, 0.15);--resting-background-hover: rgba(0, 0, 0, 0.22);--search-icon-pad: 12px;--search-icon-size: 20px;--search-icon-gap: 8px;--search-anim-duration: 240ms;--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);position:relative;container-type:inline-size;display:flex;align-items:center;height:var(--default-clickable-area);width:100%;border-radius:var(--border-radius-element, 8px);box-shadow:inset 0 2px 0 rgba(0,0,0,.12);background-color:var(--resting-background);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);transition:background-color var(--search-anim-duration) var(--search-anim-easing),box-shadow var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field[data-v-59e94aec]:hover:not(.unified-search-input__field--active){background-color:var(--resting-background-hover)}.unified-search-input__field--active[data-v-59e94aec]{background-color:var(--color-main-background);box-shadow:none}.unified-search-input__resting[data-v-59e94aec]{--slide-sign: 1;position:absolute;inset-block:0;inset-inline-start:var(--search-icon-pad);max-width:calc(100% - 2*var(--search-icon-pad));display:flex;align-items:center;gap:var(--search-icon-gap);pointer-events:none;color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));transform:translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));transition:transform var(--search-anim-duration) var(--search-anim-easing),color var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field--active .unified-search-input__resting[data-v-59e94aec]{transform:translateX(0);color:var(--color-text-maxcontrast);max-width:calc(100% - 7*var(--search-icon-pad))}.unified-search-input__label[data-v-59e94aec]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__resting--filled .unified-search-input__label[data-v-59e94aec]{opacity:0}.unified-search-input__resting[data-v-59e94aec] .material-design-icon__svg{display:block;transform:translateY(1px)}.unified-search-input__input[data-v-59e94aec]{flex:1;min-width:0;height:100%;margin:0;padding-inline:calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);border:none !important;border-radius:0 !important;box-shadow:none !important;background-color:rgba(0,0,0,0);color:var(--color-main-text);font-size:var(--default-font-size)}.unified-search-input__input[data-v-59e94aec]::placeholder{opacity:1;color:var(--color-text-maxcontrast)}.unified-search-input__input[data-v-59e94aec]:focus-visible{outline:none}.unified-search-input__clear[data-v-59e94aec],.unified-search-input__filter[data-v-59e94aec]{flex-shrink:0;margin-inline-end:2px}.unified-search-input__loading[data-v-59e94aec]{flex-shrink:0;display:flex;align-items:center;margin-inline:var(--default-grid-baseline)}.unified-search-input__shortcut[data-v-59e94aec]{position:absolute;inset-inline-end:var(--default-grid-baseline);top:50%;transform:translateY(-50%);display:flex;pointer-events:none}@container (max-width: 400px){.unified-search-input__shortcut[data-v-59e94aec]{display:none}}.unified-search-input__shortcut[data-v-59e94aec] kbd{min-width:12px;height:12px;padding-inline:5px;border:1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);border-block-end-width:2px;border-radius:var(--border-radius-small, 4px);color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));font-size:13px}[data-theme-dark] .unified-search-input__field[data-v-59e94aec],[data-theme-dark-highcontrast] .unified-search-input__field[data-v-59e94aec]{--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent)}.unified-search-input__resting[data-v-59e94aec]:dir(rtl){--slide-sign: -1}@media(prefers-reduced-motion: reduce){.unified-search-input__resting[data-v-59e94aec],.unified-search-input__resting span[data-v-59e94aec]{transition:none}}.unified-search-input--mobile[data-v-59e94aec] .header-menu{height:var(--default-clickable-area)}.unified-search-input--mobile[data-v-59e94aec] .header-menu__trigger{--button-size: var(--default-clickable-area) !important;height:var(--default-clickable-area) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue{--color-main-text: var(--color-background-plain-text);color:var(--color-background-plain-text);border-radius:var(--border-radius-element) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:hover:not(:disabled){background-color:rgba(0,0,0,.1) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:active:not(:disabled){background-color:rgba(0,0,0,.15) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:focus-visible{background-color:rgba(0,0,0,.1) !important;outline:none !important;box-shadow:inset 0 0 0 2px var(--color-background-plain-text) !important}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/UnifiedSearchInput.vue"],names:[],mappings:"AACA,uCAGC,iBAAA,CACA,UAAA,CAEA,0EACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,2BAAA,CAGD,+CACC,gBAAA,CAGD,8CACC,yCAAA,CACA,+CAAA,CAGA,uBAAA,CACA,wBAAA,CACA,sBAAA,CAGA,6BAAA,CACA,oDAAA,CACA,iBAAA,CAEA,0BAAA,CACA,YAAA,CACA,kBAAA,CAGA,oCAAA,CACA,UAAA,CACA,+CAAA,CACA,wCAAA,CAEA,0CAAA,CACA,qDAAA,CACA,6CAAA,CAEA,kJACC,CAGD,8FACC,gDAAA,CAID,sDACC,6CAAA,CACA,eAAA,CAQF,gDACC,eAAA,CACA,iBAAA,CACA,aAAA,CACA,yCAAA,CACA,+CAAA,CACA,YAAA,CACA,kBAAA,CACA,0BAAA,CACA,mBAAA,CACA,+FAAA,CACA,sFAAA,CACA,sIACC,CAGD,qFACC,uBAAA,CACA,mCAAA,CACA,+CAAA,CAOF,8CACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,wEAAA,CAGD,qFACC,SAAA,CAOD,2EACC,aAAA,CACA,yBAAA,CAKD,8CACC,MAAA,CACA,WAAA,CACA,WAAA,CACA,QAAA,CAGA,qHAAA,CAIA,sBAAA,CACA,0BAAA,CACA,0BAAA,CACA,8BAAA,CACA,4BAAA,CACA,kCAAA,CAEA,2DACC,SAAA,CACA,mCAAA,CAGD,4DACC,YAAA,CAIF,6FAEC,aAAA,CACA,qBAAA,CAGD,gDACC,aAAA,CACA,YAAA,CACA,kBAAA,CACA,0CAAA,CAKD,iDACC,iBAAA,CACA,6CAAA,CACA,OAAA,CACA,0BAAA,CACA,YAAA,CACA,mBAAA,CAKA,8BAXD,iDAYE,YAAA,CAAA,CAGD,qDACC,cAAA,CACA,WAAA,CACA,kBAAA,CACA,wFAAA,CACA,0BAAA,CACA,6CAAA,CACA,+FAAA,CACA,cAAA,CAOH,6IAEC,uFAAA,CACA,6FAAA,CAOD,yDACC,gBAAA,CAKD,uCACC,qGAEC,eAAA,CAAA,CAKF,4DACC,oCAAA,CAGD,qEACC,uDAAA,CACA,+CAAA,CAGD,2DACC,qDAAA,CACA,wCAAA,CACA,qDAAA,CAEA,gFACC,0CAAA,CAGD,iFACC,2CAAA,CAGD,yEACC,0CAAA,CACA,uBAAA,CACA,wEAAA",sourcesContent:["\n.unified-search-input {\n\t// Paints above the modal root (z-index: 50) so the header input stays clickable\n\t// over the scrim while the popover is open. Keep 51 one above that value.\n\tposition: relative;\n\tz-index: 51;\n\n\t&:not(.unified-search-input--mobile) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\twidth: clamp(200px, 35vw, 600px);\n\t\tmax-width: calc(100% - 32px);\n\t}\n\n\t&--mobile {\n\t\tdisplay: contents;\n\t}\n\n\t&__field {\n\t\t--resting-background: rgba(0, 0, 0, 0.15);\n\t\t--resting-background-hover: rgba(0, 0, 0, 0.22);\n\t\t// Shared geometry: the resting group and the input's leading padding read the\n\t\t// same tokens so the placeholder and the typed value line up.\n\t\t--search-icon-pad: 12px;\n\t\t--search-icon-size: 20px;\n\t\t--search-icon-gap: 8px;\n\t\t// One shared timing for every focus transition (background, the icon/label\n\t\t// slide, the recolour) so they move together. easeOutQuart = soft landing.\n\t\t--search-anim-duration: 240ms;\n\t\t--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);\n\t\tposition: relative;\n\t\t// Query container so the resting group can centre itself with cqi units\n\t\tcontainer-type: inline-size;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Match the default clickable area so the inner (which the global\n\t\t// input reset forces to that height) fills the field without an override.\n\t\theight: var(--default-clickable-area);\n\t\twidth: 100%;\n\t\tborder-radius: var(--border-radius-element, 8px);\n\t\tbox-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.12);\n\t\t// Resting: subdued \"button\" look that sits on the themed header\n\t\tbackground-color: var(--resting-background);\n\t\t-webkit-backdrop-filter: var(--filter-background-blur);\n\t\tbackdrop-filter: var(--filter-background-blur);\n\t\t// Blue tint -> white surface on the shared timing, in step with the slide.\n\t\ttransition:\n\t\t\tbackground-color var(--search-anim-duration) var(--search-anim-easing),\n\t\t\tbox-shadow var(--search-anim-duration) var(--search-anim-easing);\n\n\t\t&:hover:not(.unified-search-input__field--active) {\n\t\t\tbackground-color: var(--resting-background-hover);\n\t\t}\n\n\t\t// Active: real input surface once focused or filled\n\t\t&--active {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n\n\t// Anchored at the leading edge and translated to the centre while at rest; on\n\t// focus (--active) the translate goes to 0 and it slides into place. Centre offset\n\t// is pure CSS: half the field (50cqi) minus half the group (50%) minus the pad, so\n\t// it self-corrects for any placeholder length or field width.\n\t&__resting {\n\t\t--slide-sign: 1;\n\t\tposition: absolute;\n\t\tinset-block: 0;\n\t\tinset-inline-start: var(--search-icon-pad);\n\t\tmax-width: calc(100% - 2 * var(--search-icon-pad));\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: var(--search-icon-gap);\n\t\tpointer-events: none;\n\t\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\n\t\ttransform: translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));\n\t\ttransition:\n\t\t\ttransform var(--search-anim-duration) var(--search-anim-easing),\n\t\t\tcolor var(--search-anim-duration) var(--search-anim-easing);\n\n\t\t.unified-search-input__field--active & {\n\t\t\ttransform: translateX(0);\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tmax-width: calc(100% - 7 * var(--search-icon-pad));\n\t\t}\n\t}\n\n\t// Placeholder text inside the resting group. Ellipsised, and hidden once typing\n\t// starts so it doesn't overlap the value. Scoped to the label class so the sibling\n\t// magnifier (also rendered as a ) stays visible.\n\t&__label {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\ttransition: opacity var(--search-anim-duration) var(--search-anim-easing);\n\t}\n\n\t&__resting--filled &__label {\n\t\topacity: 0;\n\t}\n\n\t// The material-design icon is inline (baseline-aligned), which leaves a\n\t// descender gap and makes the glyph sit high even when its box is centred.\n\t// Render it as a block so it fills its box, then nudge 1px down to sit on the\n\t// text's optical centre (a geometrically centred glyph reads slightly high).\n\t&__resting :deep(.material-design-icon__svg) {\n\t\tdisplay: block;\n\t\ttransform: translateY(1px);\n\t}\n\n\t// Only visible once active (at rest it's empty and covered by the overlay),\n\t// so it's styled for the active/white surface throughout.\n\t&__input {\n\t\tflex: 1;\n\t\tmin-width: 0;\n\t\theight: 100%;\n\t\tmargin: 0;\n\t\t// Leading space so the placeholder/value starts one gap past the magnifier,\n\t\t// matching the resting group exactly. Trailing padding mirrors the leading pad.\n\t\tpadding-inline: calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);\n\t\t// Opt out of NC's global input chrome (core/css/inputs.scss adds a border,\n\t\t// radius and focus box-shadow to any text input not in its exclusion list).\n\t\t// !important because that global focus rule outweighs a scoped class.\n\t\tborder: none !important;\n\t\tborder-radius: 0 !important;\n\t\tbox-shadow: none !important;\n\t\tbackground-color: transparent;\n\t\tcolor: var(--color-main-text);\n\t\tfont-size: var(--default-font-size);\n\n\t\t&::placeholder {\n\t\t\topacity: 1;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\toutline: none;\n\t\t}\n\t}\n\n\t&__clear,\n\t&__filter {\n\t\tflex-shrink: 0;\n\t\tmargin-inline-end: 2px;\n\t}\n\n\t&__loading {\n\t\tflex-shrink: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmargin-inline: var(--default-grid-baseline);\n\t}\n\n\t// Pinned to the trailing edge, overlaid on the input (pointer-events: none so a\n\t// click there still focuses the field).\n\t&__shortcut {\n\t\tposition: absolute;\n\t\tinset-inline-end: var(--default-grid-baseline);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tdisplay: flex;\n\t\tpointer-events: none;\n\n\t\t// On a narrow field the centred placeholder runs under the hint, so drop it\n\t\t// below a usable width. Keyed to the field's own inline-size (its container),\n\t\t// not the viewport, so it holds however crowded the header gets.\n\t\t@container (max-width: 400px) {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t:deep(kbd) {\n\t\t\tmin-width: 12px;\n\t\t\theight: 12px;\n\t\t\tpadding-inline: 5px;\n\t\t\tborder: 1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);\n\t\t\tborder-block-end-width: 2px;\n\t\t\tborder-radius: var(--border-radius-small, 4px);\n\t\t\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\n\t\t\tfont-size: 13px;\n\t\t}\n\t}\n}\n\n// On dark themes the plain overlay is nearly invisible on the header, so tint\n// the resting background with the primary colour instead.\n[data-theme-dark] .unified-search-input__field,\n[data-theme-dark-highcontrast] .unified-search-input__field {\n\t--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);\n\t--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent);\n}\n\n// translateX is physical, so flip the resting slide under RTL to keep it moving toward\n// the leading (right) edge. :dir(rtl) tracks the computed direction, so it applies whether\n// RTL comes from the body dir attribute or a direction style (an [dir=rtl] attribute\n// selector would miss the latter).\n.unified-search-input__resting:dir(rtl) {\n\t--slide-sign: -1;\n}\n\n// Respect reduced-motion: keep the end states but drop the slide/fade so nothing\n// animates on focus.\n@media (prefers-reduced-motion: reduce) {\n\t.unified-search-input__resting,\n\t.unified-search-input__resting span {\n\t\ttransition: none;\n\t}\n}\n\n// Mobile: NcHeaderButton styling to match the other header items\n.unified-search-input--mobile :deep(.header-menu) {\n\theight: var(--default-clickable-area);\n}\n\n.unified-search-input--mobile :deep(.header-menu__trigger) {\n\t--button-size: var(--default-clickable-area) !important;\n\theight: var(--default-clickable-area) !important;\n}\n\n.unified-search-input--mobile :deep(.button-vue) {\n\t--color-main-text: var(--color-background-plain-text);\n\tcolor: var(--color-background-plain-text);\n\tborder-radius: var(--border-radius-element) !important;\n\n\t&:hover:not(:disabled) {\n\t\tbackground-color: rgba(0, 0, 0, 0.1) !important;\n\t}\n\n\t&:active:not(:disabled) {\n\t\tbackground-color: rgba(0, 0, 0, 0.15) !important;\n\t}\n\n\t&:focus-visible {\n\t\tbackground-color: rgba(0, 0, 0, 0.1) !important;\n\t\toutline: none !important;\n\t\tbox-shadow: inset 0 0 0 2px var(--color-background-plain-text) !important;\n\t}\n}\n"],sourceRoot:""}]);const o=s},89226(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".local-unified-search[data-v-2b577e50]{--local-search-width: min(calc(250px + var(--dfb017de)), 95vw);box-sizing:border-box;position:relative;height:var(--header-height);width:var(--local-search-width);display:flex;align-items:center;z-index:10;padding-inline:var(--border-width-input-focused);overflow:hidden;inset-inline-end:0}.local-unified-search .local-unified-search__global-search[data-v-2b577e50]{position:absolute;inset-inline-end:var(--default-clickable-area)}.local-unified-search .local-unified-search__input[data-v-2b577e50]{box-sizing:border-box;margin:0;width:var(--local-search-width)}.local-unified-search .local-unified-search__input[data-v-2b577e50] input{padding-inline-end:calc(var(--dfb017de) + var(--default-clickable-area))}.animated-width[data-v-2b577e50]{transition:width var(--animation-quick) linear}.v-leave-active[data-v-2b577e50]{position:absolute !important}.v-enter.local-unified-search[data-v-2b577e50],.v-leave-to.local-unified-search[data-v-2b577e50]{--local-search-width: var(--clickable-area-large)}@media screen and (max-width: 500px){.local-unified-search.local-unified-search--open[data-v-2b577e50]{--local-search-width: 100vw;padding-inline:var(--default-grid-baseline)}.unified-search-menu:has(.local-unified-search--open){position:absolute !important;inset-inline:0}.header-end:has(.local-unified-search--open) > :not(.unified-search-menu){display:none}}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue"],names:[],mappings:"AACA,uCACC,8DAAA,CACA,qBAAA,CACA,iBAAA,CACA,2BAAA,CACA,+BAAA,CACA,YAAA,CACA,kBAAA,CAEA,UAAA,CAEA,gDAAA,CAEA,eAAA,CAEA,kBAAA,CAEA,4EACC,iBAAA,CACA,8CAAA,CAGD,oEACC,qBAAA,CAEA,QAAA,CACA,+BAAA,CAIA,0EAEC,wEAAA,CAKH,iCACC,8CAAA,CAKD,iCACC,4BAAA,CAKA,iGAEC,iDAAA,CAIF,qCACC,kEAEC,2BAAA,CACA,2CAAA,CAID,sDACC,4BAAA,CACA,cAAA,CAGD,0EACC,YAAA,CAAA",sourcesContent:['\n.local-unified-search {\n\t--local-search-width: min(calc(250px + v-bind(\'searchGlobalButtonCSSWidth\')), 95vw);\n\tbox-sizing: border-box;\n\tposition: relative;\n\theight: var(--header-height);\n\twidth: var(--local-search-width);\n\tdisplay: flex;\n\talign-items: center;\n\t// Ensure it overlays the other entries\n\tz-index: 10;\n\t// add some padding for the focus visible outline\n\tpadding-inline: var(--border-width-input-focused);\n\t// hide the overflow - needed for the transition\n\toverflow: hidden;\n\t// Ensure the position is fixed also during "position: absolut" (transition)\n\tinset-inline-end: 0;\n\n\t#{&} &__global-search {\n\t\tposition: absolute;\n\t\tinset-inline-end: var(--default-clickable-area);\n\t}\n\n\t#{&} &__input {\n\t\tbox-sizing: border-box;\n\t\t// override some nextcloud-vue styles\n\t\tmargin: 0;\n\t\twidth: var(--local-search-width);\n\n\t\t// Fixup the spacing so we can fit in the "search globally" button\n\t\t// this can break at any time the component library changes\n\t\t:deep(input) {\n\t\t\t// search global width + close button width\n\t\t\tpadding-inline-end: calc(v-bind(\'searchGlobalButtonCSSWidth\') + var(--default-clickable-area));\n\t\t}\n\t}\n}\n\n.animated-width {\n\ttransition: width var(--animation-quick) linear;\n}\n\n// Make the position absolute during the transition\n// this is needed to "hide" the button behind it\n.v-leave-active {\n\tposition: absolute !important;\n}\n\n.v-enter,\n.v-leave-to {\n\t&.local-unified-search {\n\t\t// Start with only the overlay button\n\t\t--local-search-width: var(--clickable-area-large);\n\t}\n}\n\n@media screen and (max-width: 500px) {\n\t.local-unified-search.local-unified-search--open {\n\t\t// 100% but still show the menu toggle on the very right\n\t\t--local-search-width: 100vw;\n\t\tpadding-inline: var(--default-grid-baseline);\n\t}\n\n\t// when open we need to position it absolute to allow overlay the full bar\n\t:global(.unified-search-menu:has(.local-unified-search--open)) {\n\t\tposition: absolute !important;\n\t\tinset-inline: 0;\n\t}\n\t// Hide all other entries, especially the user menu as it might leak pixels\n\t:global(.header-end:has(.local-unified-search--open) > :not(.unified-search-menu)) {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const o=s},15131(t,e,n){n.d(e,{A:()=>A});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r),o=n(4417),l=n.n(o),c=new URL(n(59279),n.b),d=s()(a()),u=l()(c);d.push([t.id,`.unified-search-modal-root[data-v-39a656a6]{position:absolute;inset-block-start:100%;inset-inline:0;z-index:50 !important;margin-block-start:6px;display:flex;justify-content:center}.unified-search-modal__scrim[data-v-39a656a6]{position:fixed;inset:0;z-index:0;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color), 0.5)}.unified-search-modal__container[data-v-39a656a6]{position:relative;z-index:1;display:flex;flex-direction:column;flex-shrink:0;width:600px;max-width:90vw;max-height:calc(90vh - var(--header-height));border-radius:var(--border-radius-container-large, var(--border-radius-rounded));overflow:hidden;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px rgba(0,0,0,.2);transition:transform 240ms cubic-bezier(0.22, 1, 0.36, 1)}@media only screen and ((max-width: 512px) or (max-height: 400px)){.unified-search-modal-root[data-v-39a656a6]{position:fixed;inset-block-start:var(--header-height);inset-inline:0;inset-block-end:0;margin-block-start:0}.unified-search-modal__container[data-v-39a656a6]{width:100%;max-width:initial;height:100%;max-height:initial;border-radius:0}}.unified-search-modal-enter-active[data-v-39a656a6],.unified-search-modal-leave-active[data-v-39a656a6]{transition:opacity 250ms}.unified-search-modal-enter[data-v-39a656a6],.unified-search-modal-leave-to[data-v-39a656a6]{opacity:0}.unified-search-modal-enter .unified-search-modal__container[data-v-39a656a6],.unified-search-modal-leave-to .unified-search-modal__container[data-v-39a656a6]{transform:translateY(-6px)}@media(prefers-reduced-motion: reduce){.unified-search-modal__container[data-v-39a656a6]{transition:none}.unified-search-modal-enter .unified-search-modal__container[data-v-39a656a6],.unified-search-modal-leave-to .unified-search-modal__container[data-v-39a656a6]{transform:none}}.unified-search-modal__header[data-v-39a656a6]{position:relative;display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);padding-inline:calc(var(--default-grid-baseline)*4);padding-block:calc(var(--default-grid-baseline)*4) 0}.unified-search-modal__header--has-results[data-v-39a656a6]{padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__header--has-results[data-v-39a656a6]::after{content:"";position:absolute;inset-inline:calc(var(--default-grid-baseline)*4);inset-block-end:0;border-block-end:1px solid var(--color-border)}.unified-search-modal__mobile-input[data-v-39a656a6]{display:flex;align-items:center;gap:4px}.unified-search-modal__mobile-input[data-v-39a656a6] .input-field{flex:1 1 auto}.unified-search-modal__filters[data-v-39a656a6]{display:flex;flex-wrap:wrap;gap:4px;justify-content:start}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6],.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6],.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6]{flex:1 1 0;min-width:0}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .v-popper{display:block;width:100%}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .button-vue__wrapper{justify-content:center}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .button-vue{position:relative;width:100%;padding-inline:calc(var(--default-grid-baseline)*6);border-radius:var(--border-radius-element)}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .button-vue::after{content:"";position:absolute;inset-inline-end:calc(var(--default-grid-baseline)*2);inset-block:0;margin-block:auto;width:16px;height:16px;background-color:currentColor;mask-image:url(${u});mask-repeat:no-repeat;mask-position:center;mask-size:contain}.unified-search-modal__filters-applied[data-v-39a656a6]{display:flex;flex-wrap:wrap}.unified-search-modal__no-content[data-v-39a656a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--default-grid-baseline)*2);min-height:200px;padding-inline:calc(var(--default-grid-baseline)*4);padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__detail-header[data-v-39a656a6]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--default-grid-baseline)*2);position:sticky;top:0;z-index:1;background-color:var(--color-main-background);padding-block:calc(var(--default-grid-baseline)*3) calc(var(--default-grid-baseline)*2);border-block-end:1px solid var(--color-border)}.unified-search-modal__detail-back[data-v-39a656a6]{justify-self:start}.unified-search-modal__detail-title[data-v-39a656a6]{font-size:var(--default-font-size);font-weight:var(--font-weight-heading);grid-column:2;margin:0;margin-block-start:-3px;align-self:stretch;display:flex;align-items:center;justify-content:center}.unified-search-modal__connected-services[data-v-39a656a6]{display:flex;flex-wrap:wrap;width:100%;margin-block-start:calc(var(--default-grid-baseline)*3)}.unified-search-modal__rtl-icon[data-v-39a656a6]:dir(rtl){transform:scaleX(-1)}.unified-search-modal__results[data-v-39a656a6]{flex:1 1 auto;min-height:0;overflow:hidden auto;padding-inline:calc(var(--default-grid-baseline)*4);padding-block:0 calc(var(--default-grid-baseline)*4)}.unified-search-modal__results .result-title[data-v-39a656a6]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);margin-block:14px 4px;margin-inline-start:calc(var(--default-grid-baseline)*2)}.unified-search-modal__results .result-title--more[data-v-39a656a6]{margin-block:calc(var(--default-grid-baseline)*2) var(--default-grid-baseline)}.unified-search-modal__results .result-title--more[data-v-39a656a6] .button-vue__text{font-size:var(--default-font-size);color:var(--color-main-text)}.unified-search-modal__results .result-title--more[data-v-39a656a6] .button-vue__icon{color:var(--color-main-text)}.unified-search-modal__results .result-footer[data-v-39a656a6]{justify-content:space-between;align-items:center;display:flex}.unified-search-modal__results .result--unfiltered[data-v-39a656a6]{opacity:.7}.unified-search-modal__unfiltered-header[data-v-39a656a6]{display:flex;flex-direction:column;gap:2px;margin-block:16px 8px;padding-block:12px 0}.result-group+.result-group>.unified-search-modal__unfiltered-header[data-v-39a656a6]{border-block-start:1px solid var(--color-border)}.unified-search-modal__unfiltered-label[data-v-39a656a6]{font-weight:var(--font-weight-heading);color:var(--color-text-maxcontrast)}.filter-button__icon[data-v-39a656a6]{height:20px;width:20px;object-fit:contain;filter:var(--background-invert-if-bright);padding:11px}@media only screen and (max-height: 400px){.unified-search-modal__results[data-v-39a656a6]{overflow:unset}}`,"",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/UnifiedSearchModal.vue"],names:[],mappings:"AAKA,4CACC,iBAAA,CACA,sBAAA,CACA,cAAA,CAGA,qBAAA,CACA,sBAAA,CACA,YAAA,CACA,sBAAA,CAKD,8CACC,cAAA,CACA,OAAA,CACA,SAAA,CACA,yBAAA,CACA,iDAAA,CAKD,kDACC,iBAAA,CACA,SAAA,CACA,YAAA,CACA,qBAAA,CAGA,aAAA,CACA,WAAA,CACA,cAAA,CAEA,4CAAA,CACA,gFAAA,CAEA,eAAA,CACA,6CAAA,CACA,4BAAA,CACA,kCAAA,CAGA,yDAAA,CAID,mEACC,4CAGC,cAAA,CACA,sCAAA,CACA,cAAA,CACA,iBAAA,CACA,oBAAA,CAGD,kDACC,UAAA,CACA,iBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CAAA,CAKF,wGAEC,wBAAA,CAGD,6FAEC,SAAA,CAGD,+JAEC,0BAAA,CAKD,uCACC,kDACC,eAAA,CAGD,+JAEC,cAAA,CAAA,CAKD,+CAKC,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mDAAA,CAEA,oDAAA,CAIA,4DACC,sDAAA,CAEA,mEACC,UAAA,CACA,iBAAA,CACA,iDAAA,CACA,iBAAA,CACA,8CAAA,CAKH,qDACC,YAAA,CACA,kBAAA,CACA,OAAA,CAEA,kEACC,aAAA,CAIF,gDACC,YAAA,CACA,cAAA,CACA,OAAA,CACA,qBAAA,CAIA,mQAGC,UAAA,CACA,WAAA,CAEA,iSACC,aAAA,CACA,UAAA,CAID,kUACC,sBAAA,CAID,uSACC,iBAAA,CACA,UAAA,CACA,mDAAA,CACA,0CAAA,CAEA,4TACC,UAAA,CACA,iBAAA,CACA,qDAAA,CACA,aAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,6BAAA,CACA,kDAAA,CACA,qBAAA,CACA,oBAAA,CACA,iBAAA,CAMJ,wDACC,YAAA,CACA,cAAA,CAGD,mDACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,wCAAA,CAEA,gBAAA,CAEA,mDAAA,CACA,sDAAA,CAID,sDAEC,YAAA,CACA,kCAAA,CACA,kBAAA,CACA,wCAAA,CAGA,eAAA,CACA,KAAA,CACA,SAAA,CACA,6CAAA,CACA,uFAAA,CACA,8CAAA,CAGD,oDACC,kBAAA,CAGD,qDACC,kCAAA,CACA,sCAAA,CACA,aAAA,CACA,QAAA,CACA,uBAAA,CAGA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAID,2DACC,YAAA,CACA,cAAA,CAGA,UAAA,CACA,uDAAA,CAKD,0DACC,oBAAA,CAGD,gDAEC,aAAA,CACA,YAAA,CACA,oBAAA,CAEA,mDAAA,CACA,oDAAA,CAGC,8DACC,mCAAA,CACA,kCAAA,CAEA,qBAAA,CACA,wDAAA,CAKD,oEACC,8EAAA,CAEA,sFACC,kCAAA,CACA,4BAAA,CAGD,sFACC,4BAAA,CAIF,+DACC,6BAAA,CACA,kBAAA,CACA,YAAA,CAGD,oEACC,UAAA,CAMH,0DACC,YAAA,CACA,qBAAA,CACA,OAAA,CACA,qBAAA,CACA,oBAAA,CAKA,sFACC,gDAAA,CAIF,yDACC,sCAAA,CACA,mCAAA,CAIF,sCACC,WAAA,CACA,UAAA,CACA,kBAAA,CACA,yCAAA,CACA,YAAA,CAID,2CACC,gDACC,cAAA,CAAA",sourcesContent:["\n\n// Anchor the popover under the header input (the .unified-search-menu parent is\n// the positioning context) instead of centering it in the viewport. The scrim is\n// fixed separately so it still dims the whole page.\n.unified-search-modal-root {\n\tposition: absolute;\n\tinset-block-start: 100%;\n\tinset-inline: 0;\n\t// One below the header input (z-index: 51) and above the page. !important wins\n\t// the stacking cascade inside the themed #header.\n\tz-index: 50 !important;\n\tmargin-block-start: 6px;\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n// Backdrop, mirrors NcModal's .modal-mask. Fixed so it covers the whole viewport\n// regardless of the anchored root.\n.unified-search-modal__scrim {\n\tposition: fixed;\n\tinset: 0;\n\tz-index: 0;\n\t--backdrop-color: 0, 0, 0;\n\tbackground-color: rgba(var(--backdrop-color), 0.5);\n}\n\n// Dialog panel: NcModal's \"normal\" chrome, but width-matched to the header input\n// and anchored under it, growing downward and scrolling internally when tall.\n.unified-search-modal__container {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\t// Match the previous unified-search modal (NcModal \"normal\" size). flex-shrink: 0\n\t// stops the flex parent from collapsing it below 600px when the menu is narrower.\n\tflex-shrink: 0;\n\twidth: 600px;\n\tmax-width: 90vw;\n\t// Leave ~10vh below the panel so it does not reach the bottom of the page\n\tmax-height: calc(90vh - var(--header-height));\n\tborder-radius: var(--border-radius-container-large, var(--border-radius-rounded));\n\t// Clip the header/results to the rounded corners\n\toverflow: hidden;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n\tbox-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n\t// The panel slides down into place; the enter/leave classes set the start offset.\n\t// Same easeOutQuart curve as the header input so the whole search UI moves in step.\n\ttransition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n// Fullscreen on small viewports, mirrors NcModal's responsive breakpoint\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n\t.unified-search-modal-root {\n\t\t// Fill the viewport below the header bar, leaving it visible and interactive\n\t\t// (matches the previous unified search and the rest of the mobile chrome).\n\t\tposition: fixed;\n\t\tinset-block-start: var(--header-height);\n\t\tinset-inline: 0;\n\t\tinset-block-end: 0;\n\t\tmargin-block-start: 0;\n\t}\n\n\t.unified-search-modal__container {\n\t\twidth: 100%;\n\t\tmax-width: initial;\n\t\theight: 100%;\n\t\tmax-height: initial;\n\t\tborder-radius: 0;\n\t}\n}\n\n// Open/close animation: the backdrop fades while the panel slides down from the top\n.unified-search-modal-enter-active,\n.unified-search-modal-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.unified-search-modal-enter,\n.unified-search-modal-leave-to {\n\topacity: 0;\n}\n\n.unified-search-modal-enter .unified-search-modal__container,\n.unified-search-modal-leave-to .unified-search-modal__container {\n\ttransform: translateY(-6px);\n}\n\n// Respect reduced-motion: keep the backdrop cross-fade (opacity is not motion) but\n// drop the panel slide so nothing moves on open/close.\n@media (prefers-reduced-motion: reduce) {\n\t.unified-search-modal__container {\n\t\ttransition: none;\n\t}\n\n\t.unified-search-modal-enter .unified-search-modal__container,\n\t.unified-search-modal-leave-to .unified-search-modal__container {\n\t\ttransform: none;\n\t}\n}\n\n.unified-search-modal {\n\t&__header {\n\t\t// Owns all its own spacing: the inline inset, the gap above the first row, and the\n\t\t// gap between stacked rows (mobile input, filters, applied chips). position:\n\t\t// relative only anchors the divider below; the header never scrolls (the results\n\t\t// list scrolls in its own box), so it needs no sticky offset.\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4);\n\t\t// Trim the bottom when the filter row is all there is; results add it back below.\n\t\tpadding-block: calc(var(--default-grid-baseline) * 4) 0;\n\n\t\t// With results below, restore the full bottom inset above the divider (which aligns\n\t\t// to the content edge).\n\t\t&--has-results {\n\t\t\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\n\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline: calc(var(--default-grid-baseline) * 4);\n\t\t\t\tinset-block-end: 0;\n\t\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t&__mobile-input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\n\t\t:deep(.input-field) {\n\t\t\tflex: 1 1 auto;\n\t\t}\n\t}\n\n\t&__filters {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 4px;\n\t\tjustify-content: start;\n\n\t\t// The three category triggers split the row into thirds; any extra controls\n\t\t// (local search) keep their size and wrap below.\n\t\t> [data-cy-unified-search-filter=\"places\"],\n\t\t> [data-cy-unified-search-filter=\"date\"],\n\t\t> [data-cy-unified-search-filter=\"people\"] {\n\t\t\tflex: 1 1 0;\n\t\t\tmin-width: 0;\n\n\t\t\t:deep(.v-popper) {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t// Centre [icon] label; the chevron is pinned to the trailing edge below.\n\t\t\t:deep(.button-vue__wrapper) {\n\t\t\t\tjustify-content: center;\n\t\t\t}\n\n\t\t\t// NcActions exposes no dropdown chevron, so paint one at the trailing edge.\n\t\t\t:deep(.button-vue) {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding-inline: calc(var(--default-grid-baseline) * 6);\n\t\t\t\tborder-radius: var(--border-radius-element);\n\n\t\t\t\t&::after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tinset-inline-end: calc(var(--default-grid-baseline) * 2);\n\t\t\t\t\tinset-block: 0;\n\t\t\t\t\tmargin-block: auto;\n\t\t\t\t\twidth: 16px;\n\t\t\t\t\theight: 16px;\n\t\t\t\t\tbackground-color: currentColor;\n\t\t\t\t\tmask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E\");\n\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\tmask-position: center;\n\t\t\t\t\tmask-size: contain;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__filters-applied {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\t&__no-content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\t// min-height (not fixed) so the panel grows to keep the button inside, not spilling past the edge.\n\t\tmin-height: 200px;\n\t\t// Match the results container's inset so the button lines up, not flush to the edges.\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4);\n\t\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\n\t}\n\n\t// Detail-view chrome: the back control sits above the category's heading + list.\n\t&__detail-header {\n\t\t// Three tracks: \"Back\" at the start, title centred, empty end track to balance it.\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr auto 1fr;\n\t\talign-items: center;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\t// Sticky at the top of the scrolling results. Background hides rows underneath; padding\n\t\t// (not margin) stops bleed-through above.\n\t\tposition: sticky;\n\t\ttop: 0;\n\t\tz-index: 1;\n\t\tbackground-color: var(--color-main-background);\n\t\tpadding-block: calc(var(--default-grid-baseline) * 3) calc(var(--default-grid-baseline) * 2);\n\t\tborder-block-end: 1px solid var(--color-border);\n\t}\n\n\t&__detail-back {\n\t\tjustify-self: start;\n\t}\n\n\t&__detail-title {\n\t\tfont-size: var(--default-font-size);\n\t\tfont-weight: var(--font-weight-heading);\n\t\tgrid-column: 2;\n\t\tmargin: 0;\n\t\tmargin-block-start: -3px;\n\t\t// Centre the text the same way the Back button centres its label: stretch to the row\n\t\t// height and flex-centre, instead of a line-height that lands the ink a few px off.\n\t\talign-self: stretch;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n\n\t// End-of-list (and empty-state) connected-services opt-in.\n\t&__connected-services {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\t// Stretch to panel width so the wide button fills it (the empty-state's centred column\n\t\t// would otherwise shrink it to content width).\n\t\twidth: 100%;\n\t\tmargin-block-start: calc(var(--default-grid-baseline) * 3);\n\t}\n\n\t// Directional glyphs (back arrow, more-from chevron) point the other way in RTL.\n\t// :dir(rtl) tracks the computed direction, unlike an [dir=rtl] attribute selector.\n\t&__rtl-icon:dir(rtl) {\n\t\ttransform: scaleX(-1);\n\t}\n\n\t&__results {\n\t\t// Take the remaining panel height and scroll internally (container has a max-height)\n\t\tflex: 1 1 auto;\n\t\tmin-height: 0;\n\t\toverflow: hidden auto;\n\t\t// Adjust padding to match container but keep the scrollbar on the very end\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4);\n\t\tpadding-block: 0 calc(var(--default-grid-baseline) * 4);\n\n\t\t.result {\n\t\t\t&-title {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t// 14px is not a grid multiple; kept raw rather than mixing units in one shorthand.\n\t\t\t\tmargin-block: 14px 4px;\n\t\t\t\tmargin-inline-start: calc(var(--default-grid-baseline) * 2);\n\t\t\t}\n\n\t\t\t// The overflow heading is a real button; match the plain title's size and colour,\n\t\t\t// but leave it NcButton's own --font-weight-element weight.\n\t\t\t&-title--more {\n\t\t\t\tmargin-block: calc(var(--default-grid-baseline) * 2) var(--default-grid-baseline);\n\n\t\t\t\t:deep(.button-vue__text) {\n\t\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t}\n\n\t\t\t\t:deep(.button-vue__icon) {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-footer {\n\t\t\t\tjustify-content: space-between;\n\t\t\t\talign-items: center;\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\n\t\t\t&--unfiltered {\n\t\t\t\topacity: 0.7;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t&__unfiltered-header {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 2px;\n\t\tmargin-block: 16px 8px;\n\t\tpadding-block: 12px 0;\n\n\t\t// Divide the partial matches from the results above, but only when some precede\n\t\t// them: when they lead the list this rule lands just under the header's own\n\t\t// divider, and the two read as one double line.\n\t\t.result-group + .result-group > & {\n\t\t\tborder-block-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__unfiltered-label {\n\t\tfont-weight: var(--font-weight-heading);\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n\n.filter-button__icon {\n\theight: 20px;\n\twidth: 20px;\n\tobject-fit: contain;\n\tfilter: var(--background-invert-if-bright);\n\tpadding: 11px; // align with text to fit at least 44px\n}\n\n// Ensure modal is accessible on small devices\n@media only screen and (max-height: 400px) {\n\t.unified-search-modal__results {\n\t\toverflow: unset;\n\t}\n}\n"],sourceRoot:""}]);const A=d},16968(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".unified-search-menu[data-v-44547071]{position:relative;display:flex;align-items:center;justify-content:center}","",{version:3,sources:["webpack://./core/src/views/UnifiedSearch.vue"],names:[],mappings:"AAEA,sCAEC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n// this is needed to allow us overriding component styles (focus-visible)\n.unified-search-menu {\n\t// Positioning context so the results popover can anchor under the input\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n"],sourceRoot:""}]);const o=s},59279(t){t.exports="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z%27/%3E%3C/svg%3E"}},n={};function i(t){var a=n[t];if(void 0!==a)return a.exports;var r=n[t]={id:t,loaded:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=e,t=[],i.O=(e,n,a,r)=>{if(!n){var s=1/0;for(d=0;d=r)&&Object.keys(i.O).every(t=>i.O[t](n[l]))?n.splice(l--,1):(o=!1,r0&&t[d-1][2]>r;d--)t[d]=t[d-1];t[d]=[n,a,r]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.e=()=>Promise.resolve(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=6776,(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var t={6776:0};i.O.j=e=>0===t[e];var e=(e,n)=>{var a,r,[s,o,l]=n,c=0;if(s.some(e=>0!==t[e])){for(a in o)i.o(o,a)&&(i.m[a]=o[a]);if(l)var d=l(i)}for(e&&e(n);ci(6830));a=i.O(a)})(); -//# sourceMappingURL=core-unified-search.js.map?v=e80536f37978a82ea622 \ No newline at end of file +(()=>{"use strict";var t,e={87444(t,e,n){var i=n(21777),a=n(53334),r=n(35947),s=n(10810),o=n(85471),l=n(61338),c=n(53429),d=n(97786),u=n(46855),A=n(74095),h=n(39689),p=n(52372),f=n(88289),m=n(66001);const C={name:"FilterVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var v=n(14486);const g=(0,v.A)(C,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon filter-variant-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,b={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},y=(0,v.A)(b,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon magnify-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,_=(0,o.pM)({__name:"UnifiedSearchInput",props:{expanded:{type:Boolean},activeDescendantId:null,query:null,loading:{type:Boolean},filtersRevealed:{type:Boolean}},setup(t,{expose:e,emit:n}){const i=t,r=(0,c.F)(),s=(0,a.t)("core","Apps, files, messages, and more"),l={ArrowDown:"next",ArrowUp:"prev"},d=(0,o.KR)(),u=(0,o.KR)(),C=(0,o.KR)(!1),v=(0,o.EW)(()=>C.value||i.query.length>0||Boolean(i.expanded)),b=(0,o.EW)(()=>C.value&&0===i.query.length&&!i.filtersRevealed);function _(){u.value?.focus()}return e({focus:_}),{__sfc:!0,props:i,emit:n,isSmallMobile:r,placeholderText:s,resultsContainerId:"unified-search-results",directionByKey:l,fieldRef:d,inputRef:u,isFocused:C,isActive:v,showFunnel:b,onFocusOut:function(t){d.value?.contains(t.relatedTarget)||(C.value=!1)},onMouseDown:function(t){t.target!==u.value&&t.preventDefault()},onInput:function(t){n("update:query",t.target.value)},openFilters:function(){u.value?.focus(),n("open-filters")},clearOrClose:function(){if(i.query.length>0)return n("update:query",""),void u.value?.focus();const t=document.activeElement;t?.blur(),n("close")},onKeyDown:function(t){if(t.isComposing)return;if("Escape"===t.key&&!i.expanded)return void u.value?.blur();if(!i.expanded)return;const e=l[t.key];e?(t.preventDefault(),n("navigate",e)):"Enter"===t.key&&(t.preventDefault(),n("activate"))},focus:_,t:a.t,NcButton:A.A,NcHeaderButton:h.N,NcKbd:p.N,NcLoadingIcon:f.A,IconClose:m.A,IconFilterVariant:g,IconMagnify:y}}});var x=n(85072),w=n.n(x),k=n(97825),S=n.n(k),B=n(77659),D=n.n(B),I=n(55056),F=n.n(I),E=n(10540),M=n.n(E),T=n(41113),z=n.n(T),R=n(14600),O={};O.styleTagTransform=z(),O.setAttributes=F(),O.insert=D().bind(null,"head"),O.domAPI=S(),O.insertStyleElement=M(),w()(R.A,O),R.A&&R.A.locals&&R.A.locals;const q=(0,v.A)(_,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("search",{staticClass:"unified-search-input",class:{"unified-search-input--mobile":n.isSmallMobile}},[n.isSmallMobile?e(n.NcHeaderButton,{attrs:{id:"unified-search-trigger",ariaLabel:n.placeholderText,"aria-haspopup":"dialog","aria-expanded":t.expanded?"true":"false"},on:{click:function(e){return t.$emit("click",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.IconMagnify,{attrs:{size:20}})]},proxy:!0}],null,!1,1795316816)}):e("div",{ref:"fieldRef",staticClass:"unified-search-input__field",class:{"unified-search-input__field--active":n.isActive},on:{focusin:function(t){n.isFocused=!0},focusout:n.onFocusOut,mousedown:n.onMouseDown}},[e("div",{staticClass:"unified-search-input__resting",class:{"unified-search-input__resting--filled":t.query.length>0},attrs:{"aria-hidden":"true"}},[e(n.IconMagnify,{attrs:{size:20}}),t._v(" "),e("span",{staticClass:"unified-search-input__label"},[t._v(t._s(n.placeholderText))])],1),t._v(" "),e("input",{ref:"inputRef",staticClass:"unified-search-input__input",attrs:{type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":t.expanded?"true":"false","aria-controls":t.expanded?n.resultsContainerId:void 0,"aria-activedescendant":t.expanded&&t.activeDescendantId||void 0,"aria-label":n.placeholderText},domProps:{value:t.query},on:{input:n.onInput,keydown:n.onKeyDown}}),t._v(" "),n.showFunnel?e(n.NcButton,{staticClass:"unified-search-input__filter",attrs:{variant:"tertiary-no-background","aria-label":n.t("core","Filters")},on:{click:n.openFilters},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.IconFilterVariant,{attrs:{size:20}})]},proxy:!0}],null,!1,2820714996)}):t._e(),t._v(" "),t.loading?e(n.NcLoadingIcon,{staticClass:"unified-search-input__loading",attrs:{size:20}}):t._e(),t._v(" "),n.isActive?e(n.NcButton,{staticClass:"unified-search-input__clear",attrs:{variant:"tertiary-no-background","aria-label":t.query.length>0?n.t("core","Clear search"):n.t("core","Close search")},on:{click:n.clearOrClose},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.IconClose,{attrs:{size:20}})]},proxy:!0}],null,!1,4099733813)}):t._e(),t._v(" "),n.isActive?t._e():e("span",{staticClass:"unified-search-input__shortcut",attrs:{"aria-hidden":"true"}},[e(n.NcKbd,{attrs:{symbol:"Control"}}),t._v(" "),e(n.NcKbd,{attrs:{symbol:"K"}})],1)],1)],1)},[],!1,null,"59e94aec",null).exports;var N=n(9165),U=n(6695),L=n(16879);const P=(0,o.pM)({__name:"UnifiedSearchLocalSearchBar",props:{query:null,open:{type:Boolean}},emits:["update:open","update:query","global-search"],setup(t,{emit:e}){const n=t;(0,o.$9)((t,e)=>({dfb017de:e.searchGlobalButtonCSSWidth}));const i=(0,o.KR)();(0,o.nT)(()=>{n.open&&i.value&&i.value.focus()});const r=(0,c.al)(),s=(0,o.KR)(),{width:l}=(0,d.Lhy)(s),u=(0,o.EW)(()=>l.value?`${l.value}px`:"var(--default-clickable-area)");return{__sfc:!0,props:n,emit:e,searchInput:i,isMobile:r,searchGlobalButton:s,searchGlobalButtonWidth:l,searchGlobalButtonCSSWidth:u,clearAndCloseSearch:function(){e("update:query",""),e("update:open",!1)},mdiClose:N.hyP,mdiCloudSearchOutline:N.ydM,t:a.Tl,NcButton:A.A,NcIconSvgWrapper:U.A,NcInputField:L.A}}});var G=n(89226),H={};H.styleTagTransform=z(),H.setAttributes=F(),H.insert=D().bind(null,"head"),H.domAPI=S(),H.insertStyleElement=M(),w()(G.A,H),G.A&&G.A.locals&&G.A.locals;const $=(0,v.A)(P,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("Transition",[t.open?e("div",{staticClass:"local-unified-search animated-width",class:{"local-unified-search--open":t.open}},[e(n.NcInputField,{ref:"searchInput",staticClass:"local-unified-search__input animated-width",attrs:{"aria-label":n.t("core","Search in current app"),placeholder:n.t("core","Search in current app"),"show-trailing-button":"","trailing-button-label":n.t("core","Clear search"),"model-value":t.query},on:{"update:value":function(e){return t.$emit("update:query",e)},"trailing-button-click":n.clearAndCloseSearch},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiClose}})]},proxy:!0}],null,!1,3585538455)}),t._v(" "),e(n.NcButton,{ref:"searchGlobalButton",staticClass:"local-unified-search__global-search",attrs:{"aria-label":n.t("core","Search everywhere"),title:n.t("core","Search everywhere"),variant:"tertiary-no-background"},on:{click:function(e){return t.$emit("global-search")}},scopedSlots:t._u([n.isMobile?null:{key:"default",fn:function(){return[t._v("\n\t\t\t\t"+t._s(n.t("core","Search everywhere"))+"\n\t\t\t")]},proxy:!0},{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiCloudSearchOutline}})]},proxy:!0}],null,!0)})],1):t._e()])},[],!1,null,"2b577e50",null).exports;var V=n(81222),K=n(52697),Y=n(57505),Q=n(24764),j=n(41944),W=n(48943),Z=n(82182);const J={name:"AccountMultipleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},X=(0,v.A)(J,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon account-multiple-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,tt={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=(0,v.A)(tt,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon arrow-left-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var nt=n(33691);const it={name:"CalendarBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},at=(0,v.A)(it,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-blank-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var rt=n(26690);const st={name:"FilterIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ot=(0,v.A)(st,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon filter-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,lt={name:"ShapeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ct=(0,v.A)(lt,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon shape-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M11,13.5V21.5H3V13.5H11M9,15.5H5V19.5H9V15.5M12,2L17.5,11H6.5L12,2M12,5.86L10.08,9H13.92L12,5.86M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13M17.5,15A2.5,2.5 0 0,0 15,17.5A2.5,2.5 0 0,0 17.5,20A2.5,2.5 0 0,0 20,17.5A2.5,2.5 0 0,0 17.5,15Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var dt=n(48198),ut=n(83947);const At={name:"CalendarRangeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ht=(0,v.A)(At,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-range-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,pt={name:"CustomDateRangeModal",components:{NcButton:A.A,NcModal:ut.A,CalendarRangeIcon:ht,NcDateTimePicker:dt.A},props:{isOpen:{type:Boolean,required:!0}},data:()=>({dateFilter:{startFrom:null,endAt:null}}),computed:{isModalOpen:{get(){return this.isOpen},set(t){this.$emit("update:is-open",t)}}},methods:{closeModal(){this.isModalOpen=!1},applyCustomRange(){this.$emit("set:custom-date-range",this.dateFilter),this.closeModal()}}};var ft=n(12667),mt={};mt.styleTagTransform=z(),mt.setAttributes=F(),mt.insert=D().bind(null,"head"),mt.domAPI=S(),mt.insertStyleElement=M(),w()(ft.A,mt),ft.A&&ft.A.locals&&ft.A.locals;const Ct=(0,v.A)(pt,function(){var t=this,e=t._self._c;return t.isModalOpen?e("NcModal",{attrs:{id:"unified-search",name:t.t("core","Custom date range"),show:t.isModalOpen,size:"small","clear-view-delay":0,title:t.t("core","Custom date range")},on:{"update:show":function(e){t.isModalOpen=e},close:t.closeModal}},[e("div",{staticClass:"unified-search-custom-date-modal"},[e("h1",[t._v(t._s(t.t("core","Custom date range")))]),t._v(" "),e("div",{staticClass:"unified-search-custom-date-modal__pickers"},[e("NcDateTimePicker",{attrs:{id:"unifiedsearch-custom-date-range-start",label:t.t("core","Pick start date"),type:"date"},model:{value:t.dateFilter.startFrom,callback:function(e){t.$set(t.dateFilter,"startFrom",e)},expression:"dateFilter.startFrom"}}),t._v(" "),e("NcDateTimePicker",{attrs:{id:"unifiedsearch-custom-date-range-end",label:t.t("core","Pick end date"),type:"date"},model:{value:t.dateFilter.endAt,callback:function(e){t.$set(t.dateFilter,"endAt",e)},expression:"dateFilter.endAt"}})],1),t._v(" "),e("div",{staticClass:"unified-search-custom-date-modal__footer"},[e("NcButton",{on:{click:t.applyCustomRange},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CalendarRangeIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,3084610734)},[t._v("\n\t\t\t\t"+t._s(t.t("core","Search in date range"))+"\n\t\t\t\t")])],1)])]):t._e()},[],!1,null,"2907014b",null).exports;var vt=n(54562);const gt={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bt=(0,v.A)(gt,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon alert-circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,yt={name:"SearchableList",components:{IconMagnify:y,IconAlertCircleOutline:bt,NcAvatar:j.A,NcButton:A.A,NcEmptyContent:W.A,NcPopover:vt.A,NcTextField:Z.A},props:{labelText:{type:String,default:"this is a label"},searchList:{type:Array,required:!0},emptyContentText:{type:String,required:!0}},data:()=>({opened:!1,error:!1,searchTerm:""}),computed:{filteredList(){return this.searchList.filter(t=>!this.searchTerm.toLowerCase().length||["displayName"].some(e=>t[e].toLowerCase().includes(this.searchTerm.toLowerCase())))}},methods:{clearSearch(){this.searchTerm=""},setOpened(t){this.opened=t},itemSelected(t){this.$emit("item-selected",t),this.clearSearch(),this.setOpened(!1)},searchTermChanged(t){this.$emit("search-term-change",t)}}};var _t=n(60645),xt={};xt.styleTagTransform=z(),xt.setAttributes=F(),xt.insert=D().bind(null,"head"),xt.domAPI=S(),xt.insertStyleElement=M(),w()(_t.A,xt),_t.A&&_t.A.locals&&_t.A.locals;const wt=(0,v.A)(yt,function(){var t=this,e=t._self._c;return e("NcPopover",{attrs:{shown:t.opened},on:{show:function(e){return t.setOpened(!0)},hide:function(e){return t.setOpened(!1)}},scopedSlots:t._u([{key:"trigger",fn:function(){return[t._t("trigger")]},proxy:!0}],null,!0)},[t._v(" "),e("div",{staticClass:"searchable-list__wrapper"},[e("NcTextField",{attrs:{label:t.labelText,"trailing-button-icon":"close","show-trailing-button":""!==t.searchTerm},on:{"update:value":t.searchTermChanged,"trailing-button-click":t.clearSearch},model:{value:t.searchTerm,callback:function(e){t.searchTerm=e},expression:"searchTerm"}},[e("IconMagnify",{attrs:{size:20}})],1),t._v(" "),t.filteredList.length>0?e("ul",{staticClass:"searchable-list__list"},t._l(t.filteredList,function(n){return e("li",{key:n.id,attrs:{title:n.displayName,role:"button"}},[e("NcButton",{attrs:{alignment:"start",variant:"tertiary",wide:!0},on:{click:function(e){return t.itemSelected(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[n.isUser?e("NcAvatar",{attrs:{user:n.user,"hide-status":""}}):e("NcAvatar",{attrs:{"is-no-user":!0,"display-name":n.displayName,"hide-status":""}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t"+t._s(n.displayName)+"\n\t\t\t\t")])],1)}),0):e("div",{staticClass:"searchable-list__empty-content"},[e("NcEmptyContent",{attrs:{name:t.emptyContentText},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAlertCircleOutline")]},proxy:!0}])})],1)],1)])},[],!1,null,"66bd6570",null).exports,kt={name:"SearchFilterChip",components:{CloseIcon:m.A},props:{text:{type:String,required:!0},pretext:{type:String,required:!0}},emits:["delete"],computed:{removeLabel(){return(0,a.t)("core","Remove filter: {name}",{name:this.text})}},methods:{deleteChip(){this.$emit("delete")}}};var St=n(17830),Bt={};Bt.styleTagTransform=z(),Bt.setAttributes=F(),Bt.insert=D().bind(null,"head"),Bt.domAPI=S(),Bt.insertStyleElement=M(),w()(St.A,Bt),St.A&&St.A.locals&&St.A.locals;const Dt=(0,v.A)(kt,function(){var t=this,e=t._self._c;return e("div",{staticClass:"chip"},[e("span",{staticClass:"icon"},[t._t("icon"),t._v(" "),t.pretext.length?e("span",[t._v(" "+t._s(t.pretext)+" : ")]):t._e()],2),t._v(" "),e("span",{staticClass:"text"},[t._v(t._s(t.text))]),t._v(" "),e("button",{staticClass:"close-button",attrs:{type:"button","aria-label":t.removeLabel},on:{click:t.deleteChip}},[e("CloseIcon",{attrs:{size:18}})],1)])},[],!1,null,"5a4f6249",null).exports;var It=n(1522);const Ft=(0,o.pM)({__name:"AppIcon",props:{icon:null,outlined:{type:Boolean,default:!1}},setup(t){const e=t,n=(0,o.EW)(()=>({"--app-icon-url":`url("${e.icon.replace(/["\\]/g,"\\$&")}")`}));return{__sfc:!0,props:e,iconStyle:n}}});var Et=n(53628),Mt={};Mt.styleTagTransform=z(),Mt.setAttributes=F(),Mt.insert=D().bind(null,"head"),Mt.domAPI=S(),Mt.insertStyleElement=M(),w()(Et.A,Mt),Et.A&&Et.A.locals&&Et.A.locals;const Tt={name:"SearchResult",components:{AppIcon:(0,v.A)(Ft,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("span",{staticClass:"app-icon",class:{"app-icon--outlined":t.outlined}},[t.icon?e("span",{staticClass:"app-icon__img",style:n.iconStyle,attrs:{"aria-hidden":"true"}}):t._e(),t._v(" "),t._t("default")],2)},[],!1,null,"42bb03fc",null).exports,NcListItem:It.A},props:{thumbnailUrl:{type:String,default:null},title:{type:String,required:!0},subline:{type:String,default:null},resourceUrl:{type:String,default:null},icon:{type:String,default:""},rounded:{type:Boolean,default:!1},query:{type:String,default:""},elementId:{type:String,default:void 0},active:{type:Boolean,default:!1}},data:()=>({thumbnailHasError:!1}),computed:{hasThumbnail(){return this.isValidIconOrPreviewUrl(this.thumbnailUrl)&&!this.thumbnailHasError},iconIsUrl(){return this.isValidIconOrPreviewUrl(this.icon)},isAppIcon(){return this.rounded&&this.iconIsUrl&&!this.hasThumbnail}},watch:{thumbnailUrl(){this.thumbnailHasError=!1}},methods:{isValidIconOrPreviewUrl:t=>/^https?:\/\//.test(t)||t.startsWith("/"),thumbnailErrorHandler(){this.thumbnailHasError=!0}}};var zt=n(65719),Rt={};Rt.styleTagTransform=z(),Rt.setAttributes=F(),Rt.insert=D().bind(null,"head"),Rt.domAPI=S(),Rt.insertStyleElement=M(),w()(zt.A,Rt),zt.A&&zt.A.locals&&zt.A.locals;const Ot=(0,v.A)(Tt,function(){var t=this,e=t._self._c;return e("NcListItem",{staticClass:"result-item",attrs:{id:t.elementId,name:t.title,bold:!1,active:t.active,href:t.resourceUrl,target:"_self"},scopedSlots:t._u([{key:"icon",fn:function(){return[t.isAppIcon?e("AppIcon",{staticClass:"result-item__app-icon",attrs:{icon:t.icon}}):e("div",{staticClass:"result-item__icon",class:{"result-item__icon--rounded":t.rounded,"result-item__icon--with-thumbnail":t.hasThumbnail,[t.icon]:!t.iconIsUrl&&!t.hasThumbnail},attrs:{"aria-hidden":"true"}},[t.hasThumbnail?e("img",{attrs:{src:t.thumbnailUrl},on:{error:t.thumbnailErrorHandler}}):t.iconIsUrl?e("img",{staticClass:"result-item__icon-img",attrs:{src:t.icon,alt:"","aria-hidden":"true"}}):t._e()])]},proxy:!0},{key:"subname",fn:function(){return[t._v("\n\t\t"+t._s(t.subline)+"\n\t")]},proxy:!0}])})},[],!1,null,"516c3939",null).exports;var qt=n(44368),Nt=n(63814);const Ut=null===(Lt=(0,i.HW)())?(0,r.YK)().setApp("core").build():(0,r.YK)().setApp("core").setUid(Lt.uid).build();var Lt;const Pt=(0,r.YK)().setApp("unified-search").detectUser().build();async function Gt(){try{const{data:t}=await qt.Ay.get((0,Nt.KT)("search/providers"),{params:{from:window.location.pathname.replace("/index.php","")+window.location.search}});if("ocs"in t&&"data"in t.ocs&&Array.isArray(t.ocs.data)&&t.ocs.data.length>0)return t.ocs.data}catch(t){Ut.error(t)}return[]}function Ht({type:t,query:e,cursor:n,since:i,until:a,limit:r,person:s,extraQueries:o={}}){const l=qt.Ay.CancelToken.source();return{request:async()=>qt.Ay.get((0,Nt.KT)("search/providers/{type}/search",{type:t}),{cancelToken:l.token,params:{term:e,cursor:n,since:i,until:a,limit:r,person:s,from:window.location.pathname.replace("/index.php","")+window.location.search,...o}}),cancel:l.cancel}}async function $t({searchTerm:t}){const{data:{contacts:e}}=await qt.Ay.post((0,Nt.Jv)("/contactsmenu/contacts"),{filter:t});if(!t){let t=(0,i.HW)();return t={id:t.uid,fullName:t.displayName,emailAddresses:[]},e.unshift(t),e}return e}function Vt(t,e,n){return(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class Kt{constructor(t){Vt(this,"onChange",void 0),Vt(this,"query",""),Vt(this,"params",{}),Vt(this,"searchStates",{}),Vt(this,"revealOrder",[]),Vt(this,"revealWindowOpen",!1),Vt(this,"searchGeneration",0),Vt(this,"revealTimer",null),Vt(this,"pendingCancels",[]),this.onChange=t}async search(t,e,n){this.cancelPendingRequests(),this.searchStates={},this.revealOrder=[],this.searchGeneration++;const i=this.searchGeneration;this.query=t,this.params=n||{},this.startRevealTimer(),await Promise.allSettled(e.map(t=>this.searchCategory(t,i,e)))}async loadMore(t){const e=this.searchGeneration,n={...this.searchStates[t]};if(!n.hasMore||"loaded"!==n.status)return;this.patchStates({[t]:{status:"loading",loadMoreFailed:!1}});const{request:i,cancel:a}=Ht({type:t,query:this.query,cursor:n.cursor,limit:10,...this.params[t]});this.pendingCancels.push(a);try{const a=await i();if(this.searchGeneration!==e)return;const{entries:r,cursor:s,isPaginated:o}=a.data.ocs.data,l=0===r.length;this.patchStates({[t]:{entries:[...n.entries,...r],cursor:s,hasMore:!l&&this.hasMorePages(o,s),status:"loaded"}})}catch{if(this.searchGeneration!==e)return;this.patchStates({[t]:{status:"loaded",loadMoreFailed:!0}})}}getSnapshot(){return{...this.searchStates}}getRevealOrder(){return[...this.revealOrder]}dispose(){this.stopBackgroundWork()}reset(){this.stopBackgroundWork(),this.searchStates={},this.revealOrder=[],this.query="",this.params={},this.searchGeneration++,this.onChange?.(this.getSnapshot())}async searchCategory(t,e,n){this.patchStates({[t]:{status:"loading",entries:[],cursor:null,hasMore:!1,loadMoreFailed:!1}});const{request:i,cancel:a}=Ht({type:t,query:this.query,cursor:null,limit:10,...this.params[t]});this.pendingCancels.push(a);try{const a=await i();if(this.searchGeneration!==e)return;const{entries:r,cursor:s,isPaginated:o}=a.data.ocs.data;this.patchStates({[t]:{status:this.shouldBlockCategory(t,n)?"blocked":"loaded",entries:r,cursor:s,hasMore:this.hasMorePages(o,s),loadMoreFailed:!1}})}catch{if(this.searchGeneration!==e)return;this.patchStates({[t]:{status:"failed",entries:[],cursor:null,hasMore:!1,loadMoreFailed:!1}})}this.reconcileCategoryStatuses(n)}reconcileCategoryStatuses(t){t.forEach(e=>{"blocked"===this.searchStates[e].status&&(this.shouldBlockCategory(e,t)||this.patchStates({[e]:{status:"loaded"}}))})}startRevealTimer(){this.stopRevealTimer(),this.revealWindowOpen=!0,this.revealTimer=setTimeout(()=>{this.revealWindowOpen=!1,this.unblockAllCategories(Object.keys(this.searchStates))},1e3)}stopRevealTimer(){this.revealWindowOpen=!1,this.revealTimer&&(clearTimeout(this.revealTimer),this.revealTimer=null)}cancelPendingRequests(){this.pendingCancels.forEach(t=>t()),this.pendingCancels=[]}stopBackgroundWork(){this.cancelPendingRequests(),this.stopRevealTimer()}unblockAllCategories(t){t.forEach(t=>{"blocked"===this.searchStates[t].status&&this.patchStates({[t]:{status:"loaded"}})})}hasMorePages(t,e){return t&&null!==e}shouldBlockCategory(t,e){return!(!this.revealWindowOpen||!this.searchStates[t])&&e.slice(0,e.indexOf(t)).some(t=>{const e=this.searchStates[t];return e&&["loading","blocked"].includes(e.status)})}syncRevealOrder(t,e){const n=this.revealOrder.indexOf(t),i=function(t){return t.entries.length>0&&("loaded"===t.status||"loading"===t.status)}(e);i&&-1===n?this.revealOrder.push(t):i||-1===n||this.revealOrder.splice(n,1)}patchStates(t){Object.keys(t).forEach(e=>{const n={...this.searchStates[e],...t[e]};this.searchStates[e]=n,this.syncRevealOrder(e,n)}),this.onChange?.(this.getSnapshot())}}const Yt=(0,s.nY)("search",{state:()=>({externalFilters:[]}),actions:{registerExternalFilter({id:t,appId:e,searchFrom:n,label:i,callback:a,icon:r}){this.externalFilters.push({id:t,appId:e,searchFrom:n,name:i,callback:a,icon:r,isPluginFilter:!0})}}}),Qt=(0,o.pM)({name:"UnifiedSearchModal",components:{IconAccountMultipleOutline:X,IconArrowLeft:et,IconArrowRight:nt.A,IconCalendarBlankOutline:at,IconClose:m.A,IconDotsHorizontal:rt.A,IconFilter:ot,IconMagnify:y,IconShapeOutline:ct,CustomDateRangeModal:Ct,FilterChip:Dt,NcActions:Q.A,NcActionButton:Y.A,NcAvatar:j.A,NcButton:A.A,NcEmptyContent:W.A,NcLoadingIcon:f.A,NcTextField:Z.A,SearchableList:wt,SearchResult:Ot},props:{open:{type:Boolean,required:!0},query:{type:String,default:""},localSearch:{type:Boolean,default:!1},filtersRevealed:{type:Boolean,default:!1}},emits:["update:open","update:query","update:activeDescendant","update:loading"],setup(){const t=(0,d.ZDG)(),e=Yt(),n=(0,c.F)(),{searchStates:i,revealOrder:r,search:s,loadMore:l,reset:u}=function(){const t=(0,o.IJ)({}),e=(0,o.IJ)([]),n=new Kt(i=>{t.value=i,e.value=n.getRevealOrder()});return(0,o.hi)(()=>{n.dispose()}),{searchStates:t,revealOrder:e,search:n.search.bind(n),loadMore:n.loadMore.bind(n),reset:n.reset.bind(n)}}();return{t:a.t,searchStates:i,revealOrder:r,search:s,loadMore:l,reset:u,currentLocation:t,externalFilters:e.externalFilters,isSmallMobile:n}},data:()=>({providers:[],providerActionMenuIsOpen:!1,dateActionMenuIsOpen:!1,dateFilter:{id:"date",type:"date",text:"",startFrom:null,endAt:null},personFilter:{id:"person",type:"person",name:""},filteredProviders:[],searchQuery:"",placessearchTerm:"",dateTimeFilter:null,filters:[],contacts:[],showDateRangeModal:!1,initialized:!1,pendingSearch:!1,searchExternalResources:!1,detailCategory:null,activeIndex:-1,minSearchLength:(0,V.C)("unified-search","min-search-length",1),focusTrap:null}),computed:{isEmptySearch(){return 0===this.searchQuery.length},providerFilterActive(){return this.filters.some(t=>"date"!==t.type&&"person"!==t.type)},dateFilterActive(){return this.filters.some(t=>"date"===t.type)},personFilterActive(){return this.filters.some(t=>"person"===t.type)},hasAnyActiveFilter(){return this.filters.length>0},showFilterRow(){return!this.detailCategory&&(this.isSmallMobile||this.filtersRevealed||this.searchQuery.length>0||this.hasAnyActiveFilter)},showHeader(){return this.isSmallMobile||this.showFilterRow},searching(){return Object.values(this.searchStates).some(t=>"loading"===t.status)},isBusy(){return!(!this.open||this.isEmptySearch||this.isSearchQueryTooShort)&&(this.searching||this.pendingSearch||!this.initialized)},hasNoResults(){return!this.isEmptySearch&&0===this.results.length},isSearchQueryTooShort(){return this.searchQuery.lengtht.isExternalProvider)},hasContentFilters(){return this.filters.some(t=>"date"===t.type||"person"===t.type)},results(){if(this.isEmptySearch||this.isSearchQueryTooShort)return[];const t=this.filters.filter(t=>"provider"!==t.type).map(t=>t.type);return this.revealOrder.map(e=>{const n=this.searchStates[e],i=this.providers.find(t=>t.id===e),a=this.providerIsCompatibleWithFilters(i,t);return{...i,results:n.entries,hasMore:n.hasMore,supportsActiveFilters:a}})},filteredResults(){const t=t=>{if("in-folder"!==t.id)return!1;const e=t.extraParams?.path;return!e||"/"===e||""===e};return this.hasContentFilters?this.results.filter(e=>!0===e.supportsActiveFilters&&!t(e)):this.results.filter(e=>!t(e))},filteredResultUrls(){const t=new Set;return this.filteredResults.forEach(e=>{e.results.forEach(e=>{e.resourceUrl&&t.add(e.resourceUrl)})}),t},unfilteredResults(){return this.hasContentFilters?this.results.filter(t=>!1===t.supportsActiveFilters).map(t=>({...t,results:t.results.filter(t=>!this.filteredResultUrls.has(t.resourceUrl))})).filter(t=>t.results.length>0):[]},detailGroup(){return this.detailCategory?this.results.find(t=>t.id===this.detailCategory)??null:null},renderedGroups(){return this.detailCategory?this.detailGroup?[this.toRenderedGroup(this.detailGroup,"detail",!1)]:[]:[...this.filteredResults.map(t=>this.toRenderedGroup(t,"filtered",!1)),...this.unfilteredResults.map((t,e)=>this.toRenderedGroup(t,"unfiltered",0===e))]},showConnectedServicesButton(){return this.hasExternalResources&&!this.detailCategory&&!this.isEmptySearch&&!this.isSearchQueryTooShort&&!this.isBusy},connectedServicesLabel(){return this.searchExternalResources?(0,a.t)("core","Less from connected services"):(0,a.t)("core","More from connected services")},navigableRows(){if(this.showEmptyContentInfo||this.isSmallMobile)return[];const t=[];return this.renderedGroups.forEach(e=>{e.results.forEach((n,i)=>{t.push({id:this.rowElementId(e.id,i,e.unfiltered),resourceUrl:n.resourceUrl})})}),t},activeRow(){return this.navigableRows[this.activeIndex]??null},activeDescendantId(){return this.activeRow?.id??null},liveMessage(){return!this.open||this.isEmptySearch||this.isSearchQueryTooShort?"":this.searching||!this.initialized?(0,a.t)("core","Searching …"):0===this.navigableRows.length?(0,a.t)("core","No matching results"):this.detailCategory&&this.detailGroup?(0,a.n)("core","Showing %n result from {name}","Showing %n results from {name}",this.navigableRows.length,{name:this.detailGroup.name}):(0,a.n)("core","%n result","%n results",this.navigableRows.length)},hasVisibleResults(){return this.filteredResults.length>0||this.unfilteredResults.length>0}},watch:{open(){this.open?(document.addEventListener("keydown",this.onEscapeKey),this.$nextTick(()=>this.activateFocusTrap()),this.initialized||Promise.all([Gt(),$t({searchTerm:""})]).then(([t,e])=>{this.providers=this.groupProvidersByApp([...t,...this.externalFilters]),this.contacts=this.mapContacts(e),Pt.debug("Search providers and contacts initialized:",{providers:this.providers,contacts:this.contacts}),this.initialized=!0,this.open&&this.searchQuery&&this.find(this.searchQuery)}).catch(t=>{Pt.error(t),this.initialized=!0}),this.searchQuery&&this.find(this.searchQuery)):(this.reset(),this.pendingSearch=!1,this.debouncedFind.clear(),this.detailCategory=null,document.removeEventListener("keydown",this.onEscapeKey),this.deactivateFocusTrap())},query:{immediate:!0,handler(){this.searchQuery=this.query}},searchQuery:{handler(){this.detailCategory=null,this.$emit("update:query",this.searchQuery),this.open&&this.scheduleSearch()}},searchExternalResources(){this.detailCategory=null,this.searchQuery&&this.find(this.searchQuery)},filters:{deep:!0,handler(){this.detailCategory=null}},detailGroup(t){this.detailCategory&&!t&&this.closeDetailView()},detailCategory(){this.$nextTick(()=>{this.$refs.resultsContainer&&(this.$refs.resultsContainer.scrollTop=0)})},navigableRows(t,e){this.reconcileActiveIndex(t,e)},isBusy:{immediate:!0,handler(t){this.$emit("update:loading",t)}},activeDescendantId:{immediate:!0,handler(t){this.$emit("update:activeDescendant",t),this.$nextTick(()=>this.scrollActiveIntoView())}}},mounted(){(0,l.B1)("nextcloud:unified-search:add-filter",this.handlePluginFilter)},methods:{onUpdateOpen(t){t||(this.$emit("update:open",!1),this.$emit("update:query",""))},onScrimClick(){this.deactivateFocusTrap(!1),this.onUpdateOpen(!1)},onMobileSearchInput(t){this.searchQuery=String(t)},onEscapeKey(t){if("Escape"!==t.key)return;if(this.providerActionMenuIsOpen||this.dateActionMenuIsOpen||this.showDateRangeModal)return;const e=window._nc_focus_trap??[];this.focusTrap&&e.at(-1)!==this.focusTrap||(t.preventDefault(),this.onUpdateOpen(!1))},activateFocusTrap(){if(this.focusTrap||!this.open)return;const t=this.$refs.panel;if(!t)return;const e=this.$el?.closest?.(".unified-search-menu")??null,n=e?.querySelector(".unified-search-input")??null,i=n?[n,t]:[t];this.focusTrap=(0,o.IG)((0,K.K)(i,{initialFocus:()=>t.querySelector('input[type="search"]')??n?.querySelector("input")??t,escapeDeactivates:!1,allowOutsideClick:!0,trapStack:window._nc_focus_trap??=[]})),this.focusTrap.activate()},deactivateFocusTrap(t=!0){this.focusTrap?.deactivate({returnFocus:t}),this.focusTrap=null},searchLocally(){this.$emit("update:query",this.searchQuery),this.$emit("update:open",!1)},scheduleSearch(){this.reset(),this.pendingSearch=!0,this.debouncedFind(this.searchQuery)},find(t){if(this.pendingSearch=!1,this.isSearchQueryTooShort)return;if(!this.initialized)return;const e=this.filteredProviders.length>0?this.filteredProviders:this.providers.filter(t=>this.searchExternalResources||!t.isExternalProvider),n={};e.forEach(t=>{n[t.id]=this.buildCategoryParams(t)}),this.search(t,e.map(t=>t.id),n)},buildCategoryParams(t){const e={extraQueries:t.extraParams};return t.searchFrom&&(e.type=t.searchFrom),this.filters.forEach(n=>{"provider"!==n.type&&this.providerIsCompatibleWithFilters(t,[n.type])&&("date"===n.type?(e.since=this.dateFilter.startFrom?.toISOString(),e.until=this.dateFilter.endAt?.toISOString()):"person"===n.type&&(e.person=this.personFilter.user))}),e},mapContacts:t=>t.map(t=>({displayName:t.fullName,isNoUser:!1,subname:t.emailAddresses[0]?t.emailAddresses[0]:"",icon:"",user:t.id,isUser:t.isUser})),filterContacts(t){$t({searchTerm:t}).then(e=>{this.contacts=this.mapContacts(e),Pt.debug(`Contacts filtered by ${t}`,{contacts:this.contacts})})},applyPersonFilter(t){const e=this.filters.findIndex(e=>e.id===t.id);-1===e?(this.personFilter.id=t.id,this.personFilter.user=t.user,this.personFilter.name=t.displayName,this.filters.push(this.personFilter)):(this.filters[e].id=t.id,this.filters[e].user=t.user,this.filters[e].name=t.displayName),this.scheduleSearch(),Pt.debug("Person filter applied",{person:t})},loadMoreResultsForProvider(t){this.loadMore(t.id)},toRenderedGroup(t,e,n){const i="detail"===e;return{id:t.id,name:t.name,section:e,unfiltered:"unfiltered"===e,results:i?t.results:t.results.slice(0,3),overflow:!i&&t.results.length>3,hasMore:t.hasMore,inAppSearch:t.inAppSearch??!1,showPartialHeader:n}},headingId:t=>t.unfiltered?`unified-search-result-unfiltered-${t.id}`:`unified-search-result-${t.id}`,openDetailView(t){this.detailCategory=t.id,this.$nextTick(()=>this.focusSearchInput())},closeDetailView(){this.detailCategory=null,this.$nextTick(()=>this.focusSearchInput())},focusSearchInput(){const t=this.$refs.panel,e=t?.querySelector('input[type="search"]');if(e)return void e.focus();const n=this.$el?.closest?.(".unified-search-menu")??null,i=n?.querySelector(".unified-search-input input")??null;i?.focus()},toggleExternalResources(){this.searchExternalResources=!this.searchExternalResources,this.$nextTick(()=>this.focusSearchInput())},addProviderFilter(t){if(Pt.debug("Applying provider filter",{providerFilter:t}),!t.id)return;if(t.isPluginFilter){const e=this.filteredProviders.some(e=>e.id===t.id);t.callback(!e)}this.providerActionMenuIsOpen=!1;const e=this.filteredProviders.findIndex(e=>e.id===t.id);e>-1&&(this.filteredProviders.splice(e,1),this.filters=this.syncProviderFilters(this.filters,this.filteredProviders)),this.filteredProviders.push({...t,type:t.type||"provider",isPluginFilter:t.isPluginFilter||!1}),this.filters=this.syncProviderFilters(this.filters,this.filteredProviders),Pt.debug("Search filters (newly added)",{filters:this.filters}),this.scheduleSearch()},removeFilter(t){if("provider"===t.type){for(let e=0;e{const a=t.id;"provider"===t.type&&(e.some(t=>t.id===a)||n.splice(i,1))}),e.forEach(t=>{const e=t.id;"provider"===t.type&&(n.some(t=>t.id===e)||n.push(t))}),n},updateDateFilter(){const t=this.filters.findIndex(t=>"date"===t.id);-1!==t?this.filters[t]=this.dateFilter:this.filters.push(this.dateFilter),this.scheduleSearch()},applyQuickDateRange(t){this.dateActionMenuIsOpen=!1;const e=new Date;let n,i;switch(t){case"today":n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999),this.dateFilter.text=(0,a.t)("core","Today");break;case"7days":n=new Date(e.getFullYear(),e.getMonth(),e.getDate()-6,0,0,0,0),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999),this.dateFilter.text=(0,a.t)("core","Last 7 days");break;case"30days":n=new Date(e.getFullYear(),e.getMonth(),e.getDate()-29,0,0,0,0),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999),this.dateFilter.text=(0,a.t)("core","Last 30 days");break;case"thisyear":n=new Date(e.getFullYear(),0,1,0,0,0,0),i=new Date(e.getFullYear(),11,31,23,59,59,999),this.dateFilter.text=(0,a.t)("core","This year");break;case"lastyear":n=new Date(e.getFullYear()-1,0,1,0,0,0,0),i=new Date(e.getFullYear()-1,11,31,23,59,59,999),this.dateFilter.text=(0,a.t)("core","Last year");break;case"custom":return void(this.showDateRangeModal=!0);default:return}this.dateFilter.startFrom=n,this.dateFilter.endAt=i,this.updateDateFilter()},setCustomDateRange(t){Pt.debug("Custom date range",{range:t}),this.dateFilter.startFrom=t.startFrom,this.dateFilter.endAt=t.endAt,this.dateFilter.text=(0,a.t)("core","Between {startDate} and {endDate}",{startDate:this.dateFilter.startFrom.toLocaleDateString([(0,a.lO)()]),endDate:this.dateFilter.endAt.toLocaleDateString([(0,a.lO)()])}),this.updateDateFilter()},handlePluginFilter(t){Pt.debug("Handling plugin filter",{addFilterEvent:t});for(let e=0;ee.id===t.id);i>-1&&(n.extraParams=t.filterParams,this.filteredProviders[e]=n);break}}this.scheduleSearch()},groupProvidersByApp(t){const e={};t.forEach(t=>{const n=t.appId?t.appId:"general";e[n]||(e[n]=[]),e[n].push(t)});const n=[];return Object.values(e).forEach(t=>{n.push(...t)}),n},providerIsCompatibleWithFilters(t,e){const n=t.searchFrom?this.providers.find(e=>e.id===t.searchFrom)??t:t;return e.every(t=>{switch(t){case"date":return void 0!==n.filters?.since&&void 0!==n.filters?.until;case"person":return void 0!==n.filters?.person;default:return void 0!==n.filters?.[t]}})},async enableAllProviders(){this.providers.forEach(async(t,e)=>{this.providers[e].disabled=!1})},rowElementId:(t,e,n=!1)=>n?`unified-search-result-unfiltered-${t}-${e}`:`unified-search-result-${t}-${e}`,moveActive(t){const e=this.navigableRows.length;if(0===e)return;const n=this.activeIndex;switch(t){case"next":this.activeIndex=n<0?0:Math.min(n+1,e-1);break;case"prev":this.activeIndex=n<0?0:Math.max(n-1,0);break;case"first":this.activeIndex=0;break;case"last":this.activeIndex=e-1}},activateActive(){const t=this.activeRow??this.navigableRows[0];t?.resourceUrl&&this.openResourceUrl(t.resourceUrl)},openResourceUrl(t){window.location.assign(t)},scrollActiveIntoView(){if(!this.activeDescendantId)return;const t=document.getElementById(this.activeDescendantId);t?.scrollIntoView?.({block:"nearest"})},reconcileActiveIndex(t,e){if(0===t.length)return void(this.activeIndex=-1);const n=e?.[this.activeIndex]?.id;if(void 0!==n){const e=t.findIndex(t=>t.id===n);this.activeIndex=e>=0?e:0}else this.activeIndex=0}}}),jt=Qt;var Wt=n(52008),Zt={};Zt.styleTagTransform=z(),Zt.setAttributes=F(),Zt.insert=D().bind(null,"head"),Zt.domAPI=S(),Zt.insertStyleElement=M(),w()(Wt.A,Zt),Wt.A&&Wt.A.locals&&Wt.A.locals;const Jt=(0,v.A)(jt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("transition",{attrs:{name:"unified-search-modal",appear:""}},[t.open?e("div",{staticClass:"unified-search-modal-root"},[e("CustomDateRangeModal",{staticClass:"unified-search__date-range",attrs:{isOpen:t.showDateRangeModal},on:{"set:customDateRange":t.setCustomDateRange,"update:isOpen":function(e){t.showDateRangeModal=e}}}),t._v(" "),e("div",{ref:"panel",staticClass:"unified-search-modal__container",attrs:{id:"unified-search-results"}},[e("div",{staticClass:"hidden-visually",attrs:{role:"status","aria-live":"polite"}},[t._v("\n\t\t\t\t"+t._s(t.liveMessage)+"\n\t\t\t")]),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showHeader,expression:"showHeader"}],staticClass:"unified-search-modal__header",class:{"unified-search-modal__header--has-results":t.hasVisibleResults&&!t.detailCategory}},[t.isSmallMobile?e("div",{staticClass:"unified-search-modal__mobile-input"},[e("NcTextField",{attrs:{type:"search",label:t.t("core","Apps, files, messages, and more"),modelValue:t.searchQuery,showTrailingButton:t.searchQuery.length>0,trailingButtonLabel:t.t("core","Clear search")},on:{"update:modelValue":t.onMobileSearchInput,"trailing-button-click":function(e){t.searchQuery=""}}}),t._v(" "),t.isBusy?e("NcLoadingIcon",{attrs:{size:20}}):t._e(),t._v(" "),e("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("core","Close search")},on:{click:function(e){return t.onUpdateOpen(!1)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)})],1):t._e(),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showFilterRow,expression:"showFilterRow"}],staticClass:"unified-search-modal__filters",attrs:{"data-cy-unified-search-filters":""}},[e("NcActions",{attrs:{wide:"",size:"small",open:t.providerActionMenuIsOpen,"menu-name":t.t("core","Type"),variant:t.providerFilterActive?"primary":"secondary","data-cy-unified-search-filter":"places"},on:{"update:open":function(e){t.providerActionMenuIsOpen=e}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconShapeOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1084672236)},[t._v(" "),t._l(t.providers,function(n){return e("NcActionButton",{key:`${n.id}-${n.name.replace(/\s/g,"")}`,attrs:{disabled:n.disabled},on:{click:function(e){return t.addProviderFilter(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("img",{staticClass:"filter-button__icon",attrs:{src:n.icon,alt:""}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t"+t._s(n.name)+"\n\t\t\t\t\t\t")])})],2),t._v(" "),e("NcActions",{attrs:{size:"small",wide:"",open:t.dateActionMenuIsOpen,"menu-name":t.t("core","Date"),variant:t.dateFilterActive?"primary":"secondary","data-cy-unified-search-filter":"date"},on:{"update:open":function(e){t.dateActionMenuIsOpen=e}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconCalendarBlankOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2513324059)},[t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("today")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Today"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("7days")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Last 7 days"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("30days")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Last 30 days"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("thisyear")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","This year"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("lastyear")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Last year"))+"\n\t\t\t\t\t\t")]),t._v(" "),e("NcActionButton",{attrs:{closeAfterClick:!0},on:{click:function(e){return t.applyQuickDateRange("custom")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","Custom date range"))+"\n\t\t\t\t\t\t")])],1),t._v(" "),e("SearchableList",{attrs:{labelText:t.t("core","Search people"),searchList:t.userContacts,emptyContentText:t.t("core","Not found"),"data-cy-unified-search-filter":"people"},on:{"search-term-change":t.debouncedFilterContacts,"item-selected":t.applyPersonFilter},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{attrs:{wide:"",size:"small",variant:"secondary",pressed:t.personFilterActive},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAccountMultipleOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2457664786)},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("core","People"))+"\n\t\t\t\t\t\t\t")])]},proxy:!0}],null,!1,662085814)}),t._v(" "),t.localSearch?e("NcButton",{attrs:{variant:"tertiary","data-cy-unified-search-filter":"current-view"},on:{click:t.searchLocally},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconFilter",{attrs:{size:20}})]},proxy:!0}],null,!1,4275912387)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("core","Filter in current view"))+"\n\t\t\t\t\t\t")]):t._e()],1),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.detailCategory&&t.hasAnyActiveFilter,expression:"!detailCategory && hasAnyActiveFilter"}],staticClass:"unified-search-modal__filters-applied"},t._l(t.filters,function(n){return e("FilterChip",{key:n.id,attrs:{text:n.name??n.text,pretext:""},on:{delete:function(e){return t.removeFilter(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return["person"===n.type?e("NcAvatar",{attrs:{user:n.user,size:24,disableMenu:"",hideStatus:"",hideFavorite:!1}}):"date"===n.type?e("IconCalendarBlankOutline"):e("img",{attrs:{src:n.icon,alt:""}})]},proxy:!0}],null,!0)})}),1)]),t._v(" "),t.showEmptyContentInfo?e("div",{staticClass:"unified-search-modal__no-content"},[e("NcEmptyContent",{attrs:{name:t.emptyContentMessage},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconMagnify",{attrs:{size:64}})]},proxy:!0}],null,!1,125778896)}),t._v(" "),t.showConnectedServicesButton?e("div",{staticClass:"unified-search-modal__connected-services"},[e("NcButton",{attrs:{variant:"secondary",wide:""},on:{click:t.toggleExternalResources}},[t._v("\n\t\t\t\t\t\t"+t._s(t.connectedServicesLabel)+"\n\t\t\t\t\t")])],1):t._e()],1):e("div",{ref:"resultsContainer",staticClass:"unified-search-modal__results"},[e("h3",{staticClass:"hidden-visually"},[t._v("\n\t\t\t\t\t"+t._s(t.t("core","Results"))+"\n\t\t\t\t")]),t._v(" "),t.detailCategory&&t.detailGroup?e("div",{staticClass:"unified-search-modal__detail-header"},[e("NcButton",{staticClass:"unified-search-modal__detail-back",attrs:{variant:"tertiary","aria-label":t.t("core","Back to all results")},on:{click:t.closeDetailView},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowLeft",{staticClass:"unified-search-modal__rtl-icon",attrs:{size:20}})]},proxy:!0}],null,!1,1818940180)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("core","Back"))+"\n\t\t\t\t\t")]),t._v(" "),e("h4",{staticClass:"unified-search-modal__detail-title",attrs:{id:t.headingId(t.detailGroup)}},[t._v("\n\t\t\t\t\t\t"+t._s(t.detailGroup.name)+"\n\t\t\t\t\t")])],1):t._e(),t._v(" "),t._l(t.renderedGroups,function(n){return e("div",{key:n.id,staticClass:"result-group"},[n.showPartialHeader?e("div",{staticClass:"unified-search-modal__unfiltered-header"},[e("span",{staticClass:"unified-search-modal__unfiltered-label"},[t._v(t._s(t.t("core","Partial matches")))])]):t._e(),t._v(" "),e("div",{staticClass:"result",class:{"result--unfiltered":n.unfiltered}},[n.overflow?e("NcButton",{staticClass:"result-title--more",attrs:{id:t.headingId(n),alignment:"start-reverse",variant:"tertiary-no-background"},on:{click:function(e){return t.openDetailView(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowRight",{staticClass:"unified-search-modal__rtl-icon",attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.t("core","More from {name}",{name:n.name}))+"\n\t\t\t\t\t\t\t")]):"detail"!==n.section?e("h4",{staticClass:"result-title",attrs:{id:t.headingId(n)}},[t._v("\n\t\t\t\t\t\t\t"+t._s(n.name)+"\n\t\t\t\t\t\t")]):t._e(),t._v(" "),e("ul",{staticClass:"result-items",attrs:{role:t.isSmallMobile?void 0:"listbox","aria-labelledby":t.headingId(n)}},t._l(n.results,function(i,a){return e("SearchResult",t._b({key:a,attrs:{role:t.isSmallMobile?void 0:"option",elementId:t.rowElementId(n.id,a,n.unfiltered),active:t.activeDescendantId===t.rowElementId(n.id,a,n.unfiltered)}},"SearchResult",i,!1))}),1),t._v(" "),e("div",{staticClass:"result-footer"},["detail"===n.section&&n.hasMore?e("NcButton",{attrs:{variant:"tertiary-no-background"},on:{click:function(e){return t.loadMoreResultsForProvider(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconDotsHorizontal",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("core","Load more results"))+"\n\t\t\t\t\t\t\t\t")]):t._e(),t._v(" "),n.inAppSearch?e("NcButton",{attrs:{alignment:"end-reverse",variant:"tertiary-no-background"},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("core","Search in"))+" "+t._s(n.name)+"\n\t\t\t\t\t\t\t\t")]):t._e()],1)],1)])}),t._v(" "),t.showConnectedServicesButton?e("div",{staticClass:"unified-search-modal__connected-services"},[e("NcButton",{attrs:{variant:"secondary",wide:""},on:{click:t.toggleExternalResources}},[t._v("\n\t\t\t\t\t\t"+t._s(t.connectedServicesLabel)+"\n\t\t\t\t\t")])],1):t._e()],2)]),t._v(" "),e("div",{staticClass:"unified-search-modal__scrim modal-mask",on:{click:t.onScrimClick}})],1):t._e()])},[],!1,null,"f77795fc",null).exports,Xt=(0,o.pM)({name:"UnifiedSearch",components:{UnifiedSearchModal:Jt,UnifiedSearchLocalSearchBar:$,UnifiedSearchInput:q},setup:()=>({currentLocation:(0,d.ZDG)(),isSmallMobile:(0,c.F)(),t:a.t}),data:()=>({queryText:"",showUnifiedSearch:!1,showLocalSearch:!1,activeDescendantId:"",searching:!1,filtersRevealed:!1}),computed:{debouncedQueryUpdate(){return(0,u.A)(this.emitUpdatedQuery,250)},supportsLocalSearch(){return["/apps/deck"].some(t=>this.currentLocation.pathname?.includes?.(t))},appHandlesSearchShortcut(){return["/settings/users","/settings/apps"].some(t=>this.currentLocation.pathname?.includes?.(t))}},watch:{queryText(){this.debouncedQueryUpdate(),this.supportsLocalSearch||this.isSmallMobile||(this.showUnifiedSearch=this.queryText.length>0)},showUnifiedSearch(t){t||(this.filtersRevealed=!1)}},mounted(){!1===window.OCP.Accessibility.disableKeyboardShortcuts()&&window.addEventListener("keydown",this.onKeyDown),(0,l.B1)("nextcloud:unified-search:reset",()=>{this.showLocalSearch=!1,this.queryText=""}),(0,l.B1)("nextcloud:unified-search:reset",()=>{(0,l.Ic)("nextcloud:unified-search.reset",{query:""})}),(0,l.B1)("nextcloud:unified-search:search",({query:t})=>{(0,l.Ic)("nextcloud:unified-search.search",{query:t})}),Ut.debug("Unified search initialized!")},beforeDestroy(){window.removeEventListener("keydown",this.onKeyDown)},methods:{onKeyDown(t){const e=t.key.toLowerCase();if(t.ctrlKey&&"f"===e){if(this.appHandlesSearchShortcut)return;if(this.supportsLocalSearch)return this.showLocalSearch||this.showUnifiedSearch||t.preventDefault(),void this.toggleUnifiedSearch();if(this.isSearchEngaged())return;t.preventDefault(),this.focusSearch()}else if((t.metaKey||t.ctrlKey)&&"k"===e){if(this.appHandlesSearchShortcut)return;t.preventDefault(),this.focusSearch()}},focusSearch(){this.isSmallMobile?this.openModal():this.focusInput()},focusInput(){const t=this.$refs.searchInput;t?.focus?.()},isSearchEngaged(){if(this.showUnifiedSearch)return!0;const t=this.$refs.searchInput?.$el;return Boolean(t&&t.contains(document.activeElement))},onNavigate(t){const e=this.$refs.searchModal;e?.moveActive?.(t)},onActivate(){const t=this.$refs.searchModal;t?.activateActive?.()},toggleUnifiedSearch(){this.supportsLocalSearch?this.showLocalSearch=!this.showLocalSearch:(this.showUnifiedSearch=!this.showUnifiedSearch,this.showLocalSearch=!1)},openModal(){this.showUnifiedSearch=!0,this.showLocalSearch=!1},onOpenFilters(){this.showUnifiedSearch=!0,this.showLocalSearch=!1,this.filtersRevealed=!0},onClose(){this.showUnifiedSearch=!1,this.showLocalSearch=!1},emitUpdatedQuery(){""===this.queryText?(0,l.Ic)("nextcloud:unified-search:reset"):(0,l.Ic)("nextcloud:unified-search:search",{query:this.queryText})}}});var te=n(16968),ee={};ee.styleTagTransform=z(),ee.setAttributes=F(),ee.insert=D().bind(null,"head"),ee.domAPI=S(),ee.insertStyleElement=M(),w()(te.A,ee),te.A&&te.A.locals&&te.A.locals;const ne=(0,v.A)(Xt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"unified-search-menu"},[e("UnifiedSearchInput",{ref:"searchInput",attrs:{query:t.queryText,expanded:t.showUnifiedSearch,activeDescendantId:t.activeDescendantId,loading:t.searching,filtersRevealed:t.filtersRevealed},on:{click:t.openModal,"open-filters":t.onOpenFilters,close:t.onClose,"update:query":function(e){t.queryText=e},navigate:t.onNavigate,activate:t.onActivate}}),t._v(" "),t.supportsLocalSearch?e("UnifiedSearchLocalSearchBar",{attrs:{open:t.showLocalSearch,query:t.queryText},on:{globalSearch:t.openModal,"update:open":function(e){t.showLocalSearch=e},"update:query":function(e){t.queryText=e}}}):t._e(),t._v(" "),e("UnifiedSearchModal",{ref:"searchModal",attrs:{localSearch:t.supportsLocalSearch,query:t.queryText,open:t.showUnifiedSearch,filtersRevealed:t.filtersRevealed},on:{"update:query":function(e){t.queryText=e},"update:open":function(e){t.showUnifiedSearch=e},"update:activeDescendant":function(e){t.activeDescendantId=e||""},"update:loading":function(e){t.searching=e}}})],1)},[],!1,null,"44547071",null).exports;n.nc=(0,i.aV)();const ie=(0,r.YK)().setApp("unified-search").detectUser().build();o.Ay.mixin({data:()=>({logger:ie}),methods:{t:a.Tl,n:a.zw}}),window.OCA=window.OCA||{},window.OCA.UnifiedSearch={registerFilterAction:({id:t,appId:e,searchFrom:n,label:i,callback:a,icon:r})=>{Yt().registerExternalFilter({id:t,appId:e,searchFrom:n,label:i,callback:a,icon:r})}},o.Ay.use(s.R2);const ae=(0,s.Ey)();new o.Ay({el:"#unified-search",pinia:ae,name:"UnifiedSearchRoot",render:t=>t(ne)})},53628(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".app-icon[data-v-42bb03fc]{--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;width:var(--app-icon-circle-size);height:var(--app-icon-circle-size);border-radius:50%;transform:scale(var(--app-icon-scale, 1));transition:transform var(--animation-quick) ease-out;background-color:var(--color-primary-element-light);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%, var(--color-primary-element-light) 100%);box-shadow:var(--app-icon-bevel)}@media(prefers-color-scheme: dark){.app-icon[data-v-42bb03fc]{--app-icon-bevel: none}}@media(prefers-reduced-motion: reduce){.app-icon[data-v-42bb03fc]{transition:none}}.app-icon__img[data-v-42bb03fc]{width:var(--app-icon-icon-size);height:var(--app-icon-icon-size);background-color:var(--color-primary-element);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%, var(--color-primary-element) 100%);mask:var(--app-icon-url) center/contain no-repeat}@media(forced-colors: active){.app-icon__img[data-v-42bb03fc]{background-color:CanvasText;background-image:none}}.app-icon--outlined[data-v-42bb03fc]{background:rgba(0,0,0,0);background-image:none;box-shadow:inset 0 0 0 2px var(--color-border-maxcontrast)}.app-icon--outlined .app-icon__img[data-v-42bb03fc]{background-color:var(--color-main-text);background-image:none}[data-themes*=dark] .app-icon{--app-icon-bevel: none}[data-themes*=light] .app-icon{--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element))}","",{version:3,sources:["webpack://./core/src/components/AppIcon.vue"],names:[],mappings:"AAKA,2BACC,+DAAA,CAEA,gEAAA,CACA,2OAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,iCAAA,CACA,kCAAA,CACA,iBAAA,CACA,yCAAA,CACA,oDAAA,CACA,mDAAA,CACA,iLAAA,CAKA,gCAAA,CAEA,mCAvBD,2BAwBE,sBAAA,CAAA,CAGD,uCA3BD,2BA4BE,eAAA,CAAA,CAGD,gCACC,+BAAA,CACA,gCAAA,CAGA,6CAAA,CACA,2KAAA,CAKA,iDAAA,CAID,8BACC,gCACC,2BAAA,CACA,qBAAA,CAAA,CAIF,qCACC,wBAAA,CACA,qBAAA,CACA,0DAAA,CAGD,oDACC,uCAAA,CACA,qBAAA,CAKF,8BACC,sBAAA,CAGD,+BACC,2OAAA",sourcesContent:["\n$bevel:\n\tinset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)),\n\tinset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));\n\n.app-icon {\n\t--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);\n\t// 28px on a 48px circle, so it follows when consumers resize the circle.\n\t--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);\n\t--app-icon-bevel: #{$bevel};\n\tbox-sizing: border-box;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: var(--app-icon-circle-size);\n\theight: var(--app-icon-circle-size);\n\tborder-radius: 50%;\n\ttransform: scale(var(--app-icon-scale, 1));\n\ttransition: transform var(--animation-quick) ease-out;\n\tbackground-color: var(--color-primary-element-light);\n\tbackground-image: linear-gradient(\n\t\tto bottom,\n\t\tcolor-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%,\n\t\tvar(--color-primary-element-light) 100%\n\t);\n\tbox-shadow: var(--app-icon-bevel);\n\n\t@media (prefers-color-scheme: dark) {\n\t\t--app-icon-bevel: none;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&__img {\n\t\twidth: var(--app-icon-icon-size);\n\t\theight: var(--app-icon-icon-size);\n\t\t// Masked rather than shown: app icons ship a hardcoded fill, so\n\t\t// currentColor never applies and a filter could only flip black and white.\n\t\tbackground-color: var(--color-primary-element);\n\t\tbackground-image: linear-gradient(\n\t\t\tto bottom,\n\t\t\tcolor-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%,\n\t\t\tvar(--color-primary-element) 100%\n\t\t);\n\t\tmask: var(--app-icon-url) center / contain no-repeat;\n\t}\n\n\t// Masked backgrounds are not force-adjusted the way is.\n\t@media (forced-colors: active) {\n\t\t&__img {\n\t\t\tbackground-color: CanvasText;\n\t\t\tbackground-image: none;\n\t\t}\n\t}\n\n\t&--outlined {\n\t\tbackground: transparent;\n\t\tbackground-image: none;\n\t\tbox-shadow: inset 0 0 0 2px var(--color-border-maxcontrast);\n\t}\n\n\t&--outlined &__img {\n\t\tbackground-color: var(--color-main-text);\n\t\tbackground-image: none;\n\t}\n}\n\n// An explicit theme choice must beat the media query above, which only sees the OS.\n:global([data-themes*=dark] .app-icon) {\n\t--app-icon-bevel: none;\n}\n\n:global([data-themes*=light] .app-icon) {\n\t--app-icon-bevel: #{$bevel};\n}\n"],sourceRoot:""}]);const o=s},12667(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".unified-search-custom-date-modal[data-v-2907014b]{padding:10px 20px 10px 20px}.unified-search-custom-date-modal h1[data-v-2907014b]{font-size:16px;font-weight:bolder;line-height:2em}.unified-search-custom-date-modal__pickers[data-v-2907014b]{display:flex;flex-direction:column}.unified-search-custom-date-modal__footer[data-v-2907014b]{display:flex;justify-content:end}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/CustomDateRangeModal.vue"],names:[],mappings:"AACA,mDACC,2BAAA,CAEA,sDACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,4DACC,YAAA,CACA,qBAAA,CAGD,2DACC,YAAA,CACA,mBAAA",sourcesContent:["\n.unified-search-custom-date-modal {\n\tpadding: 10px 20px 10px 20px;\n\n\th1 {\n\t\tfont-size: 16px;\n\t\tfont-weight: bolder;\n\t\tline-height: 2em;\n\t}\n\n\t&__pickers {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t&__footer {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t}\n\n}\n"],sourceRoot:""}]);const o=s},17830(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".chip[data-v-5a4f6249]{display:flex;align-items:center;padding:2px 4px;border:1px solid var(--color-primary-element-light);border-radius:20px;background-color:var(--color-primary-element-light);margin:2px}.chip .icon[data-v-5a4f6249]{display:flex;align-items:center;padding-inline-end:5px}.chip .icon img[data-v-5a4f6249]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-5a4f6249]{margin:0 2px}.chip .close-button[data-v-5a4f6249]{display:flex;align-items:center;width:auto;min-width:0;min-height:0;margin:0;padding:0;border:none;background:rgba(0,0,0,0);color:inherit;cursor:pointer;border-radius:var(--border-radius-element, 8px)}.chip .close-button[data-v-5a4f6249]:hover{filter:invert(20%)}.chip .close-button[data-v-5a4f6249]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:1px}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchFilterChip.vue"],names:[],mappings:"AACA,uBACI,YAAA,CACA,kBAAA,CACA,eAAA,CACA,mDAAA,CACA,kBAAA,CACA,mDAAA,CACA,UAAA,CAEA,6BACI,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,iCACI,UAAA,CACA,WAAA,CACA,kBAAA,CACA,yCAAA,CAIR,6BACI,YAAA,CAGJ,qCACI,YAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,aAAA,CACA,cAAA,CACA,+CAAA,CAEA,2CACI,kBAAA,CAGJ,mDACI,wCAAA,CACA,kBAAA",sourcesContent:["\n.chip {\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border: 1px solid var(--color-primary-element-light);\n border-radius: 20px;\n background-color: var(--color-primary-element-light);\n margin: 2px;\n\n .icon {\n display: flex;\n align-items: center;\n padding-inline-end: 5px;\n\n img {\n width: 20px;\n padding: 2px;\n border-radius: 20px;\n filter: var(--background-invert-if-bright);\n }\n }\n\n .text {\n margin: 0 2px;\n }\n\n .close-button {\n display: flex;\n align-items: center;\n width: auto;\n min-width: 0;\n min-height: 0;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: var(--border-radius-element, 8px);\n\n &:hover {\n filter: invert(20%);\n }\n\n &:focus-visible {\n outline: 2px solid var(--color-main-text);\n outline-offset: 1px;\n }\n }\n}\n"],sourceRoot:""}]);const o=s},65719(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,'.result-item[data-v-516c3939]{padding-inline:0}.result-item[data-v-516c3939] a{border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.result-item[data-v-516c3939] a:active,.result-item[data-v-516c3939] a:hover{background-color:var(--color-background-hover)}.result-item[data-v-516c3939] a:focus-visible{background-color:var(--color-background-hover);border-color:var(--color-border-maxcontrast)}.result-item[data-v-516c3939] a *{cursor:pointer}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item::before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline)*2);inset-inline-start:0;width:3px;border-radius:var(--border-radius-rounded);background-color:var(--color-primary-element);animation:result-pill-in-516c3939 var(--animation-quick) ease-out}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item:hover{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__name,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__subname,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__details,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-details__details{color:var(--color-main-text) !important}.result-item__icon[data-v-516c3939]{display:flex;align-items:center;justify-content:center;overflow:hidden;width:var(--default-clickable-area);height:var(--default-clickable-area);border-radius:var(--border-radius);margin-inline-start:var(--default-grid-baseline)}.result-item__icon--rounded[data-v-516c3939]{border-radius:calc(var(--default-clickable-area)/2)}.result-item__icon--with-thumbnail[data-v-516c3939]:not(.result-item__icon--rounded){border:1px solid var(--color-border);max-height:calc(var(--default-clickable-area) - 2px);max-width:calc(var(--default-clickable-area) - 2px)}.result-item__icon--with-thumbnail img[data-v-516c3939]{width:100%;height:100%;object-fit:cover;object-position:center}.result-item__icon-img[data-v-516c3939]{width:20px;height:20px;object-fit:contain;filter:var(--background-invert-if-dark)}.result-item__icon-img[src*="/filetypes/"][data-v-516c3939]{width:32px;height:32px;filter:none}.result-item__app-icon[data-v-516c3939]{--app-icon-circle-size: var(--default-clickable-area);margin-inline-start:var(--default-grid-baseline)}@keyframes result-pill-in-516c3939{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}',"",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchResult.vue"],names:[],mappings:"AACA,8BACC,gBAAA,CAEA,gCACC,8BAAA,CACA,mDAAA,CAGA,6EAEC,8CAAA,CAKD,8CACC,8CAAA,CACA,4CAAA,CAGD,kCACC,cAAA,CAOD,oEACC,8CAAA,CAMA,4EACC,UAAA,CACA,iBAAA,CACA,gDAAA,CACA,oBAAA,CACA,SAAA,CACA,0CAAA,CACA,6CAAA,CAEA,iEAAA,CAGD,0EACC,8CAAA,CAMF,6ZAIC,uCAAA,CAIF,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,mCAAA,CACA,oCAAA,CACA,kCAAA,CACA,gDAAA,CAEA,6CACC,mDAAA,CAGD,qFACC,oCAAA,CAEA,oDAAA,CACA,mDAAA,CAID,wDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAID,wCACC,UAAA,CACA,WAAA,CACA,kBAAA,CAEA,uCAAA,CAKA,4DACC,UAAA,CACA,WAAA,CACA,WAAA,CAMH,wCACC,qDAAA,CACA,gDAAA,CAKF,mCACC,KACC,mBAAA,CACA,SAAA,CAGD,GACC,mBAAA,CACA,SAAA,CAAA",sourcesContent:["\n.result-item {\n\tpadding-inline: 0;\n\n\t:deep(a) {\n\t\tborder: 2px solid transparent;\n\t\tborder-radius: var(--border-radius-large) !important;\n\n\t\t// Hover/press: neutral gray fill only, no border.\n\t\t&:active,\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t// Plain Tab into a result keeps a visible focus ring (a11y). Normally the combobox\n\t\t// keeps focus in the input and drives selection via `active` below.\n\t\t&:focus-visible {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-color: var(--color-border-maxcontrast);\n\t\t}\n\n\t\t* {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t// NcListItem's `active` state paints a primary fill, white text and a blue stripe.\n\t// We want a neutral look: the gray hover fill plus a maxcontrast border, readable text.\n\t&.list-item__wrapper--active {\n\t\t:deep(.list-item) {\n\t\t\tbackground-color: var(--color-background-hover);\n\n\t\t\t// Keyboard selection marker: the pill the left navigation paints on its active\n\t\t\t// entry. It has to hang off .list-item rather than the wrapper, because\n\t\t\t// .list-item is itself positioned and paints the opaque row background, so it\n\t\t\t// would cover a pseudo-element belonging to its parent.\n\t\t\t&::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-block: calc(var(--default-grid-baseline) * 2);\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\twidth: 3px;\n\t\t\t\tborder-radius: var(--border-radius-rounded);\n\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\t// Zeroed by the reduced-motion theme, so no separate media query is needed.\n\t\t\t\tanimation: result-pill-in var(--animation-quick) ease-out;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t}\n\n\t\t// Undo the forced active text colour. Chain through the anchor to outrank\n\t\t// NcListItem's own !important rule.\n\t\t:deep(.list-item__anchor .list-item-content__name),\n\t\t:deep(.list-item__anchor .list-item-content__subname),\n\t\t:deep(.list-item__anchor .list-item-content__details),\n\t\t:deep(.list-item__anchor .list-item-details__details) {\n\t\t\tcolor: var(--color-main-text) !important;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\toverflow: hidden;\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\tborder-radius: var(--border-radius);\n\t\tmargin-inline-start: var(--default-grid-baseline);\n\n\t\t&--rounded {\n\t\t\tborder-radius: calc(var(--default-clickable-area) / 2);\n\t\t}\n\n\t\t&--with-thumbnail:not(#{&}--rounded) {\n\t\t\tborder: 1px solid var(--color-border);\n\t\t\t// compensate for border\n\t\t\tmax-height: calc(var(--default-clickable-area) - 2px);\n\t\t\tmax-width: calc(var(--default-clickable-area) - 2px);\n\t\t}\n\n\t\t// A full-bleed thumbnail (preview or avatar) fills the box.\n\t\t&--with-thumbnail img {\n\t\t\t// Make sure to keep ratio\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\tobject-fit: cover;\n\t\t\tobject-position: center;\n\t\t}\n\n\t\t// A small monochrome glyph (e.g. a settings section), not a thumbnail.\n\t\t&-img {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tobject-fit: contain;\n\t\t\t// Dark monochrome icons invert to light in dark themes.\n\t\t\tfilter: var(--background-invert-if-dark);\n\n\t\t\t// Mime icons carry their own colours (a red PDF, a green spreadsheet), so the\n\t\t\t// dark-theme invert would recolour them: red comes out cyan. Sized to match the\n\t\t\t// 32px these icons had while they were painted as a background-image.\n\t\t\t&[src*='/filetypes/'] {\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tfilter: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// App results reuse the app-menu tile (AppIcon); size its circle to the icon column.\n\t&__app-icon {\n\t\t--app-icon-circle-size: var(--default-clickable-area);\n\t\tmargin-inline-start: var(--default-grid-baseline);\n\t}\n}\n\n// Grow the pill out of the row's centre line, matching the navigation entry.\n@keyframes result-pill-in {\n\tfrom {\n\t\ttransform: scaleY(0);\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\ttransform: scaleY(1);\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]);const o=s},60645(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".searchable-list__wrapper[data-v-66bd6570]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-66bd6570]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-66bd6570] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__list[data-v-66bd6570] .button-vue span{font-weight:initial}.searchable-list__empty-content[data-v-66bd6570]{margin-top:calc(var(--default-grid-baseline)*3)}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchableList.vue"],names:[],mappings:"AAEC,2CACC,4CAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,WAAA,CAGD,wCACC,UAAA,CACA,gBAAA,CACA,eAAA,CACA,uCAAA,CACA,oCAAA,CAEA,oDACC,mDAAA,CACA,yDACC,mBAAA,CAKH,iDACC,+CAAA",sourcesContent:["\n.searchable-list {\n\t&__wrapper {\n\t\tpadding: calc(var(--default-grid-baseline) * 3);\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 250px;\n\t}\n\n\t&__list {\n\t\twidth: 100%;\n\t\tmax-height: 284px;\n\t\toverflow-y: auto;\n\t\tmargin-top: var(--default-grid-baseline);\n\t\tpadding: var(--default-grid-baseline);\n\n\t\t:deep(.button-vue) {\n\t\t\tborder-radius: var(--border-radius-large) !important;\n\t\t\tspan {\n\t\t\t\tfont-weight: initial;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__empty-content {\n\t\tmargin-top: calc(var(--default-grid-baseline) * 3);\n\t}\n}\n"],sourceRoot:""}]);const o=s},14600(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".unified-search-input[data-v-59e94aec]{position:relative;z-index:51}.unified-search-input[data-v-59e94aec]:not(.unified-search-input--mobile){display:flex;align-items:center;width:clamp(200px,35vw,600px);max-width:calc(100% - 32px)}.unified-search-input--mobile[data-v-59e94aec]{display:contents}.unified-search-input__field[data-v-59e94aec]{--resting-background: rgba(0, 0, 0, 0.15);--resting-background-hover: rgba(0, 0, 0, 0.22);--search-icon-pad: 12px;--search-icon-size: 20px;--search-icon-gap: 8px;--search-anim-duration: 240ms;--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);position:relative;container-type:inline-size;display:flex;align-items:center;height:var(--default-clickable-area);width:100%;border-radius:var(--border-radius-element, 8px);box-shadow:inset 0 2px 0 rgba(0,0,0,.12);background-color:var(--resting-background);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);transition:background-color var(--search-anim-duration) var(--search-anim-easing),box-shadow var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field[data-v-59e94aec]:hover:not(.unified-search-input__field--active){background-color:var(--resting-background-hover)}.unified-search-input__field--active[data-v-59e94aec]{background-color:var(--color-main-background);box-shadow:none}.unified-search-input__resting[data-v-59e94aec]{--slide-sign: 1;position:absolute;inset-block:0;inset-inline-start:var(--search-icon-pad);max-width:calc(100% - 2*var(--search-icon-pad));display:flex;align-items:center;gap:var(--search-icon-gap);pointer-events:none;color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));transform:translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));transition:transform var(--search-anim-duration) var(--search-anim-easing),color var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field--active .unified-search-input__resting[data-v-59e94aec]{transform:translateX(0);color:var(--color-text-maxcontrast);max-width:calc(100% - 7*var(--search-icon-pad))}.unified-search-input__label[data-v-59e94aec]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__resting--filled .unified-search-input__label[data-v-59e94aec]{opacity:0}.unified-search-input__resting[data-v-59e94aec] .material-design-icon__svg{display:block;transform:translateY(1px)}.unified-search-input__input[data-v-59e94aec]{flex:1;min-width:0;height:100%;margin:0;padding-inline:calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);border:none !important;border-radius:0 !important;box-shadow:none !important;background-color:rgba(0,0,0,0);color:var(--color-main-text);font-size:var(--default-font-size)}.unified-search-input__input[data-v-59e94aec]::placeholder{opacity:1;color:var(--color-text-maxcontrast)}.unified-search-input__input[data-v-59e94aec]:focus-visible{outline:none}.unified-search-input__clear[data-v-59e94aec],.unified-search-input__filter[data-v-59e94aec]{flex-shrink:0;margin-inline-end:2px}.unified-search-input__loading[data-v-59e94aec]{flex-shrink:0;display:flex;align-items:center;margin-inline:var(--default-grid-baseline)}.unified-search-input__shortcut[data-v-59e94aec]{position:absolute;inset-inline-end:var(--default-grid-baseline);top:50%;transform:translateY(-50%);display:flex;pointer-events:none}@container (max-width: 400px){.unified-search-input__shortcut[data-v-59e94aec]{display:none}}.unified-search-input__shortcut[data-v-59e94aec] kbd{min-width:12px;height:12px;padding-inline:5px;border:1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);border-block-end-width:2px;border-radius:var(--border-radius-small, 4px);color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));font-size:13px}[data-theme-dark] .unified-search-input__field[data-v-59e94aec],[data-theme-dark-highcontrast] .unified-search-input__field[data-v-59e94aec]{--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent)}.unified-search-input__resting[data-v-59e94aec]:dir(rtl){--slide-sign: -1}@media(prefers-reduced-motion: reduce){.unified-search-input__resting[data-v-59e94aec],.unified-search-input__resting span[data-v-59e94aec]{transition:none}}.unified-search-input--mobile[data-v-59e94aec] .header-menu{height:var(--default-clickable-area)}.unified-search-input--mobile[data-v-59e94aec] .header-menu__trigger{--button-size: var(--default-clickable-area) !important;height:var(--default-clickable-area) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue{--color-main-text: var(--color-background-plain-text);color:var(--color-background-plain-text);border-radius:var(--border-radius-element) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:hover:not(:disabled){background-color:rgba(0,0,0,.1) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:active:not(:disabled){background-color:rgba(0,0,0,.15) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:focus-visible{background-color:rgba(0,0,0,.1) !important;outline:none !important;box-shadow:inset 0 0 0 2px var(--color-background-plain-text) !important}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/UnifiedSearchInput.vue"],names:[],mappings:"AACA,uCAGC,iBAAA,CACA,UAAA,CAEA,0EACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,2BAAA,CAGD,+CACC,gBAAA,CAGD,8CACC,yCAAA,CACA,+CAAA,CAGA,uBAAA,CACA,wBAAA,CACA,sBAAA,CAGA,6BAAA,CACA,oDAAA,CACA,iBAAA,CAEA,0BAAA,CACA,YAAA,CACA,kBAAA,CAGA,oCAAA,CACA,UAAA,CACA,+CAAA,CACA,wCAAA,CAEA,0CAAA,CACA,qDAAA,CACA,6CAAA,CAEA,kJACC,CAGD,8FACC,gDAAA,CAID,sDACC,6CAAA,CACA,eAAA,CAQF,gDACC,eAAA,CACA,iBAAA,CACA,aAAA,CACA,yCAAA,CACA,+CAAA,CACA,YAAA,CACA,kBAAA,CACA,0BAAA,CACA,mBAAA,CACA,+FAAA,CACA,sFAAA,CACA,sIACC,CAGD,qFACC,uBAAA,CACA,mCAAA,CACA,+CAAA,CAOF,8CACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,wEAAA,CAGD,qFACC,SAAA,CAOD,2EACC,aAAA,CACA,yBAAA,CAKD,8CACC,MAAA,CACA,WAAA,CACA,WAAA,CACA,QAAA,CAGA,qHAAA,CAIA,sBAAA,CACA,0BAAA,CACA,0BAAA,CACA,8BAAA,CACA,4BAAA,CACA,kCAAA,CAEA,2DACC,SAAA,CACA,mCAAA,CAGD,4DACC,YAAA,CAIF,6FAEC,aAAA,CACA,qBAAA,CAGD,gDACC,aAAA,CACA,YAAA,CACA,kBAAA,CACA,0CAAA,CAKD,iDACC,iBAAA,CACA,6CAAA,CACA,OAAA,CACA,0BAAA,CACA,YAAA,CACA,mBAAA,CAKA,8BAXD,iDAYE,YAAA,CAAA,CAGD,qDACC,cAAA,CACA,WAAA,CACA,kBAAA,CACA,wFAAA,CACA,0BAAA,CACA,6CAAA,CACA,+FAAA,CACA,cAAA,CAOH,6IAEC,uFAAA,CACA,6FAAA,CAOD,yDACC,gBAAA,CAKD,uCACC,qGAEC,eAAA,CAAA,CAKF,4DACC,oCAAA,CAGD,qEACC,uDAAA,CACA,+CAAA,CAGD,2DACC,qDAAA,CACA,wCAAA,CACA,qDAAA,CAEA,gFACC,0CAAA,CAGD,iFACC,2CAAA,CAGD,yEACC,0CAAA,CACA,uBAAA,CACA,wEAAA",sourcesContent:["\n.unified-search-input {\n\t// Paints above the modal root (z-index: 50) so the header input stays clickable\n\t// over the scrim while the popover is open. Keep 51 one above that value.\n\tposition: relative;\n\tz-index: 51;\n\n\t&:not(.unified-search-input--mobile) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\twidth: clamp(200px, 35vw, 600px);\n\t\tmax-width: calc(100% - 32px);\n\t}\n\n\t&--mobile {\n\t\tdisplay: contents;\n\t}\n\n\t&__field {\n\t\t--resting-background: rgba(0, 0, 0, 0.15);\n\t\t--resting-background-hover: rgba(0, 0, 0, 0.22);\n\t\t// Shared geometry: the resting group and the input's leading padding read the\n\t\t// same tokens so the placeholder and the typed value line up.\n\t\t--search-icon-pad: 12px;\n\t\t--search-icon-size: 20px;\n\t\t--search-icon-gap: 8px;\n\t\t// One shared timing for every focus transition (background, the icon/label\n\t\t// slide, the recolour) so they move together. easeOutQuart = soft landing.\n\t\t--search-anim-duration: 240ms;\n\t\t--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);\n\t\tposition: relative;\n\t\t// Query container so the resting group can centre itself with cqi units\n\t\tcontainer-type: inline-size;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Match the default clickable area so the inner (which the global\n\t\t// input reset forces to that height) fills the field without an override.\n\t\theight: var(--default-clickable-area);\n\t\twidth: 100%;\n\t\tborder-radius: var(--border-radius-element, 8px);\n\t\tbox-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.12);\n\t\t// Resting: subdued \"button\" look that sits on the themed header\n\t\tbackground-color: var(--resting-background);\n\t\t-webkit-backdrop-filter: var(--filter-background-blur);\n\t\tbackdrop-filter: var(--filter-background-blur);\n\t\t// Blue tint -> white surface on the shared timing, in step with the slide.\n\t\ttransition:\n\t\t\tbackground-color var(--search-anim-duration) var(--search-anim-easing),\n\t\t\tbox-shadow var(--search-anim-duration) var(--search-anim-easing);\n\n\t\t&:hover:not(.unified-search-input__field--active) {\n\t\t\tbackground-color: var(--resting-background-hover);\n\t\t}\n\n\t\t// Active: real input surface once focused or filled\n\t\t&--active {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n\n\t// Anchored at the leading edge and translated to the centre while at rest; on\n\t// focus (--active) the translate goes to 0 and it slides into place. Centre offset\n\t// is pure CSS: half the field (50cqi) minus half the group (50%) minus the pad, so\n\t// it self-corrects for any placeholder length or field width.\n\t&__resting {\n\t\t--slide-sign: 1;\n\t\tposition: absolute;\n\t\tinset-block: 0;\n\t\tinset-inline-start: var(--search-icon-pad);\n\t\tmax-width: calc(100% - 2 * var(--search-icon-pad));\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: var(--search-icon-gap);\n\t\tpointer-events: none;\n\t\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\n\t\ttransform: translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));\n\t\ttransition:\n\t\t\ttransform var(--search-anim-duration) var(--search-anim-easing),\n\t\t\tcolor var(--search-anim-duration) var(--search-anim-easing);\n\n\t\t.unified-search-input__field--active & {\n\t\t\ttransform: translateX(0);\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tmax-width: calc(100% - 7 * var(--search-icon-pad));\n\t\t}\n\t}\n\n\t// Placeholder text inside the resting group. Ellipsised, and hidden once typing\n\t// starts so it doesn't overlap the value. Scoped to the label class so the sibling\n\t// magnifier (also rendered as a ) stays visible.\n\t&__label {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\ttransition: opacity var(--search-anim-duration) var(--search-anim-easing);\n\t}\n\n\t&__resting--filled &__label {\n\t\topacity: 0;\n\t}\n\n\t// The material-design icon is inline (baseline-aligned), which leaves a\n\t// descender gap and makes the glyph sit high even when its box is centred.\n\t// Render it as a block so it fills its box, then nudge 1px down to sit on the\n\t// text's optical centre (a geometrically centred glyph reads slightly high).\n\t&__resting :deep(.material-design-icon__svg) {\n\t\tdisplay: block;\n\t\ttransform: translateY(1px);\n\t}\n\n\t// Only visible once active (at rest it's empty and covered by the overlay),\n\t// so it's styled for the active/white surface throughout.\n\t&__input {\n\t\tflex: 1;\n\t\tmin-width: 0;\n\t\theight: 100%;\n\t\tmargin: 0;\n\t\t// Leading space so the placeholder/value starts one gap past the magnifier,\n\t\t// matching the resting group exactly. Trailing padding mirrors the leading pad.\n\t\tpadding-inline: calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);\n\t\t// Opt out of NC's global input chrome (core/css/inputs.scss adds a border,\n\t\t// radius and focus box-shadow to any text input not in its exclusion list).\n\t\t// !important because that global focus rule outweighs a scoped class.\n\t\tborder: none !important;\n\t\tborder-radius: 0 !important;\n\t\tbox-shadow: none !important;\n\t\tbackground-color: transparent;\n\t\tcolor: var(--color-main-text);\n\t\tfont-size: var(--default-font-size);\n\n\t\t&::placeholder {\n\t\t\topacity: 1;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\toutline: none;\n\t\t}\n\t}\n\n\t&__clear,\n\t&__filter {\n\t\tflex-shrink: 0;\n\t\tmargin-inline-end: 2px;\n\t}\n\n\t&__loading {\n\t\tflex-shrink: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmargin-inline: var(--default-grid-baseline);\n\t}\n\n\t// Pinned to the trailing edge, overlaid on the input (pointer-events: none so a\n\t// click there still focuses the field).\n\t&__shortcut {\n\t\tposition: absolute;\n\t\tinset-inline-end: var(--default-grid-baseline);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tdisplay: flex;\n\t\tpointer-events: none;\n\n\t\t// On a narrow field the centred placeholder runs under the hint, so drop it\n\t\t// below a usable width. Keyed to the field's own inline-size (its container),\n\t\t// not the viewport, so it holds however crowded the header gets.\n\t\t@container (max-width: 400px) {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t:deep(kbd) {\n\t\t\tmin-width: 12px;\n\t\t\theight: 12px;\n\t\t\tpadding-inline: 5px;\n\t\t\tborder: 1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);\n\t\t\tborder-block-end-width: 2px;\n\t\t\tborder-radius: var(--border-radius-small, 4px);\n\t\t\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\n\t\t\tfont-size: 13px;\n\t\t}\n\t}\n}\n\n// On dark themes the plain overlay is nearly invisible on the header, so tint\n// the resting background with the primary colour instead.\n[data-theme-dark] .unified-search-input__field,\n[data-theme-dark-highcontrast] .unified-search-input__field {\n\t--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);\n\t--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent);\n}\n\n// translateX is physical, so flip the resting slide under RTL to keep it moving toward\n// the leading (right) edge. :dir(rtl) tracks the computed direction, so it applies whether\n// RTL comes from the body dir attribute or a direction style (an [dir=rtl] attribute\n// selector would miss the latter).\n.unified-search-input__resting:dir(rtl) {\n\t--slide-sign: -1;\n}\n\n// Respect reduced-motion: keep the end states but drop the slide/fade so nothing\n// animates on focus.\n@media (prefers-reduced-motion: reduce) {\n\t.unified-search-input__resting,\n\t.unified-search-input__resting span {\n\t\ttransition: none;\n\t}\n}\n\n// Mobile: NcHeaderButton styling to match the other header items\n.unified-search-input--mobile :deep(.header-menu) {\n\theight: var(--default-clickable-area);\n}\n\n.unified-search-input--mobile :deep(.header-menu__trigger) {\n\t--button-size: var(--default-clickable-area) !important;\n\theight: var(--default-clickable-area) !important;\n}\n\n.unified-search-input--mobile :deep(.button-vue) {\n\t--color-main-text: var(--color-background-plain-text);\n\tcolor: var(--color-background-plain-text);\n\tborder-radius: var(--border-radius-element) !important;\n\n\t&:hover:not(:disabled) {\n\t\tbackground-color: rgba(0, 0, 0, 0.1) !important;\n\t}\n\n\t&:active:not(:disabled) {\n\t\tbackground-color: rgba(0, 0, 0, 0.15) !important;\n\t}\n\n\t&:focus-visible {\n\t\tbackground-color: rgba(0, 0, 0, 0.1) !important;\n\t\toutline: none !important;\n\t\tbox-shadow: inset 0 0 0 2px var(--color-background-plain-text) !important;\n\t}\n}\n"],sourceRoot:""}]);const o=s},89226(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".local-unified-search[data-v-2b577e50]{--local-search-width: min(calc(250px + var(--dfb017de)), 95vw);box-sizing:border-box;position:relative;height:var(--header-height);width:var(--local-search-width);display:flex;align-items:center;z-index:10;padding-inline:var(--border-width-input-focused);overflow:hidden;inset-inline-end:0}.local-unified-search .local-unified-search__global-search[data-v-2b577e50]{position:absolute;inset-inline-end:var(--default-clickable-area)}.local-unified-search .local-unified-search__input[data-v-2b577e50]{box-sizing:border-box;margin:0;width:var(--local-search-width)}.local-unified-search .local-unified-search__input[data-v-2b577e50] input{padding-inline-end:calc(var(--dfb017de) + var(--default-clickable-area))}.animated-width[data-v-2b577e50]{transition:width var(--animation-quick) linear}.v-leave-active[data-v-2b577e50]{position:absolute !important}.v-enter.local-unified-search[data-v-2b577e50],.v-leave-to.local-unified-search[data-v-2b577e50]{--local-search-width: var(--clickable-area-large)}@media screen and (max-width: 500px){.local-unified-search.local-unified-search--open[data-v-2b577e50]{--local-search-width: 100vw;padding-inline:var(--default-grid-baseline)}.unified-search-menu:has(.local-unified-search--open){position:absolute !important;inset-inline:0}.header-end:has(.local-unified-search--open) > :not(.unified-search-menu){display:none}}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue"],names:[],mappings:"AACA,uCACC,8DAAA,CACA,qBAAA,CACA,iBAAA,CACA,2BAAA,CACA,+BAAA,CACA,YAAA,CACA,kBAAA,CAEA,UAAA,CAEA,gDAAA,CAEA,eAAA,CAEA,kBAAA,CAEA,4EACC,iBAAA,CACA,8CAAA,CAGD,oEACC,qBAAA,CAEA,QAAA,CACA,+BAAA,CAIA,0EAEC,wEAAA,CAKH,iCACC,8CAAA,CAKD,iCACC,4BAAA,CAKA,iGAEC,iDAAA,CAIF,qCACC,kEAEC,2BAAA,CACA,2CAAA,CAID,sDACC,4BAAA,CACA,cAAA,CAGD,0EACC,YAAA,CAAA",sourcesContent:['\n.local-unified-search {\n\t--local-search-width: min(calc(250px + v-bind(\'searchGlobalButtonCSSWidth\')), 95vw);\n\tbox-sizing: border-box;\n\tposition: relative;\n\theight: var(--header-height);\n\twidth: var(--local-search-width);\n\tdisplay: flex;\n\talign-items: center;\n\t// Ensure it overlays the other entries\n\tz-index: 10;\n\t// add some padding for the focus visible outline\n\tpadding-inline: var(--border-width-input-focused);\n\t// hide the overflow - needed for the transition\n\toverflow: hidden;\n\t// Ensure the position is fixed also during "position: absolut" (transition)\n\tinset-inline-end: 0;\n\n\t#{&} &__global-search {\n\t\tposition: absolute;\n\t\tinset-inline-end: var(--default-clickable-area);\n\t}\n\n\t#{&} &__input {\n\t\tbox-sizing: border-box;\n\t\t// override some nextcloud-vue styles\n\t\tmargin: 0;\n\t\twidth: var(--local-search-width);\n\n\t\t// Fixup the spacing so we can fit in the "search globally" button\n\t\t// this can break at any time the component library changes\n\t\t:deep(input) {\n\t\t\t// search global width + close button width\n\t\t\tpadding-inline-end: calc(v-bind(\'searchGlobalButtonCSSWidth\') + var(--default-clickable-area));\n\t\t}\n\t}\n}\n\n.animated-width {\n\ttransition: width var(--animation-quick) linear;\n}\n\n// Make the position absolute during the transition\n// this is needed to "hide" the button behind it\n.v-leave-active {\n\tposition: absolute !important;\n}\n\n.v-enter,\n.v-leave-to {\n\t&.local-unified-search {\n\t\t// Start with only the overlay button\n\t\t--local-search-width: var(--clickable-area-large);\n\t}\n}\n\n@media screen and (max-width: 500px) {\n\t.local-unified-search.local-unified-search--open {\n\t\t// 100% but still show the menu toggle on the very right\n\t\t--local-search-width: 100vw;\n\t\tpadding-inline: var(--default-grid-baseline);\n\t}\n\n\t// when open we need to position it absolute to allow overlay the full bar\n\t:global(.unified-search-menu:has(.local-unified-search--open)) {\n\t\tposition: absolute !important;\n\t\tinset-inline: 0;\n\t}\n\t// Hide all other entries, especially the user menu as it might leak pixels\n\t:global(.header-end:has(.local-unified-search--open) > :not(.unified-search-menu)) {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const o=s},52008(t,e,n){n.d(e,{A:()=>A});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r),o=n(4417),l=n.n(o),c=new URL(n(59279),n.b),d=s()(a()),u=l()(c);d.push([t.id,`.unified-search-modal-root[data-v-f77795fc]{position:absolute;inset-block-start:100%;inset-inline:0;z-index:50 !important;margin-block-start:6px;display:flex;justify-content:center}.unified-search-modal__scrim[data-v-f77795fc]{position:fixed;inset:0;z-index:0;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color), 0.5)}.unified-search-modal__container[data-v-f77795fc]{position:relative;z-index:1;display:flex;flex-direction:column;flex-shrink:0;width:600px;max-width:90vw;max-height:calc(90vh - var(--header-height));border-radius:var(--border-radius-container-large, var(--border-radius-rounded));overflow:hidden;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px rgba(0,0,0,.2);transition:transform 240ms cubic-bezier(0.22, 1, 0.36, 1)}@media only screen and ((max-width: 512px) or (max-height: 400px)){.unified-search-modal-root[data-v-f77795fc]{position:fixed;inset-block-start:var(--header-height);inset-inline:0;inset-block-end:0;margin-block-start:0}.unified-search-modal__container[data-v-f77795fc]{width:100%;max-width:initial;height:100%;max-height:initial;border-radius:0}}.unified-search-modal-enter-active[data-v-f77795fc],.unified-search-modal-leave-active[data-v-f77795fc]{transition:opacity 250ms}.unified-search-modal-enter[data-v-f77795fc],.unified-search-modal-leave-to[data-v-f77795fc]{opacity:0}.unified-search-modal-enter .unified-search-modal__container[data-v-f77795fc],.unified-search-modal-leave-to .unified-search-modal__container[data-v-f77795fc]{transform:translateY(-6px)}@media(prefers-reduced-motion: reduce){.unified-search-modal__container[data-v-f77795fc]{transition:none}.unified-search-modal-enter .unified-search-modal__container[data-v-f77795fc],.unified-search-modal-leave-to .unified-search-modal__container[data-v-f77795fc]{transform:none}}.unified-search-modal__header[data-v-f77795fc]{position:relative;display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);padding-inline:calc(var(--default-grid-baseline)*4);padding-block:calc(var(--default-grid-baseline)*4) 0}.unified-search-modal__header--has-results[data-v-f77795fc]{padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__header--has-results[data-v-f77795fc]::after{content:"";position:absolute;inset-inline:calc(var(--default-grid-baseline)*4);inset-block-end:0;border-block-end:1px solid var(--color-border)}.unified-search-modal__mobile-input[data-v-f77795fc]{display:flex;align-items:center;gap:4px}.unified-search-modal__mobile-input[data-v-f77795fc] .input-field{flex:1 1 auto}.unified-search-modal__filters[data-v-f77795fc]{display:flex;flex-wrap:wrap;gap:4px;justify-content:start}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc],.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc],.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc]{flex:1 1 0;min-width:0}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .v-popper{display:block;width:100%}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .button-vue__wrapper{justify-content:center}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .button-vue{position:relative;width:100%;padding-inline:calc(var(--default-grid-baseline)*6);border-radius:var(--border-radius-element)}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .button-vue::after{content:"";position:absolute;inset-inline-end:calc(var(--default-grid-baseline)*2);inset-block:0;margin-block:auto;width:16px;height:16px;background-color:currentColor;mask-image:url(${u});mask-repeat:no-repeat;mask-position:center;mask-size:contain}.unified-search-modal__filters-applied[data-v-f77795fc]{display:flex;flex-wrap:wrap}.unified-search-modal__no-content[data-v-f77795fc]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--default-grid-baseline)*2);min-height:200px;padding-inline:calc(var(--default-grid-baseline)*4);padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__detail-header[data-v-f77795fc]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--default-grid-baseline)*2);position:sticky;top:0;z-index:1;background-color:var(--color-main-background);padding-block:calc(var(--default-grid-baseline)*3) calc(var(--default-grid-baseline)*2);border-block-end:1px solid var(--color-border)}.unified-search-modal__detail-back[data-v-f77795fc]{justify-self:start}.unified-search-modal__detail-title[data-v-f77795fc]{font-size:var(--default-font-size);font-weight:var(--font-weight-heading);grid-column:2;margin:0;margin-block-start:-3px;align-self:stretch;display:flex;align-items:center;justify-content:center}.unified-search-modal__connected-services[data-v-f77795fc]{display:flex;flex-wrap:wrap;width:100%;margin-block-start:calc(var(--default-grid-baseline)*3)}.unified-search-modal__rtl-icon[data-v-f77795fc]:dir(rtl){transform:scaleX(-1)}.unified-search-modal__results[data-v-f77795fc]{flex:1 1 auto;min-height:0;overflow:hidden auto;padding-inline:calc(var(--default-grid-baseline)*4);padding-block:0 calc(var(--default-grid-baseline)*4)}.unified-search-modal__results .result-title[data-v-f77795fc]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);margin-block:14px 4px;margin-inline-start:calc(var(--default-grid-baseline)*2)}.unified-search-modal__results .result-title--more[data-v-f77795fc]{margin-block:calc(var(--default-grid-baseline)*2) var(--default-grid-baseline)}.unified-search-modal__results .result-title--more[data-v-f77795fc] .button-vue__text{font-size:var(--default-font-size);color:var(--color-main-text)}.unified-search-modal__results .result-title--more[data-v-f77795fc] .button-vue__icon{color:var(--color-main-text)}.unified-search-modal__results .result-footer[data-v-f77795fc]{justify-content:space-between;align-items:center;display:flex}.unified-search-modal__results .result--unfiltered[data-v-f77795fc]{opacity:.7}.unified-search-modal__unfiltered-header[data-v-f77795fc]{display:flex;flex-direction:column;gap:2px;margin-block:16px 8px;padding-block:12px 0}.result-group+.result-group>.unified-search-modal__unfiltered-header[data-v-f77795fc]{border-block-start:1px solid var(--color-border)}.unified-search-modal__unfiltered-label[data-v-f77795fc]{font-weight:var(--font-weight-heading);color:var(--color-text-maxcontrast)}.filter-button__icon[data-v-f77795fc]{height:20px;width:20px;object-fit:contain;filter:var(--background-invert-if-bright);padding:11px}@media only screen and (max-height: 400px){.unified-search-modal__results[data-v-f77795fc]{overflow:unset}}`,"",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/UnifiedSearchModal.vue"],names:[],mappings:"AAKA,4CACC,iBAAA,CACA,sBAAA,CACA,cAAA,CAGA,qBAAA,CACA,sBAAA,CACA,YAAA,CACA,sBAAA,CAKD,8CACC,cAAA,CACA,OAAA,CACA,SAAA,CACA,yBAAA,CACA,iDAAA,CAKD,kDACC,iBAAA,CACA,SAAA,CACA,YAAA,CACA,qBAAA,CAGA,aAAA,CACA,WAAA,CACA,cAAA,CAEA,4CAAA,CACA,gFAAA,CAEA,eAAA,CACA,6CAAA,CACA,4BAAA,CACA,kCAAA,CAGA,yDAAA,CAID,mEACC,4CAGC,cAAA,CACA,sCAAA,CACA,cAAA,CACA,iBAAA,CACA,oBAAA,CAGD,kDACC,UAAA,CACA,iBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CAAA,CAKF,wGAEC,wBAAA,CAGD,6FAEC,SAAA,CAGD,+JAEC,0BAAA,CAKD,uCACC,kDACC,eAAA,CAGD,+JAEC,cAAA,CAAA,CAKD,+CAKC,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mDAAA,CAEA,oDAAA,CAIA,4DACC,sDAAA,CAEA,mEACC,UAAA,CACA,iBAAA,CACA,iDAAA,CACA,iBAAA,CACA,8CAAA,CAKH,qDACC,YAAA,CACA,kBAAA,CACA,OAAA,CAEA,kEACC,aAAA,CAIF,gDACC,YAAA,CACA,cAAA,CACA,OAAA,CACA,qBAAA,CAIA,mQAGC,UAAA,CACA,WAAA,CAEA,iSACC,aAAA,CACA,UAAA,CAID,kUACC,sBAAA,CAID,uSACC,iBAAA,CACA,UAAA,CACA,mDAAA,CACA,0CAAA,CAEA,4TACC,UAAA,CACA,iBAAA,CACA,qDAAA,CACA,aAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,6BAAA,CACA,kDAAA,CACA,qBAAA,CACA,oBAAA,CACA,iBAAA,CAMJ,wDACC,YAAA,CACA,cAAA,CAGD,mDACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,wCAAA,CAEA,gBAAA,CAEA,mDAAA,CACA,sDAAA,CAID,sDAEC,YAAA,CACA,kCAAA,CACA,kBAAA,CACA,wCAAA,CAGA,eAAA,CACA,KAAA,CACA,SAAA,CACA,6CAAA,CACA,uFAAA,CACA,8CAAA,CAGD,oDACC,kBAAA,CAGD,qDACC,kCAAA,CACA,sCAAA,CACA,aAAA,CACA,QAAA,CACA,uBAAA,CAGA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAID,2DACC,YAAA,CACA,cAAA,CAGA,UAAA,CACA,uDAAA,CAKD,0DACC,oBAAA,CAGD,gDAEC,aAAA,CACA,YAAA,CACA,oBAAA,CAEA,mDAAA,CACA,oDAAA,CAGC,8DACC,mCAAA,CACA,kCAAA,CAEA,qBAAA,CACA,wDAAA,CAKD,oEACC,8EAAA,CAEA,sFACC,kCAAA,CACA,4BAAA,CAGD,sFACC,4BAAA,CAIF,+DACC,6BAAA,CACA,kBAAA,CACA,YAAA,CAGD,oEACC,UAAA,CAMH,0DACC,YAAA,CACA,qBAAA,CACA,OAAA,CACA,qBAAA,CACA,oBAAA,CAKA,sFACC,gDAAA,CAIF,yDACC,sCAAA,CACA,mCAAA,CAIF,sCACC,WAAA,CACA,UAAA,CACA,kBAAA,CACA,yCAAA,CACA,YAAA,CAID,2CACC,gDACC,cAAA,CAAA",sourcesContent:["\n\n// Anchor the popover under the header input (the .unified-search-menu parent is\n// the positioning context) instead of centering it in the viewport. The scrim is\n// fixed separately so it still dims the whole page.\n.unified-search-modal-root {\n\tposition: absolute;\n\tinset-block-start: 100%;\n\tinset-inline: 0;\n\t// One below the header input (z-index: 51) and above the page. !important wins\n\t// the stacking cascade inside the themed #header.\n\tz-index: 50 !important;\n\tmargin-block-start: 6px;\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n// Backdrop, mirrors NcModal's .modal-mask. Fixed so it covers the whole viewport\n// regardless of the anchored root.\n.unified-search-modal__scrim {\n\tposition: fixed;\n\tinset: 0;\n\tz-index: 0;\n\t--backdrop-color: 0, 0, 0;\n\tbackground-color: rgba(var(--backdrop-color), 0.5);\n}\n\n// Dialog panel: NcModal's \"normal\" chrome, but width-matched to the header input\n// and anchored under it, growing downward and scrolling internally when tall.\n.unified-search-modal__container {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\t// Match the previous unified-search modal (NcModal \"normal\" size). flex-shrink: 0\n\t// stops the flex parent from collapsing it below 600px when the menu is narrower.\n\tflex-shrink: 0;\n\twidth: 600px;\n\tmax-width: 90vw;\n\t// Leave ~10vh below the panel so it does not reach the bottom of the page\n\tmax-height: calc(90vh - var(--header-height));\n\tborder-radius: var(--border-radius-container-large, var(--border-radius-rounded));\n\t// Clip the header/results to the rounded corners\n\toverflow: hidden;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n\tbox-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n\t// The panel slides down into place; the enter/leave classes set the start offset.\n\t// Same easeOutQuart curve as the header input so the whole search UI moves in step.\n\ttransition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n// Fullscreen on small viewports, mirrors NcModal's responsive breakpoint\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n\t.unified-search-modal-root {\n\t\t// Fill the viewport below the header bar, leaving it visible and interactive\n\t\t// (matches the previous unified search and the rest of the mobile chrome).\n\t\tposition: fixed;\n\t\tinset-block-start: var(--header-height);\n\t\tinset-inline: 0;\n\t\tinset-block-end: 0;\n\t\tmargin-block-start: 0;\n\t}\n\n\t.unified-search-modal__container {\n\t\twidth: 100%;\n\t\tmax-width: initial;\n\t\theight: 100%;\n\t\tmax-height: initial;\n\t\tborder-radius: 0;\n\t}\n}\n\n// Open/close animation: the backdrop fades while the panel slides down from the top\n.unified-search-modal-enter-active,\n.unified-search-modal-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.unified-search-modal-enter,\n.unified-search-modal-leave-to {\n\topacity: 0;\n}\n\n.unified-search-modal-enter .unified-search-modal__container,\n.unified-search-modal-leave-to .unified-search-modal__container {\n\ttransform: translateY(-6px);\n}\n\n// Respect reduced-motion: keep the backdrop cross-fade (opacity is not motion) but\n// drop the panel slide so nothing moves on open/close.\n@media (prefers-reduced-motion: reduce) {\n\t.unified-search-modal__container {\n\t\ttransition: none;\n\t}\n\n\t.unified-search-modal-enter .unified-search-modal__container,\n\t.unified-search-modal-leave-to .unified-search-modal__container {\n\t\ttransform: none;\n\t}\n}\n\n.unified-search-modal {\n\t&__header {\n\t\t// Owns all its own spacing: the inline inset, the gap above the first row, and the\n\t\t// gap between stacked rows (mobile input, filters, applied chips). position:\n\t\t// relative only anchors the divider below; the header never scrolls (the results\n\t\t// list scrolls in its own box), so it needs no sticky offset.\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4);\n\t\t// Trim the bottom when the filter row is all there is; results add it back below.\n\t\tpadding-block: calc(var(--default-grid-baseline) * 4) 0;\n\n\t\t// With results below, restore the full bottom inset above the divider (which aligns\n\t\t// to the content edge).\n\t\t&--has-results {\n\t\t\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\n\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline: calc(var(--default-grid-baseline) * 4);\n\t\t\t\tinset-block-end: 0;\n\t\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t&__mobile-input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\n\t\t:deep(.input-field) {\n\t\t\tflex: 1 1 auto;\n\t\t}\n\t}\n\n\t&__filters {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 4px;\n\t\tjustify-content: start;\n\n\t\t// The three category triggers split the row into thirds; any extra controls\n\t\t// (local search) keep their size and wrap below.\n\t\t> [data-cy-unified-search-filter=\"places\"],\n\t\t> [data-cy-unified-search-filter=\"date\"],\n\t\t> [data-cy-unified-search-filter=\"people\"] {\n\t\t\tflex: 1 1 0;\n\t\t\tmin-width: 0;\n\n\t\t\t:deep(.v-popper) {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t// Centre [icon] label; the chevron is pinned to the trailing edge below.\n\t\t\t:deep(.button-vue__wrapper) {\n\t\t\t\tjustify-content: center;\n\t\t\t}\n\n\t\t\t// NcActions exposes no dropdown chevron, so paint one at the trailing edge.\n\t\t\t:deep(.button-vue) {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding-inline: calc(var(--default-grid-baseline) * 6);\n\t\t\t\tborder-radius: var(--border-radius-element);\n\n\t\t\t\t&::after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tinset-inline-end: calc(var(--default-grid-baseline) * 2);\n\t\t\t\t\tinset-block: 0;\n\t\t\t\t\tmargin-block: auto;\n\t\t\t\t\twidth: 16px;\n\t\t\t\t\theight: 16px;\n\t\t\t\t\tbackground-color: currentColor;\n\t\t\t\t\tmask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E\");\n\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\tmask-position: center;\n\t\t\t\t\tmask-size: contain;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__filters-applied {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\t&__no-content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\t// min-height (not fixed) so the panel grows to keep the button inside, not spilling past the edge.\n\t\tmin-height: 200px;\n\t\t// Match the results container's inset so the button lines up, not flush to the edges.\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4);\n\t\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\n\t}\n\n\t// Detail-view chrome: the back control sits above the category's heading + list.\n\t&__detail-header {\n\t\t// Three tracks: \"Back\" at the start, title centred, empty end track to balance it.\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr auto 1fr;\n\t\talign-items: center;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\t// Sticky at the top of the scrolling results. Background hides rows underneath; padding\n\t\t// (not margin) stops bleed-through above.\n\t\tposition: sticky;\n\t\ttop: 0;\n\t\tz-index: 1;\n\t\tbackground-color: var(--color-main-background);\n\t\tpadding-block: calc(var(--default-grid-baseline) * 3) calc(var(--default-grid-baseline) * 2);\n\t\tborder-block-end: 1px solid var(--color-border);\n\t}\n\n\t&__detail-back {\n\t\tjustify-self: start;\n\t}\n\n\t&__detail-title {\n\t\tfont-size: var(--default-font-size);\n\t\tfont-weight: var(--font-weight-heading);\n\t\tgrid-column: 2;\n\t\tmargin: 0;\n\t\tmargin-block-start: -3px;\n\t\t// Centre the text the same way the Back button centres its label: stretch to the row\n\t\t// height and flex-centre, instead of a line-height that lands the ink a few px off.\n\t\talign-self: stretch;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n\n\t// End-of-list (and empty-state) connected-services opt-in.\n\t&__connected-services {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\t// Stretch to panel width so the wide button fills it (the empty-state's centred column\n\t\t// would otherwise shrink it to content width).\n\t\twidth: 100%;\n\t\tmargin-block-start: calc(var(--default-grid-baseline) * 3);\n\t}\n\n\t// Directional glyphs (back arrow, more-from chevron) point the other way in RTL.\n\t// :dir(rtl) tracks the computed direction, unlike an [dir=rtl] attribute selector.\n\t&__rtl-icon:dir(rtl) {\n\t\ttransform: scaleX(-1);\n\t}\n\n\t&__results {\n\t\t// Take the remaining panel height and scroll internally (container has a max-height)\n\t\tflex: 1 1 auto;\n\t\tmin-height: 0;\n\t\toverflow: hidden auto;\n\t\t// Adjust padding to match container but keep the scrollbar on the very end\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4);\n\t\tpadding-block: 0 calc(var(--default-grid-baseline) * 4);\n\n\t\t.result {\n\t\t\t&-title {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t// 14px is not a grid multiple; kept raw rather than mixing units in one shorthand.\n\t\t\t\tmargin-block: 14px 4px;\n\t\t\t\tmargin-inline-start: calc(var(--default-grid-baseline) * 2);\n\t\t\t}\n\n\t\t\t// The overflow heading is a real button; match the plain title's size and colour,\n\t\t\t// but leave it NcButton's own --font-weight-element weight.\n\t\t\t&-title--more {\n\t\t\t\tmargin-block: calc(var(--default-grid-baseline) * 2) var(--default-grid-baseline);\n\n\t\t\t\t:deep(.button-vue__text) {\n\t\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t}\n\n\t\t\t\t:deep(.button-vue__icon) {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-footer {\n\t\t\t\tjustify-content: space-between;\n\t\t\t\talign-items: center;\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\n\t\t\t&--unfiltered {\n\t\t\t\topacity: 0.7;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t&__unfiltered-header {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 2px;\n\t\tmargin-block: 16px 8px;\n\t\tpadding-block: 12px 0;\n\n\t\t// Divide the partial matches from the results above, but only when some precede\n\t\t// them: when they lead the list this rule lands just under the header's own\n\t\t// divider, and the two read as one double line.\n\t\t.result-group + .result-group > & {\n\t\t\tborder-block-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__unfiltered-label {\n\t\tfont-weight: var(--font-weight-heading);\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n\n.filter-button__icon {\n\theight: 20px;\n\twidth: 20px;\n\tobject-fit: contain;\n\tfilter: var(--background-invert-if-bright);\n\tpadding: 11px; // align with text to fit at least 44px\n}\n\n// Ensure modal is accessible on small devices\n@media only screen and (max-height: 400px) {\n\t.unified-search-modal__results {\n\t\toverflow: unset;\n\t}\n}\n"],sourceRoot:""}]);const A=d},16968(t,e,n){n.d(e,{A:()=>o});var i=n(71354),a=n.n(i),r=n(76314),s=n.n(r)()(a());s.push([t.id,".unified-search-menu[data-v-44547071]{position:relative;display:flex;align-items:center;justify-content:center}","",{version:3,sources:["webpack://./core/src/views/UnifiedSearch.vue"],names:[],mappings:"AAEA,sCAEC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n// this is needed to allow us overriding component styles (focus-visible)\n.unified-search-menu {\n\t// Positioning context so the results popover can anchor under the input\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n"],sourceRoot:""}]);const o=s},59279(t){t.exports="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z%27/%3E%3C/svg%3E"}},n={};function i(t){var a=n[t];if(void 0!==a)return a.exports;var r=n[t]={id:t,loaded:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=e,t=[],i.O=(e,n,a,r)=>{if(!n){var s=1/0;for(d=0;d=r)&&Object.keys(i.O).every(t=>i.O[t](n[l]))?n.splice(l--,1):(o=!1,r0&&t[d-1][2]>r;d--)t[d]=t[d-1];t[d]=[n,a,r]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.e=()=>Promise.resolve(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=6776,(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var t={6776:0};i.O.j=e=>0===t[e];var e=(e,n)=>{var a,r,[s,o,l]=n,c=0;if(s.some(e=>0!==t[e])){for(a in o)i.o(o,a)&&(i.m[a]=o[a]);if(l)var d=l(i)}for(e&&e(n);ci(87444));a=i.O(a)})(); +//# sourceMappingURL=core-unified-search.js.map?v=30d3268aabc5c07ebc89 \ No newline at end of file diff --git a/dist/core-unified-search.js.map b/dist/core-unified-search.js.map index 9b4edbfc2da34..18fe760a0bf07 100644 --- a/dist/core-unified-search.js.map +++ b/dist/core-unified-search.js.map @@ -1 +1 @@ -{"version":3,"file":"core-unified-search.js?v=e80536f37978a82ea622","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/vue-material-design-icons/FilterVariant.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FilterVariant.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FilterVariant.vue?a827","webpack:///nextcloud/node_modules/vue-material-design-icons/FilterVariant.vue?vue&type=template&id=30f11e8a","webpack:///nextcloud/node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Magnify.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Magnify.vue?0775","webpack:///nextcloud/node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=194dfb2a","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchInput.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchInput.vue?847a","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchInput.vue?8fd4","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?3651","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?395a","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchModal.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountMultipleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountMultipleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountMultipleOutline.vue?b80e","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountMultipleOutline.vue?vue&type=template&id=970e2386","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=16833c02","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlankOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlankOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlankOutline.vue?3bca","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlankOutline.vue?vue&type=template&id=784b59e6","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Filter.vue?3711","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue?vue&type=template&id=be2cf3ce","webpack:///nextcloud/node_modules/vue-material-design-icons/ShapeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ShapeOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ShapeOutline.vue?da7c","webpack:///nextcloud/node_modules/vue-material-design-icons/ShapeOutline.vue?vue&type=template&id=3f5754ea","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?b7cc","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarRange.vue?f09e","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=template&id=5868fd9e","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?0fb6","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?92fe","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?a21f","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertCircleOutline.vue?730b","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=template&id=da40788e","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?ade6","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?4344","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?ad3b","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?fc0d","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?2352","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?e4b5","webpack:///nextcloud/core/src/components/AppIcon.vue","webpack:///nextcloud/core/src/components/AppIcon.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/AppIcon.vue?eae5","webpack://nextcloud/./core/src/components/AppIcon.vue?9297","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?cb69","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?32d3","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/UnifiedSearchService.js","webpack:///nextcloud/core/src/services/UnifiedSearchController.ts","webpack:///nextcloud/core/src/store/unified-search-external-filters.js","webpack:///nextcloud/core/src/composables/useUnifiedSearch.ts","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchModal.vue?vue&type=script&lang=ts","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchModal.vue?0e50","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchModal.vue?0132","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/views/UnifiedSearch.vue","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?5046","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?1990","webpack:///nextcloud/core/src/unified-search.ts","webpack:///nextcloud/core/src/components/AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchModal.vue?vue&type=style&index=0&id=39a656a6&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","\n \n \n {{ title }}\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FilterVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FilterVariant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterVariant.vue?vue&type=template&id=30f11e8a\"\nimport script from \"./FilterVariant.vue?vue&type=script&lang=js\"\nexport * from \"./FilterVariant.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon filter-variant-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Magnify.vue?vue&type=template&id=194dfb2a\"\nimport script from \"./Magnify.vue?vue&type=script&lang=js\"\nexport * from \"./Magnify.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon magnify-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('search',{staticClass:\"unified-search-input\",class:{ 'unified-search-input--mobile': _setup.isSmallMobile }},[(_setup.isSmallMobile)?_c(_setup.NcHeaderButton,{attrs:{\"id\":\"unified-search-trigger\",\"ariaLabel\":_setup.placeholderText,\"aria-haspopup\":\"dialog\",\"aria-expanded\":_vm.expanded ? 'true' : 'false'},on:{\"click\":function($event){return _vm.$emit('click', $event)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.IconMagnify,{attrs:{\"size\":20}})]},proxy:true}],null,false,1795316816)}):_c('div',{ref:\"fieldRef\",staticClass:\"unified-search-input__field\",class:{ 'unified-search-input__field--active': _setup.isActive },on:{\"focusin\":function($event){_setup.isFocused = true},\"focusout\":_setup.onFocusOut,\"mousedown\":_setup.onMouseDown}},[_c('div',{staticClass:\"unified-search-input__resting\",class:{ 'unified-search-input__resting--filled': _vm.query.length > 0 },attrs:{\"aria-hidden\":\"true\"}},[_c(_setup.IconMagnify,{attrs:{\"size\":20}}),_vm._v(\" \"),_c('span',{staticClass:\"unified-search-input__label\"},[_vm._v(_vm._s(_setup.placeholderText))])],1),_vm._v(\" \"),_c('input',{ref:\"inputRef\",staticClass:\"unified-search-input__input\",attrs:{\"type\":\"text\",\"role\":\"combobox\",\"aria-autocomplete\":\"list\",\"aria-expanded\":_vm.expanded ? 'true' : 'false',\"aria-controls\":_vm.expanded ? _setup.resultsContainerId : undefined,\"aria-activedescendant\":_vm.expanded ? (_vm.activeDescendantId || undefined) : undefined,\"aria-label\":_setup.placeholderText},domProps:{\"value\":_vm.query},on:{\"input\":_setup.onInput,\"keydown\":_setup.onKeyDown}}),_vm._v(\" \"),(_setup.showFunnel)?_c(_setup.NcButton,{staticClass:\"unified-search-input__filter\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_setup.t('core', 'Filters')},on:{\"click\":_setup.openFilters},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.IconFilterVariant,{attrs:{\"size\":20}})]},proxy:true}],null,false,2820714996)}):_vm._e(),_vm._v(\" \"),(_vm.loading)?_c(_setup.NcLoadingIcon,{staticClass:\"unified-search-input__loading\",attrs:{\"size\":20}}):_vm._e(),_vm._v(\" \"),(_setup.isActive)?_c(_setup.NcButton,{staticClass:\"unified-search-input__clear\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.query.length > 0 ? _setup.t('core', 'Clear search') : _setup.t('core', 'Close search')},on:{\"click\":_setup.clearOrClose},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.IconClose,{attrs:{\"size\":20}})]},proxy:true}],null,false,4099733813)}):_vm._e(),_vm._v(\" \"),(!_setup.isActive)?_c('span',{staticClass:\"unified-search-input__shortcut\",attrs:{\"aria-hidden\":\"true\"}},[_c(_setup.NcKbd,{attrs:{\"symbol\":\"Control\"}}),_vm._v(\" \"),_c(_setup.NcKbd,{attrs:{\"symbol\":\"K\"}})],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchInput.vue?vue&type=template&id=59e94aec&scoped=true\"\nimport script from \"./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59e94aec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Transition',[(_vm.open)?_c('div',{staticClass:\"local-unified-search animated-width\",class:{ 'local-unified-search--open': _vm.open }},[_c(_setup.NcInputField,{ref:\"searchInput\",staticClass:\"local-unified-search__input animated-width\",attrs:{\"aria-label\":_setup.t('core', 'Search in current app'),\"placeholder\":_setup.t('core', 'Search in current app'),\"show-trailing-button\":\"\",\"trailing-button-label\":_setup.t('core', 'Clear search'),\"model-value\":_vm.query},on:{\"update:value\":function($event){return _vm.$emit('update:query', $event)},\"trailing-button-click\":_setup.clearAndCloseSearch},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}],null,false,3585538455)}),_vm._v(\" \"),_c(_setup.NcButton,{ref:\"searchGlobalButton\",staticClass:\"local-unified-search__global-search\",attrs:{\"aria-label\":_setup.t('core', 'Search everywhere'),\"title\":_setup.t('core', 'Search everywhere'),\"variant\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.$emit('global-search')}},scopedSlots:_vm._u([(!_setup.isMobile)?{key:\"default\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('core', 'Search everywhere'))+\"\\n\\t\\t\\t\")]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCloudSearchOutline}})]},proxy:true}],null,true)})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchLocalSearchBar.vue?vue&type=template&id=2b577e50&scoped=true\"\nimport script from \"./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b577e50\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('transition',{attrs:{\"name\":\"unified-search-modal\",\"appear\":\"\"}},[(_vm.open)?_c('div',{staticClass:\"unified-search-modal-root\"},[_c('CustomDateRangeModal',{staticClass:\"unified-search__date-range\",attrs:{\"isOpen\":_vm.showDateRangeModal},on:{\"set:customDateRange\":_vm.setCustomDateRange,\"update:isOpen\":function($event){_vm.showDateRangeModal = $event}}}),_vm._v(\" \"),_c('div',{ref:\"panel\",staticClass:\"unified-search-modal__container\",attrs:{\"id\":\"unified-search-results\"}},[_c('div',{staticClass:\"hidden-visually\",attrs:{\"role\":\"status\",\"aria-live\":\"polite\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.liveMessage)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHeader),expression:\"showHeader\"}],staticClass:\"unified-search-modal__header\",class:{ 'unified-search-modal__header--has-results': _vm.hasVisibleResults && !_vm.detailCategory }},[(_vm.isSmallMobile)?_c('div',{staticClass:\"unified-search-modal__mobile-input\"},[_c('NcTextField',{attrs:{\"type\":\"search\",\"label\":_vm.t('core', 'Apps, files, messages, and more'),\"modelValue\":_vm.searchQuery,\"showTrailingButton\":_vm.searchQuery.length > 0,\"trailingButtonLabel\":_vm.t('core', 'Clear search')},on:{\"update:modelValue\":_vm.onMobileSearchInput,\"trailing-button-click\":function($event){_vm.searchQuery = ''}}}),_vm._v(\" \"),(_vm.isBusy)?_c('NcLoadingIcon',{attrs:{\"size\":20}}):_vm._e(),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Close search')},on:{\"click\":function($event){return _vm.onUpdateOpen(false)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)})],1):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showFilterRow),expression:\"showFilterRow\"}],staticClass:\"unified-search-modal__filters\",attrs:{\"data-cy-unified-search-filters\":\"\"}},[_c('NcActions',{attrs:{\"wide\":\"\",\"size\":\"small\",\"open\":_vm.providerActionMenuIsOpen,\"menu-name\":_vm.t('core', 'Type'),\"variant\":_vm.providerFilterActive ? 'primary' : 'secondary',\"data-cy-unified-search-filter\":\"places\"},on:{\"update:open\":function($event){_vm.providerActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconShapeOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1084672236)},[_vm._v(\" \"),_vm._l((_vm.providers),function(provider){return _c('NcActionButton',{key:`${provider.id}-${provider.name.replace(/\\s/g, '')}`,attrs:{\"disabled\":provider.disabled},on:{\"click\":function($event){return _vm.addProviderFilter(provider)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"filter-button__icon\",attrs:{\"src\":provider.icon,\"alt\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(provider.name)+\"\\n\\t\\t\\t\\t\\t\\t\")])})],2),_vm._v(\" \"),_c('NcActions',{attrs:{\"size\":\"small\",\"wide\":\"\",\"open\":_vm.dateActionMenuIsOpen,\"menu-name\":_vm.t('core', 'Date'),\"variant\":_vm.dateFilterActive ? 'primary' : 'secondary',\"data-cy-unified-search-filter\":\"date\"},on:{\"update:open\":function($event){_vm.dateActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlankOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,2513324059)},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('today')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Today'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('7days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 7 days'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('30days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 30 days'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('thisyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'This year'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('lastyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last year'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('custom')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Custom date range'))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('SearchableList',{attrs:{\"labelText\":_vm.t('core', 'Search people'),\"searchList\":_vm.userContacts,\"emptyContentText\":_vm.t('core', 'Not found'),\"data-cy-unified-search-filter\":\"people\"},on:{\"search-term-change\":_vm.debouncedFilterContacts,\"item-selected\":_vm.applyPersonFilter},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{attrs:{\"wide\":\"\",\"size\":\"small\",\"variant\":\"secondary\",\"pressed\":_vm.personFilterActive},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAccountMultipleOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,2457664786)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'People'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]},proxy:true}],null,false,662085814)}),_vm._v(\" \"),(_vm.localSearch)?_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"data-cy-unified-search-filter\":\"current-view\"},on:{\"click\":_vm.searchLocally},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconFilter',{attrs:{\"size\":20}})]},proxy:true}],null,false,4275912387)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Filter in current view'))+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.detailCategory && _vm.hasAnyActiveFilter),expression:\"!detailCategory && hasAnyActiveFilter\"}],staticClass:\"unified-search-modal__filters-applied\"},_vm._l((_vm.filters),function(filter){return _c('FilterChip',{key:filter.id,attrs:{\"text\":filter.name ?? filter.text,\"pretext\":\"\"},on:{\"delete\":function($event){return _vm.removeFilter(filter)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(filter.type === 'person')?_c('NcAvatar',{attrs:{\"user\":filter.user,\"size\":24,\"disableMenu\":\"\",\"hideStatus\":\"\",\"hideFavorite\":false}}):(filter.type === 'date')?_c('IconCalendarBlankOutline'):_c('img',{attrs:{\"src\":filter.icon,\"alt\":\"\"}})]},proxy:true}],null,true)})}),1)]),_vm._v(\" \"),(_vm.showEmptyContentInfo)?_c('div',{staticClass:\"unified-search-modal__no-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconMagnify',{attrs:{\"size\":64}})]},proxy:true}],null,false,125778896)}),_vm._v(\" \"),(_vm.showConnectedServicesButton)?_c('div',{staticClass:\"unified-search-modal__connected-services\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\",\"wide\":\"\"},on:{\"click\":_vm.toggleExternalResources}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.connectedServicesLabel)+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],1):_c('div',{ref:\"resultsContainer\",staticClass:\"unified-search-modal__results\"},[_c('h3',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Results'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.detailCategory && _vm.detailGroup)?_c('div',{staticClass:\"unified-search-modal__detail-header\"},[_c('NcButton',{staticClass:\"unified-search-modal__detail-back\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Back to all results')},on:{\"click\":_vm.closeDetailView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowLeft',{staticClass:\"unified-search-modal__rtl-icon\",attrs:{\"size\":20}})]},proxy:true}],null,false,1818940180)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Back'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('h4',{staticClass:\"unified-search-modal__detail-title\",attrs:{\"id\":_vm.headingId(_vm.detailGroup)}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.detailGroup.name)+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.renderedGroups),function(group){return _c('div',{key:group.id,staticClass:\"result-group\"},[(group.showPartialHeader)?_c('div',{staticClass:\"unified-search-modal__unfiltered-header\"},[_c('span',{staticClass:\"unified-search-modal__unfiltered-label\"},[_vm._v(_vm._s(_vm.t('core', 'Partial matches')))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"result\",class:{ 'result--unfiltered': group.unfiltered }},[(group.overflow)?_c('NcButton',{staticClass:\"result-title--more\",attrs:{\"id\":_vm.headingId(group),\"alignment\":\"start-reverse\",\"variant\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.openDetailView(group)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowRight',{staticClass:\"unified-search-modal__rtl-icon\",attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'More from {name}', { name: group.name }))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]):(group.section !== 'detail')?_c('h4',{staticClass:\"result-title\",attrs:{\"id\":_vm.headingId(group)}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(group.name)+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"result-items\",attrs:{\"role\":_vm.isSmallMobile ? undefined : 'listbox',\"aria-labelledby\":_vm.headingId(group)}},_vm._l((group.results),function(result,index){return _c('SearchResult',_vm._b({key:index,attrs:{\"role\":_vm.isSmallMobile ? undefined : 'option',\"elementId\":_vm.rowElementId(group.id, index, group.unfiltered),\"active\":_vm.activeDescendantId === _vm.rowElementId(group.id, index, group.unfiltered)}},'SearchResult',result,false))}),1),_vm._v(\" \"),_c('div',{staticClass:\"result-footer\"},[(group.section === 'detail' && group.hasMore)?_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.loadMoreResultsForProvider(group)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconDotsHorizontal',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Load more results'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(group.inAppSearch)?_c('NcButton',{attrs:{\"alignment\":\"end-reverse\",\"variant\":\"tertiary-no-background\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in'))+\" \"+_vm._s(group.name)+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e()],1)],1)])}),_vm._v(\" \"),(_vm.showConnectedServicesButton)?_c('div',{staticClass:\"unified-search-modal__connected-services\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\",\"wide\":\"\"},on:{\"click\":_vm.toggleExternalResources}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.connectedServicesLabel)+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-modal__scrim modal-mask\",on:{\"click\":_vm.onScrimClick}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountMultipleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountMultipleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountMultipleOutline.vue?vue&type=template&id=970e2386\"\nimport script from \"./AccountMultipleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountMultipleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-multiple-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=16833c02\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-left-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=be2cf3ce\"\nimport script from \"./Filter.vue?vue&type=script&lang=js\"\nexport * from \"./Filter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon filter-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShapeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShapeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ShapeOutline.vue?vue&type=template&id=3f5754ea\"\nimport script from \"./ShapeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ShapeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon shape-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,13.5V21.5H3V13.5H11M9,15.5H5V19.5H9V15.5M12,2L17.5,11H6.5L12,2M12,5.86L10.08,9H13.92L12,5.86M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13M17.5,15A2.5,2.5 0 0,0 15,17.5A2.5,2.5 0 0,0 17.5,20A2.5,2.5 0 0,0 20,17.5A2.5,2.5 0 0,0 17.5,15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isModalOpen)?_c('NcModal',{attrs:{\"id\":\"unified-search\",\"name\":_vm.t('core', 'Custom date range'),\"show\":_vm.isModalOpen,\"size\":\"small\",\"clear-view-delay\":0,\"title\":_vm.t('core', 'Custom date range')},on:{\"update:show\":function($event){_vm.isModalOpen=$event},\"close\":_vm.closeModal}},[_c('div',{staticClass:\"unified-search-custom-date-modal\"},[_c('h1',[_vm._v(_vm._s(_vm.t('core', 'Custom date range')))]),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__pickers\"},[_c('NcDateTimePicker',{attrs:{\"id\":\"unifiedsearch-custom-date-range-start\",\"label\":_vm.t('core', 'Pick start date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.startFrom),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"startFrom\", $$v)},expression:\"dateFilter.startFrom\"}}),_vm._v(\" \"),_c('NcDateTimePicker',{attrs:{\"id\":\"unifiedsearch-custom-date-range-end\",\"label\":_vm.t('core', 'Pick end date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.endAt),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"endAt\", $$v)},expression:\"dateFilter.endAt\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__footer\"},[_c('NcButton',{on:{\"click\":_vm.applyCustomRange},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3084610734)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in date range'))+\"\\n\\t\\t\\t\\t\")])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarRange.vue?vue&type=template&id=5868fd9e\"\nimport script from \"./CalendarRange.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarRange.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-range-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomDateRangeModal.vue?vue&type=template&id=2907014b&scoped=true\"\nimport script from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nexport * from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2907014b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcPopover',{attrs:{\"shown\":_vm.opened},on:{\"show\":function($event){return _vm.setOpened(true)},\"hide\":function($event){return _vm.setOpened(false)}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_vm._t(\"trigger\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"searchable-list__wrapper\"},[_c('NcTextField',{attrs:{\"label\":_vm.labelText,\"trailing-button-icon\":\"close\",\"show-trailing-button\":_vm.searchTerm !== ''},on:{\"update:value\":_vm.searchTermChanged,\"trailing-button-click\":_vm.clearSearch},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}},[_c('IconMagnify',{attrs:{\"size\":20}})],1),_vm._v(\" \"),(_vm.filteredList.length > 0)?_c('ul',{staticClass:\"searchable-list__list\"},_vm._l((_vm.filteredList),function(element){return _c('li',{key:element.id,attrs:{\"title\":element.displayName,\"role\":\"button\"}},[_c('NcButton',{attrs:{\"alignment\":\"start\",\"variant\":\"tertiary\",\"wide\":true},on:{\"click\":function($event){return _vm.itemSelected(element)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(element.isUser)?_c('NcAvatar',{attrs:{\"user\":element.user,\"hide-status\":\"\"}}):_c('NcAvatar',{attrs:{\"is-no-user\":true,\"display-name\":element.displayName,\"hide-status\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(element.displayName)+\"\\n\\t\\t\\t\\t\")])],1)}),0):_c('div',{staticClass:\"searchable-list__empty-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentText},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=da40788e\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchableList.vue?vue&type=template&id=66bd6570&scoped=true\"\nimport script from \"./SearchableList.vue?vue&type=script&lang=js\"\nexport * from \"./SearchableList.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66bd6570\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchFilterChip.vue?vue&type=template&id=5a4f6249&scoped=true\"\nimport script from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nexport * from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a4f6249\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chip\"},[_c('span',{staticClass:\"icon\"},[_vm._t(\"icon\"),_vm._v(\" \"),(_vm.pretext.length)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pretext)+\" : \")]):_vm._e()],2),_vm._v(\" \"),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),_c('button',{staticClass:\"close-button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.removeLabel},on:{\"click\":_vm.deleteChip}},[_c('CloseIcon',{attrs:{\"size\":18}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcListItem',{staticClass:\"result-item\",attrs:{\"id\":_vm.elementId,\"name\":_vm.title,\"bold\":false,\"active\":_vm.active,\"href\":_vm.resourceUrl,\"target\":\"_self\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isAppIcon)?_c('AppIcon',{staticClass:\"result-item__app-icon\",attrs:{\"icon\":_vm.icon}}):_c('div',{staticClass:\"result-item__icon\",class:{\n\t\t\t\t'result-item__icon--rounded': _vm.rounded,\n\t\t\t\t'result-item__icon--with-thumbnail': _vm.hasThumbnail,\n\t\t\t\t[_vm.icon]: !_vm.iconIsUrl && !_vm.hasThumbnail,\n\t\t\t},attrs:{\"aria-hidden\":\"true\"}},[(_vm.hasThumbnail)?_c('img',{attrs:{\"src\":_vm.thumbnailUrl},on:{\"error\":_vm.thumbnailErrorHandler}}):(_vm.iconIsUrl)?_c('img',{staticClass:\"result-item__icon-img\",attrs:{\"src\":_vm.icon,\"alt\":\"\",\"aria-hidden\":\"true\"}}):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.subline)+\"\\n\\t\")]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"app-icon\",class:{ 'app-icon--outlined': _vm.outlined }},[(_vm.icon)?_c('span',{staticClass:\"app-icon__img\",style:(_setup.iconStyle),attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppIcon.vue?vue&type=template&id=42bb03fc&scoped=true\"\nimport script from \"./AppIcon.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppIcon.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42bb03fc\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchResult.vue?vue&type=template&id=516c3939&scoped=true\"\nimport script from \"./SearchResult.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResult.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"516c3939\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n * Create a cancel token\n *\n * @return {import('axios').CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Get the list of available search providers\n *\n * @return {Promise}\n */\nexport async function getProviders() {\n\ttry {\n\t\tconst { data } = await axios.get(generateOcsUrl('search/providers'), {\n\t\t\tparams: {\n\t\t\t\t// Sending which location we're currently at\n\t\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t},\n\t\t})\n\t\tif ('ocs' in data && 'data' in data.ocs && Array.isArray(data.ocs.data) && data.ocs.data.length > 0) {\n\t\t\t// Providers are sorted by the api based on their order key\n\t\t\treturn data.ocs.data\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error)\n\t}\n\treturn []\n}\n\n/**\n * Get the list of available search providers\n *\n * @param {object} options destructuring object\n * @param {string} options.type the type to search\n * @param {string} options.query the search term\n * @param {number|string|null} [options.cursor] the offset for paginated searches\n * @param {string} [options.since] start of the date-range filter\n * @param {string} [options.until] end of the date-range filter\n * @param {number} [options.limit] maximum number of results\n * @param {string} [options.person] filter results by person\n * @param {object} [options.extraQueries] additional queries to filter search results\n * @return {object} {request: Promise, cancel: Promise}\n */\nexport function search({ type, query, cursor, since, until, limit, person, extraQueries = {} }) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\tconst request = async () => axios.get(generateOcsUrl('search/providers/{type}/search', { type }), {\n\t\tcancelToken: cancelToken.token,\n\t\tparams: {\n\t\t\tterm: query,\n\t\t\tcursor,\n\t\t\tsince,\n\t\t\tuntil,\n\t\t\tlimit,\n\t\t\tperson,\n\t\t\t// Sending which location we're currently at\n\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t...extraQueries,\n\t\t},\n\t})\n\n\treturn {\n\t\trequest,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n\n/**\n * Get the list of active contacts\n *\n * @param {object} filter filter contacts by string\n * @param {string} filter.searchTerm the query\n * @return {object} {request: Promise}\n */\nexport async function getContacts({ searchTerm }) {\n\tconst { data: { contacts } } = await axios.post(generateUrl('/contactsmenu/contacts'), {\n\t\tfilter: searchTerm,\n\t})\n\t/*\n\t * Add authenticated user to list of contacts for search filter\n\t * If authtenicated user is searching/filtering, do not add them to the list\n\t */\n\tif (!searchTerm) {\n\t\tlet authenticatedUser = getCurrentUser()\n\t\tauthenticatedUser = {\n\t\t\tid: authenticatedUser.uid,\n\t\t\tfullName: authenticatedUser.displayName,\n\t\t\temailAddresses: [],\n\t\t}\n\t\tcontacts.unshift(authenticatedUser)\n\t\treturn contacts\n\t}\n\n\treturn contacts\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { search as unifiedSearch } from './UnifiedSearchService.js';\nexport const REVEAL_INTERVAL_MS = 1500;\n/**\n * Results fetched per category per page. Sized for the detail view (which shows the\n * whole page); the aggregate caps to RESULTS_PER_CATEGORY. Server default 5, design 10.\n */\nexport const PAGE_SIZE = 10;\n/**\n * Runs a unified search across categories in priority order, blocking\n * lower-priority results until their predecessors arrive or a timer reveals them.\n */\nexport class UnifiedSearchController {\n onChange;\n query = '';\n params = {};\n searchStates = {};\n searchGeneration = 0;\n revealTimer = null;\n pendingCancels = [];\n constructor(onChange) {\n this.onChange = onChange;\n }\n /**\n * Start a search. Cancels and replaces any search already in flight.\n *\n * @param query the search term\n * @param categories category ids in priority order\n * @param params optional per-category search parameters\n * @return resolves once every category has settled\n */\n async search(query, categories, params) {\n this.cancelPendingRequests();\n // Stale-while-revalidate: keep the previous page on screen while the new search is in\n // flight, so refining a query swaps results in place instead of flashing an empty panel.\n // Each recurring category is reseeded with its prior entries below; dropped ones vanish.\n const previous = this.searchStates;\n this.searchStates = {};\n this.searchGeneration++;\n const generation = this.searchGeneration;\n this.query = query;\n this.params = params || {};\n this.startRevealTimer();\n await Promise.allSettled(categories.map((category) => {\n const prev = previous[category];\n // Only entries that were actually on screen seed the stale view. A blocked or failed\n // category's entries were fetched but never rendered, so they must not carry over\n // (and must not let the category skip the ordered reveal).\n const staleEntries = prev && (prev.status === 'loaded' || prev.status === 'loading') ? prev.entries : [];\n return this.searchCategory(category, generation, categories, staleEntries);\n }));\n }\n /**\n * Fetch the next page for one category and append it. A no-op unless the\n * category is loaded with more pages. On failure the existing results stay\n * and `loadMoreFailed` is raised, so calling again retries.\n *\n * @param category the category id to page\n */\n async loadMore(category) {\n const generation = this.searchGeneration;\n const categoryState = { ...this.searchStates[category] };\n if (!categoryState.hasMore || categoryState.status !== 'loaded') {\n return;\n }\n this.patchStates({ [category]: { status: 'loading', loadMoreFailed: false } });\n const { request, cancel } = unifiedSearch({\n type: category,\n query: this.query,\n cursor: categoryState.cursor,\n limit: PAGE_SIZE,\n ...this.params[category],\n });\n this.pendingCancels.push(cancel);\n try {\n const response = await request();\n if (this.searchGeneration !== generation) {\n return;\n }\n const { entries, cursor, isPaginated } = response.data.ocs.data;\n // A provider can echo a non-null cursor on an empty page, keeping hasMore true and\n // leaving a dead \"Load more\" button. An empty page means exhausted, cursor or not.\n const reachedEnd = entries.length === 0;\n this.patchStates({ [category]: {\n entries: [...categoryState.entries, ...entries],\n cursor,\n hasMore: !reachedEnd && this.hasMorePages(isPaginated, cursor),\n status: 'loaded',\n } });\n }\n catch {\n if (this.searchGeneration !== generation) {\n return;\n }\n this.patchStates({ [category]: { status: 'loaded', loadMoreFailed: true } });\n }\n }\n /**\n * A shallow copy of the current per-category state, safe to read for rendering.\n *\n * @return the current search states keyed by category id\n */\n getSnapshot() {\n return { ...this.searchStates };\n }\n dispose() {\n this.stopBackgroundWork();\n }\n reset() {\n this.stopBackgroundWork();\n this.searchStates = {};\n this.query = '';\n this.params = {};\n this.searchGeneration++;\n this.onChange?.(this.getSnapshot());\n }\n async searchCategory(category, generation, categories, staleEntries = []) {\n // Seed with the prior page (stale-while-revalidate) so it stays visible under the\n // spinner until the fresh page replaces it. Empty on a first search.\n this.patchStates({ [category]: {\n status: 'loading',\n entries: staleEntries,\n cursor: null,\n hasMore: false,\n loadMoreFailed: false,\n } });\n const { request, cancel } = unifiedSearch({\n type: category,\n query: this.query,\n cursor: null,\n limit: PAGE_SIZE,\n ...this.params[category],\n });\n this.pendingCancels.push(cancel);\n try {\n const response = await request();\n if (this.searchGeneration !== generation) {\n // A new search has been started, ignore this result\n return;\n }\n const { entries, cursor, isPaginated } = response.data.ocs.data;\n // Decide blocked vs loaded once, here at settle. Reconcile only promotes after this\n // (never re-blocks), so this is the only place a category becomes blocked. A category\n // that carried stale results skips blocking: it is already on screen, so blocking it\n // would blink it off until its predecessors clear. Ordered reveal is only for the\n // first paint, when nothing is shown yet.\n this.patchStates({ [category]: {\n status: (staleEntries.length === 0 && this.shouldBlockCategory(category, categories)) ? 'blocked' : 'loaded',\n entries,\n cursor,\n hasMore: this.hasMorePages(isPaginated, cursor),\n loadMoreFailed: false,\n } });\n }\n catch {\n if (this.searchGeneration !== generation) {\n return;\n }\n this.patchStates({ [category]: {\n status: 'failed',\n entries: [],\n cursor: null,\n hasMore: false,\n loadMoreFailed: false,\n } });\n }\n this.reconcileCategoryStatuses(categories);\n }\n reconcileCategoryStatuses(categories) {\n categories.forEach((category) => {\n // Promotion only: reveal a blocked category once its predecessors clear, never demote.\n // A revealed category must stay revealed, else it flickers when a slower one settles.\n if (this.searchStates[category].status !== 'blocked') {\n return;\n }\n if (!this.shouldBlockCategory(category, categories)) {\n this.patchStates({ [category]: { status: 'loaded' } });\n }\n });\n }\n startRevealTimer() {\n this.stopRevealTimer();\n this.revealTimer = setTimeout(() => {\n const categories = Object.keys(this.searchStates);\n const hasPendingCategories = categories.some((category) => ['loading', 'blocked'].includes(this.searchStates[category].status));\n this.unblockAllCategories(categories);\n if (hasPendingCategories) {\n this.startRevealTimer();\n }\n }, REVEAL_INTERVAL_MS);\n }\n stopRevealTimer() {\n if (this.revealTimer) {\n clearTimeout(this.revealTimer);\n this.revealTimer = null;\n }\n }\n cancelPendingRequests() {\n this.pendingCancels.forEach((cancel) => cancel());\n this.pendingCancels = [];\n }\n stopBackgroundWork() {\n this.cancelPendingRequests();\n this.stopRevealTimer();\n }\n unblockAllCategories(categories) {\n categories.forEach((category) => {\n if (this.searchStates[category].status === 'blocked') {\n this.patchStates({ [category]: { status: 'loaded' } });\n }\n });\n }\n /**\n * Whether a category can page further. The backend never sends a \"has more\"\n * flag, only `isPaginated` and a `cursor`, so derive it: a category has more\n * pages when it paginates and handed back a cursor to continue from.\n *\n * @param isPaginated whether the provider returned a paginated result\n * @param cursor the cursor to continue from, or null when there is none\n */\n hasMorePages(isPaginated, cursor) {\n return isPaginated && cursor !== null;\n }\n shouldBlockCategory(category, categories) {\n if (!this.searchStates[category]) {\n return false;\n }\n return categories.slice(0, categories.indexOf(category)).some((c) => {\n const categoryState = this.searchStates[c];\n return categoryState && ['loading', 'blocked'].includes(categoryState.status);\n });\n }\n patchStates(next) {\n Object.keys(next).forEach((category) => {\n const categoryState = { ...this.searchStates[category], ...next[category] };\n this.searchStates[category] = categoryState;\n });\n this.onChange?.(this.getSnapshot());\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia'\n\nexport const useSearchStore = defineStore('search', {\n\tstate: () => ({\n\t\texternalFilters: [],\n\t}),\n\n\tactions: {\n\t\tregisterExternalFilter({ id, appId, searchFrom, label, callback, icon }) {\n\t\t\tthis.externalFilters.push({ id, appId, searchFrom, name: label, callback, icon, isPluginFilter: true })\n\t\t},\n\t},\n})\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { onUnmounted, shallowRef } from 'vue';\nimport { UnifiedSearchController } from '../services/UnifiedSearchController.ts';\n/**\n * Reactive adapter over UnifiedSearchController for use in an SFC.\n */\nexport function useUnifiedSearch() {\n const searchStates = shallowRef({});\n const controller = new UnifiedSearchController((states) => {\n searchStates.value = states;\n });\n onUnmounted(() => {\n controller.dispose();\n });\n return {\n searchStates,\n search: controller.search.bind(controller),\n loadMore: controller.loadMore.bind(controller),\n reset: controller.reset.bind(controller),\n };\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=style&index=0&id=39a656a6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=style&index=0&id=39a656a6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchModal.vue?vue&type=template&id=39a656a6&scoped=true\"\nimport script from \"./UnifiedSearchModal.vue?vue&type=script&lang=ts\"\nexport * from \"./UnifiedSearchModal.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UnifiedSearchModal.vue?vue&type=style&index=0&id=39a656a6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39a656a6\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"unified-search-menu\"},[_c('UnifiedSearchInput',{ref:\"searchInput\",attrs:{\"query\":_vm.queryText,\"expanded\":_vm.showUnifiedSearch,\"activeDescendantId\":_vm.activeDescendantId,\"loading\":_vm.searching,\"filtersRevealed\":_vm.filtersRevealed},on:{\"click\":_vm.openModal,\"open-filters\":_vm.onOpenFilters,\"close\":_vm.onClose,\"update:query\":function($event){_vm.queryText = $event},\"navigate\":_vm.onNavigate,\"activate\":_vm.onActivate}}),_vm._v(\" \"),(_vm.supportsLocalSearch)?_c('UnifiedSearchLocalSearchBar',{attrs:{\"open\":_vm.showLocalSearch,\"query\":_vm.queryText},on:{\"globalSearch\":_vm.openModal,\"update:open\":function($event){_vm.showLocalSearch = $event},\"update:query\":function($event){_vm.queryText = $event}}}):_vm._e(),_vm._v(\" \"),_c('UnifiedSearchModal',{ref:\"searchModal\",attrs:{\"localSearch\":_vm.supportsLocalSearch,\"query\":_vm.queryText,\"open\":_vm.showUnifiedSearch,\"filtersRevealed\":_vm.filtersRevealed},on:{\"update:query\":function($event){_vm.queryText = $event},\"update:open\":function($event){_vm.showUnifiedSearch = $event},\"update:activeDescendant\":function($event){_vm.activeDescendantId = $event || ''},\"update:loading\":function($event){_vm.searching = $event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearch.vue?vue&type=template&id=44547071&scoped=true\"\nimport script from \"./UnifiedSearch.vue?vue&type=script&lang=ts\"\nexport * from \"./UnifiedSearch.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44547071\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { translatePlural as n, translate as t } from '@nextcloud/l10n';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport UnifiedSearch from './views/UnifiedSearch.vue';\nimport { useSearchStore } from '../src/store/unified-search-external-filters.js';\n__webpack_nonce__ = getCSPNonce();\nconst logger = getLoggerBuilder()\n .setApp('unified-search')\n .detectUser()\n .build();\nVue.mixin({\n data() {\n return {\n logger,\n };\n },\n methods: {\n t,\n n,\n },\n});\n// Register the add/register filter action API globally\nwindow.OCA = window.OCA || {};\nwindow.OCA.UnifiedSearch = {\n registerFilterAction: ({ id, appId, searchFrom, label, callback, icon }) => {\n const searchStore = useSearchStore();\n searchStore.registerExternalFilter({ id, appId, searchFrom, label, callback, icon });\n },\n};\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\nexport default new Vue({\n el: '#unified-search',\n pinia,\n name: 'UnifiedSearchRoot',\n render: (h) => h(UnifiedSearch),\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-icon[data-v-42bb03fc]{--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;width:var(--app-icon-circle-size);height:var(--app-icon-circle-size);border-radius:50%;transform:scale(var(--app-icon-scale, 1));transition:transform var(--animation-quick) ease-out;background-color:var(--color-primary-element-light);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%, var(--color-primary-element-light) 100%);box-shadow:var(--app-icon-bevel)}@media(prefers-color-scheme: dark){.app-icon[data-v-42bb03fc]{--app-icon-bevel: none}}@media(prefers-reduced-motion: reduce){.app-icon[data-v-42bb03fc]{transition:none}}.app-icon__img[data-v-42bb03fc]{width:var(--app-icon-icon-size);height:var(--app-icon-icon-size);background-color:var(--color-primary-element);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%, var(--color-primary-element) 100%);mask:var(--app-icon-url) center/contain no-repeat}@media(forced-colors: active){.app-icon__img[data-v-42bb03fc]{background-color:CanvasText;background-image:none}}.app-icon--outlined[data-v-42bb03fc]{background:rgba(0,0,0,0);background-image:none;box-shadow:inset 0 0 0 2px var(--color-border-maxcontrast)}.app-icon--outlined .app-icon__img[data-v-42bb03fc]{background-color:var(--color-main-text);background-image:none}[data-themes*=dark] .app-icon{--app-icon-bevel: none}[data-themes*=light] .app-icon{--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AppIcon.vue\"],\"names\":[],\"mappings\":\"AAKA,2BACC,+DAAA,CAEA,gEAAA,CACA,2OAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,iCAAA,CACA,kCAAA,CACA,iBAAA,CACA,yCAAA,CACA,oDAAA,CACA,mDAAA,CACA,iLAAA,CAKA,gCAAA,CAEA,mCAvBD,2BAwBE,sBAAA,CAAA,CAGD,uCA3BD,2BA4BE,eAAA,CAAA,CAGD,gCACC,+BAAA,CACA,gCAAA,CAGA,6CAAA,CACA,2KAAA,CAKA,iDAAA,CAID,8BACC,gCACC,2BAAA,CACA,qBAAA,CAAA,CAIF,qCACC,wBAAA,CACA,qBAAA,CACA,0DAAA,CAGD,oDACC,uCAAA,CACA,qBAAA,CAKF,8BACC,sBAAA,CAGD,+BACC,2OAAA\",\"sourcesContent\":[\"\\n$bevel:\\n\\tinset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)),\\n\\tinset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));\\n\\n.app-icon {\\n\\t--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);\\n\\t// 28px on a 48px circle, so it follows when consumers resize the circle.\\n\\t--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);\\n\\t--app-icon-bevel: #{$bevel};\\n\\tbox-sizing: border-box;\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: var(--app-icon-circle-size);\\n\\theight: var(--app-icon-circle-size);\\n\\tborder-radius: 50%;\\n\\ttransform: scale(var(--app-icon-scale, 1));\\n\\ttransition: transform var(--animation-quick) ease-out;\\n\\tbackground-color: var(--color-primary-element-light);\\n\\tbackground-image: linear-gradient(\\n\\t\\tto bottom,\\n\\t\\tcolor-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%,\\n\\t\\tvar(--color-primary-element-light) 100%\\n\\t);\\n\\tbox-shadow: var(--app-icon-bevel);\\n\\n\\t@media (prefers-color-scheme: dark) {\\n\\t\\t--app-icon-bevel: none;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&__img {\\n\\t\\twidth: var(--app-icon-icon-size);\\n\\t\\theight: var(--app-icon-icon-size);\\n\\t\\t// Masked rather than shown: app icons ship a hardcoded fill, so\\n\\t\\t// currentColor never applies and a filter could only flip black and white.\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\tto bottom,\\n\\t\\t\\tcolor-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%,\\n\\t\\t\\tvar(--color-primary-element) 100%\\n\\t\\t);\\n\\t\\tmask: var(--app-icon-url) center / contain no-repeat;\\n\\t}\\n\\n\\t// Masked backgrounds are not force-adjusted the way is.\\n\\t@media (forced-colors: active) {\\n\\t\\t&__img {\\n\\t\\t\\tbackground-color: CanvasText;\\n\\t\\t\\tbackground-image: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&--outlined {\\n\\t\\tbackground: transparent;\\n\\t\\tbackground-image: none;\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-border-maxcontrast);\\n\\t}\\n\\n\\t&--outlined &__img {\\n\\t\\tbackground-color: var(--color-main-text);\\n\\t\\tbackground-image: none;\\n\\t}\\n}\\n\\n// An explicit theme choice must beat the media query above, which only sees the OS.\\n:global([data-themes*=dark] .app-icon) {\\n\\t--app-icon-bevel: none;\\n}\\n\\n:global([data-themes*=light] .app-icon) {\\n\\t--app-icon-bevel: #{$bevel};\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-custom-date-modal[data-v-2907014b]{padding:10px 20px 10px 20px}.unified-search-custom-date-modal h1[data-v-2907014b]{font-size:16px;font-weight:bolder;line-height:2em}.unified-search-custom-date-modal__pickers[data-v-2907014b]{display:flex;flex-direction:column}.unified-search-custom-date-modal__footer[data-v-2907014b]{display:flex;justify-content:end}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/CustomDateRangeModal.vue\"],\"names\":[],\"mappings\":\"AACA,mDACC,2BAAA,CAEA,sDACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,4DACC,YAAA,CACA,qBAAA,CAGD,2DACC,YAAA,CACA,mBAAA\",\"sourcesContent\":[\"\\n.unified-search-custom-date-modal {\\n\\tpadding: 10px 20px 10px 20px;\\n\\n\\th1 {\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: bolder;\\n\\t\\tline-height: 2em;\\n\\t}\\n\\n\\t&__pickers {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chip[data-v-5a4f6249]{display:flex;align-items:center;padding:2px 4px;border:1px solid var(--color-primary-element-light);border-radius:20px;background-color:var(--color-primary-element-light);margin:2px}.chip .icon[data-v-5a4f6249]{display:flex;align-items:center;padding-inline-end:5px}.chip .icon img[data-v-5a4f6249]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-5a4f6249]{margin:0 2px}.chip .close-button[data-v-5a4f6249]{display:flex;align-items:center;width:auto;min-width:0;min-height:0;margin:0;padding:0;border:none;background:rgba(0,0,0,0);color:inherit;cursor:pointer;border-radius:var(--border-radius-element, 8px)}.chip .close-button[data-v-5a4f6249]:hover{filter:invert(20%)}.chip .close-button[data-v-5a4f6249]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:1px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchFilterChip.vue\"],\"names\":[],\"mappings\":\"AACA,uBACI,YAAA,CACA,kBAAA,CACA,eAAA,CACA,mDAAA,CACA,kBAAA,CACA,mDAAA,CACA,UAAA,CAEA,6BACI,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,iCACI,UAAA,CACA,WAAA,CACA,kBAAA,CACA,yCAAA,CAIR,6BACI,YAAA,CAGJ,qCACI,YAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,aAAA,CACA,cAAA,CACA,+CAAA,CAEA,2CACI,kBAAA,CAGJ,mDACI,wCAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.chip {\\n display: flex;\\n align-items: center;\\n padding: 2px 4px;\\n border: 1px solid var(--color-primary-element-light);\\n border-radius: 20px;\\n background-color: var(--color-primary-element-light);\\n margin: 2px;\\n\\n .icon {\\n display: flex;\\n align-items: center;\\n padding-inline-end: 5px;\\n\\n img {\\n width: 20px;\\n padding: 2px;\\n border-radius: 20px;\\n filter: var(--background-invert-if-bright);\\n }\\n }\\n\\n .text {\\n margin: 0 2px;\\n }\\n\\n .close-button {\\n display: flex;\\n align-items: center;\\n width: auto;\\n min-width: 0;\\n min-height: 0;\\n margin: 0;\\n padding: 0;\\n border: none;\\n background: transparent;\\n color: inherit;\\n cursor: pointer;\\n border-radius: var(--border-radius-element, 8px);\\n\\n &:hover {\\n filter: invert(20%);\\n }\\n\\n &:focus-visible {\\n outline: 2px solid var(--color-main-text);\\n outline-offset: 1px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.result-item[data-v-516c3939]{padding-inline:0}.result-item[data-v-516c3939] a{border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.result-item[data-v-516c3939] a:active,.result-item[data-v-516c3939] a:hover{background-color:var(--color-background-hover)}.result-item[data-v-516c3939] a:focus-visible{background-color:var(--color-background-hover);border-color:var(--color-border-maxcontrast)}.result-item[data-v-516c3939] a *{cursor:pointer}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item::before{content:\"\";position:absolute;inset-block:calc(var(--default-grid-baseline)*2);inset-inline-start:0;width:3px;border-radius:var(--border-radius-rounded);background-color:var(--color-primary-element);animation:result-pill-in-516c3939 var(--animation-quick) ease-out}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item:hover{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__name,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__subname,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__details,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-details__details{color:var(--color-main-text) !important}.result-item__icon[data-v-516c3939]{display:flex;align-items:center;justify-content:center;overflow:hidden;width:var(--default-clickable-area);height:var(--default-clickable-area);border-radius:var(--border-radius);margin-inline-start:var(--default-grid-baseline)}.result-item__icon--rounded[data-v-516c3939]{border-radius:calc(var(--default-clickable-area)/2)}.result-item__icon--with-thumbnail[data-v-516c3939]:not(.result-item__icon--rounded){border:1px solid var(--color-border);max-height:calc(var(--default-clickable-area) - 2px);max-width:calc(var(--default-clickable-area) - 2px)}.result-item__icon--with-thumbnail img[data-v-516c3939]{width:100%;height:100%;object-fit:cover;object-position:center}.result-item__icon-img[data-v-516c3939]{width:20px;height:20px;object-fit:contain;filter:var(--background-invert-if-dark)}.result-item__icon-img[src*=\"/filetypes/\"][data-v-516c3939]{width:32px;height:32px;filter:none}.result-item__app-icon[data-v-516c3939]{--app-icon-circle-size: var(--default-clickable-area);margin-inline-start:var(--default-grid-baseline)}@keyframes result-pill-in-516c3939{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchResult.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,gBAAA,CAEA,gCACC,8BAAA,CACA,mDAAA,CAGA,6EAEC,8CAAA,CAKD,8CACC,8CAAA,CACA,4CAAA,CAGD,kCACC,cAAA,CAOD,oEACC,8CAAA,CAMA,4EACC,UAAA,CACA,iBAAA,CACA,gDAAA,CACA,oBAAA,CACA,SAAA,CACA,0CAAA,CACA,6CAAA,CAEA,iEAAA,CAGD,0EACC,8CAAA,CAMF,6ZAIC,uCAAA,CAIF,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,mCAAA,CACA,oCAAA,CACA,kCAAA,CACA,gDAAA,CAEA,6CACC,mDAAA,CAGD,qFACC,oCAAA,CAEA,oDAAA,CACA,mDAAA,CAID,wDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAID,wCACC,UAAA,CACA,WAAA,CACA,kBAAA,CAEA,uCAAA,CAKA,4DACC,UAAA,CACA,WAAA,CACA,WAAA,CAMH,wCACC,qDAAA,CACA,gDAAA,CAKF,mCACC,KACC,mBAAA,CACA,SAAA,CAGD,GACC,mBAAA,CACA,SAAA,CAAA\",\"sourcesContent\":[\"\\n.result-item {\\n\\tpadding-inline: 0;\\n\\n\\t:deep(a) {\\n\\t\\tborder: 2px solid transparent;\\n\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\n\\t\\t// Hover/press: neutral gray fill only, no border.\\n\\t\\t&:active,\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\n\\t\\t// Plain Tab into a result keeps a visible focus ring (a11y). Normally the combobox\\n\\t\\t// keeps focus in the input and drives selection via `active` below.\\n\\t\\t&:focus-visible {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-color: var(--color-border-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t* {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t// NcListItem's `active` state paints a primary fill, white text and a blue stripe.\\n\\t// We want a neutral look: the gray hover fill plus a maxcontrast border, readable text.\\n\\t&.list-item__wrapper--active {\\n\\t\\t:deep(.list-item) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t\\t// Keyboard selection marker: the pill the left navigation paints on its active\\n\\t\\t\\t// entry. It has to hang off .list-item rather than the wrapper, because\\n\\t\\t\\t// .list-item is itself positioned and paints the opaque row background, so it\\n\\t\\t\\t// would cover a pseudo-element belonging to its parent.\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block: calc(var(--default-grid-baseline) * 2);\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\twidth: 3px;\\n\\t\\t\\t\\tborder-radius: var(--border-radius-rounded);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\t// Zeroed by the reduced-motion theme, so no separate media query is needed.\\n\\t\\t\\t\\tanimation: result-pill-in var(--animation-quick) ease-out;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Undo the forced active text colour. Chain through the anchor to outrank\\n\\t\\t// NcListItem's own !important rule.\\n\\t\\t:deep(.list-item__anchor .list-item-content__name),\\n\\t\\t:deep(.list-item__anchor .list-item-content__subname),\\n\\t\\t:deep(.list-item__anchor .list-item-content__details),\\n\\t\\t:deep(.list-item__anchor .list-item-details__details) {\\n\\t\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\toverflow: hidden;\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tmargin-inline-start: var(--default-grid-baseline);\\n\\n\\t\\t&--rounded {\\n\\t\\t\\tborder-radius: calc(var(--default-clickable-area) / 2);\\n\\t\\t}\\n\\n\\t\\t&--with-thumbnail:not(#{&}--rounded) {\\n\\t\\t\\tborder: 1px solid var(--color-border);\\n\\t\\t\\t// compensate for border\\n\\t\\t\\tmax-height: calc(var(--default-clickable-area) - 2px);\\n\\t\\t\\tmax-width: calc(var(--default-clickable-area) - 2px);\\n\\t\\t}\\n\\n\\t\\t// A full-bleed thumbnail (preview or avatar) fills the box.\\n\\t\\t&--with-thumbnail img {\\n\\t\\t\\t// Make sure to keep ratio\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\n\\t\\t\\tobject-fit: cover;\\n\\t\\t\\tobject-position: center;\\n\\t\\t}\\n\\n\\t\\t// A small monochrome glyph (e.g. a settings section), not a thumbnail.\\n\\t\\t&-img {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t// Dark monochrome icons invert to light in dark themes.\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\n\\t\\t\\t// Mime icons carry their own colours (a red PDF, a green spreadsheet), so the\\n\\t\\t\\t// dark-theme invert would recolour them: red comes out cyan. Sized to match the\\n\\t\\t\\t// 32px these icons had while they were painted as a background-image.\\n\\t\\t\\t&[src*='/filetypes/'] {\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tfilter: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// App results reuse the app-menu tile (AppIcon); size its circle to the icon column.\\n\\t&__app-icon {\\n\\t\\t--app-icon-circle-size: var(--default-clickable-area);\\n\\t\\tmargin-inline-start: var(--default-grid-baseline);\\n\\t}\\n}\\n\\n// Grow the pill out of the row's centre line, matching the navigation entry.\\n@keyframes result-pill-in {\\n\\tfrom {\\n\\t\\ttransform: scaleY(0);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\tto {\\n\\t\\ttransform: scaleY(1);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.searchable-list__wrapper[data-v-66bd6570]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-66bd6570]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-66bd6570] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__list[data-v-66bd6570] .button-vue span{font-weight:initial}.searchable-list__empty-content[data-v-66bd6570]{margin-top:calc(var(--default-grid-baseline)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchableList.vue\"],\"names\":[],\"mappings\":\"AAEC,2CACC,4CAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,WAAA,CAGD,wCACC,UAAA,CACA,gBAAA,CACA,eAAA,CACA,uCAAA,CACA,oCAAA,CAEA,oDACC,mDAAA,CACA,yDACC,mBAAA,CAKH,iDACC,+CAAA\",\"sourcesContent\":[\"\\n.searchable-list {\\n\\t&__wrapper {\\n\\t\\tpadding: calc(var(--default-grid-baseline) * 3);\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\twidth: 250px;\\n\\t}\\n\\n\\t&__list {\\n\\t\\twidth: 100%;\\n\\t\\tmax-height: 284px;\\n\\t\\toverflow-y: auto;\\n\\t\\tmargin-top: var(--default-grid-baseline);\\n\\t\\tpadding: var(--default-grid-baseline);\\n\\n\\t\\t:deep(.button-vue) {\\n\\t\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tfont-weight: initial;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__empty-content {\\n\\t\\tmargin-top: calc(var(--default-grid-baseline) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-input[data-v-59e94aec]{position:relative;z-index:51}.unified-search-input[data-v-59e94aec]:not(.unified-search-input--mobile){display:flex;align-items:center;width:clamp(200px,35vw,600px);max-width:calc(100% - 32px)}.unified-search-input--mobile[data-v-59e94aec]{display:contents}.unified-search-input__field[data-v-59e94aec]{--resting-background: rgba(0, 0, 0, 0.15);--resting-background-hover: rgba(0, 0, 0, 0.22);--search-icon-pad: 12px;--search-icon-size: 20px;--search-icon-gap: 8px;--search-anim-duration: 240ms;--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);position:relative;container-type:inline-size;display:flex;align-items:center;height:var(--default-clickable-area);width:100%;border-radius:var(--border-radius-element, 8px);box-shadow:inset 0 2px 0 rgba(0,0,0,.12);background-color:var(--resting-background);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);transition:background-color var(--search-anim-duration) var(--search-anim-easing),box-shadow var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field[data-v-59e94aec]:hover:not(.unified-search-input__field--active){background-color:var(--resting-background-hover)}.unified-search-input__field--active[data-v-59e94aec]{background-color:var(--color-main-background);box-shadow:none}.unified-search-input__resting[data-v-59e94aec]{--slide-sign: 1;position:absolute;inset-block:0;inset-inline-start:var(--search-icon-pad);max-width:calc(100% - 2*var(--search-icon-pad));display:flex;align-items:center;gap:var(--search-icon-gap);pointer-events:none;color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));transform:translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));transition:transform var(--search-anim-duration) var(--search-anim-easing),color var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field--active .unified-search-input__resting[data-v-59e94aec]{transform:translateX(0);color:var(--color-text-maxcontrast);max-width:calc(100% - 7*var(--search-icon-pad))}.unified-search-input__label[data-v-59e94aec]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__resting--filled .unified-search-input__label[data-v-59e94aec]{opacity:0}.unified-search-input__resting[data-v-59e94aec] .material-design-icon__svg{display:block;transform:translateY(1px)}.unified-search-input__input[data-v-59e94aec]{flex:1;min-width:0;height:100%;margin:0;padding-inline:calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);border:none !important;border-radius:0 !important;box-shadow:none !important;background-color:rgba(0,0,0,0);color:var(--color-main-text);font-size:var(--default-font-size)}.unified-search-input__input[data-v-59e94aec]::placeholder{opacity:1;color:var(--color-text-maxcontrast)}.unified-search-input__input[data-v-59e94aec]:focus-visible{outline:none}.unified-search-input__clear[data-v-59e94aec],.unified-search-input__filter[data-v-59e94aec]{flex-shrink:0;margin-inline-end:2px}.unified-search-input__loading[data-v-59e94aec]{flex-shrink:0;display:flex;align-items:center;margin-inline:var(--default-grid-baseline)}.unified-search-input__shortcut[data-v-59e94aec]{position:absolute;inset-inline-end:var(--default-grid-baseline);top:50%;transform:translateY(-50%);display:flex;pointer-events:none}@container (max-width: 400px){.unified-search-input__shortcut[data-v-59e94aec]{display:none}}.unified-search-input__shortcut[data-v-59e94aec] kbd{min-width:12px;height:12px;padding-inline:5px;border:1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);border-block-end-width:2px;border-radius:var(--border-radius-small, 4px);color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));font-size:13px}[data-theme-dark] .unified-search-input__field[data-v-59e94aec],[data-theme-dark-highcontrast] .unified-search-input__field[data-v-59e94aec]{--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent)}.unified-search-input__resting[data-v-59e94aec]:dir(rtl){--slide-sign: -1}@media(prefers-reduced-motion: reduce){.unified-search-input__resting[data-v-59e94aec],.unified-search-input__resting span[data-v-59e94aec]{transition:none}}.unified-search-input--mobile[data-v-59e94aec] .header-menu{height:var(--default-clickable-area)}.unified-search-input--mobile[data-v-59e94aec] .header-menu__trigger{--button-size: var(--default-clickable-area) !important;height:var(--default-clickable-area) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue{--color-main-text: var(--color-background-plain-text);color:var(--color-background-plain-text);border-radius:var(--border-radius-element) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:hover:not(:disabled){background-color:rgba(0,0,0,.1) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:active:not(:disabled){background-color:rgba(0,0,0,.15) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:focus-visible{background-color:rgba(0,0,0,.1) !important;outline:none !important;box-shadow:inset 0 0 0 2px var(--color-background-plain-text) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/UnifiedSearchInput.vue\"],\"names\":[],\"mappings\":\"AACA,uCAGC,iBAAA,CACA,UAAA,CAEA,0EACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,2BAAA,CAGD,+CACC,gBAAA,CAGD,8CACC,yCAAA,CACA,+CAAA,CAGA,uBAAA,CACA,wBAAA,CACA,sBAAA,CAGA,6BAAA,CACA,oDAAA,CACA,iBAAA,CAEA,0BAAA,CACA,YAAA,CACA,kBAAA,CAGA,oCAAA,CACA,UAAA,CACA,+CAAA,CACA,wCAAA,CAEA,0CAAA,CACA,qDAAA,CACA,6CAAA,CAEA,kJACC,CAGD,8FACC,gDAAA,CAID,sDACC,6CAAA,CACA,eAAA,CAQF,gDACC,eAAA,CACA,iBAAA,CACA,aAAA,CACA,yCAAA,CACA,+CAAA,CACA,YAAA,CACA,kBAAA,CACA,0BAAA,CACA,mBAAA,CACA,+FAAA,CACA,sFAAA,CACA,sIACC,CAGD,qFACC,uBAAA,CACA,mCAAA,CACA,+CAAA,CAOF,8CACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,wEAAA,CAGD,qFACC,SAAA,CAOD,2EACC,aAAA,CACA,yBAAA,CAKD,8CACC,MAAA,CACA,WAAA,CACA,WAAA,CACA,QAAA,CAGA,qHAAA,CAIA,sBAAA,CACA,0BAAA,CACA,0BAAA,CACA,8BAAA,CACA,4BAAA,CACA,kCAAA,CAEA,2DACC,SAAA,CACA,mCAAA,CAGD,4DACC,YAAA,CAIF,6FAEC,aAAA,CACA,qBAAA,CAGD,gDACC,aAAA,CACA,YAAA,CACA,kBAAA,CACA,0CAAA,CAKD,iDACC,iBAAA,CACA,6CAAA,CACA,OAAA,CACA,0BAAA,CACA,YAAA,CACA,mBAAA,CAKA,8BAXD,iDAYE,YAAA,CAAA,CAGD,qDACC,cAAA,CACA,WAAA,CACA,kBAAA,CACA,wFAAA,CACA,0BAAA,CACA,6CAAA,CACA,+FAAA,CACA,cAAA,CAOH,6IAEC,uFAAA,CACA,6FAAA,CAOD,yDACC,gBAAA,CAKD,uCACC,qGAEC,eAAA,CAAA,CAKF,4DACC,oCAAA,CAGD,qEACC,uDAAA,CACA,+CAAA,CAGD,2DACC,qDAAA,CACA,wCAAA,CACA,qDAAA,CAEA,gFACC,0CAAA,CAGD,iFACC,2CAAA,CAGD,yEACC,0CAAA,CACA,uBAAA,CACA,wEAAA\",\"sourcesContent\":[\"\\n.unified-search-input {\\n\\t// Paints above the modal root (z-index: 50) so the header input stays clickable\\n\\t// over the scrim while the popover is open. Keep 51 one above that value.\\n\\tposition: relative;\\n\\tz-index: 51;\\n\\n\\t&:not(.unified-search-input--mobile) {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\twidth: clamp(200px, 35vw, 600px);\\n\\t\\tmax-width: calc(100% - 32px);\\n\\t}\\n\\n\\t&--mobile {\\n\\t\\tdisplay: contents;\\n\\t}\\n\\n\\t&__field {\\n\\t\\t--resting-background: rgba(0, 0, 0, 0.15);\\n\\t\\t--resting-background-hover: rgba(0, 0, 0, 0.22);\\n\\t\\t// Shared geometry: the resting group and the input's leading padding read the\\n\\t\\t// same tokens so the placeholder and the typed value line up.\\n\\t\\t--search-icon-pad: 12px;\\n\\t\\t--search-icon-size: 20px;\\n\\t\\t--search-icon-gap: 8px;\\n\\t\\t// One shared timing for every focus transition (background, the icon/label\\n\\t\\t// slide, the recolour) so they move together. easeOutQuart = soft landing.\\n\\t\\t--search-anim-duration: 240ms;\\n\\t\\t--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);\\n\\t\\tposition: relative;\\n\\t\\t// Query container so the resting group can centre itself with cqi units\\n\\t\\tcontainer-type: inline-size;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t// Match the default clickable area so the inner (which the global\\n\\t\\t// input reset forces to that height) fills the field without an override.\\n\\t\\theight: var(--default-clickable-area);\\n\\t\\twidth: 100%;\\n\\t\\tborder-radius: var(--border-radius-element, 8px);\\n\\t\\tbox-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.12);\\n\\t\\t// Resting: subdued \\\"button\\\" look that sits on the themed header\\n\\t\\tbackground-color: var(--resting-background);\\n\\t\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\t\\tbackdrop-filter: var(--filter-background-blur);\\n\\t\\t// Blue tint -> white surface on the shared timing, in step with the slide.\\n\\t\\ttransition:\\n\\t\\t\\tbackground-color var(--search-anim-duration) var(--search-anim-easing),\\n\\t\\t\\tbox-shadow var(--search-anim-duration) var(--search-anim-easing);\\n\\n\\t\\t&:hover:not(.unified-search-input__field--active) {\\n\\t\\t\\tbackground-color: var(--resting-background-hover);\\n\\t\\t}\\n\\n\\t\\t// Active: real input surface once focused or filled\\n\\t\\t&--active {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// Anchored at the leading edge and translated to the centre while at rest; on\\n\\t// focus (--active) the translate goes to 0 and it slides into place. Centre offset\\n\\t// is pure CSS: half the field (50cqi) minus half the group (50%) minus the pad, so\\n\\t// it self-corrects for any placeholder length or field width.\\n\\t&__resting {\\n\\t\\t--slide-sign: 1;\\n\\t\\tposition: absolute;\\n\\t\\tinset-block: 0;\\n\\t\\tinset-inline-start: var(--search-icon-pad);\\n\\t\\tmax-width: calc(100% - 2 * var(--search-icon-pad));\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: var(--search-icon-gap);\\n\\t\\tpointer-events: none;\\n\\t\\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\\n\\t\\ttransform: translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));\\n\\t\\ttransition:\\n\\t\\t\\ttransform var(--search-anim-duration) var(--search-anim-easing),\\n\\t\\t\\tcolor var(--search-anim-duration) var(--search-anim-easing);\\n\\n\\t\\t.unified-search-input__field--active & {\\n\\t\\t\\ttransform: translateX(0);\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tmax-width: calc(100% - 7 * var(--search-icon-pad));\\n\\t\\t}\\n\\t}\\n\\n\\t// Placeholder text inside the resting group. Ellipsised, and hidden once typing\\n\\t// starts so it doesn't overlap the value. Scoped to the label class so the sibling\\n\\t// magnifier (also rendered as a ) stays visible.\\n\\t&__label {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\ttransition: opacity var(--search-anim-duration) var(--search-anim-easing);\\n\\t}\\n\\n\\t&__resting--filled &__label {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t// The material-design icon is inline (baseline-aligned), which leaves a\\n\\t// descender gap and makes the glyph sit high even when its box is centred.\\n\\t// Render it as a block so it fills its box, then nudge 1px down to sit on the\\n\\t// text's optical centre (a geometrically centred glyph reads slightly high).\\n\\t&__resting :deep(.material-design-icon__svg) {\\n\\t\\tdisplay: block;\\n\\t\\ttransform: translateY(1px);\\n\\t}\\n\\n\\t// Only visible once active (at rest it's empty and covered by the overlay),\\n\\t// so it's styled for the active/white surface throughout.\\n\\t&__input {\\n\\t\\tflex: 1;\\n\\t\\tmin-width: 0;\\n\\t\\theight: 100%;\\n\\t\\tmargin: 0;\\n\\t\\t// Leading space so the placeholder/value starts one gap past the magnifier,\\n\\t\\t// matching the resting group exactly. Trailing padding mirrors the leading pad.\\n\\t\\tpadding-inline: calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);\\n\\t\\t// Opt out of NC's global input chrome (core/css/inputs.scss adds a border,\\n\\t\\t// radius and focus box-shadow to any text input not in its exclusion list).\\n\\t\\t// !important because that global focus rule outweighs a scoped class.\\n\\t\\tborder: none !important;\\n\\t\\tborder-radius: 0 !important;\\n\\t\\tbox-shadow: none !important;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-size: var(--default-font-size);\\n\\n\\t\\t&::placeholder {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\toutline: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&__clear,\\n\\t&__filter {\\n\\t\\tflex-shrink: 0;\\n\\t\\tmargin-inline-end: 2px;\\n\\t}\\n\\n\\t&__loading {\\n\\t\\tflex-shrink: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmargin-inline: var(--default-grid-baseline);\\n\\t}\\n\\n\\t// Pinned to the trailing edge, overlaid on the input (pointer-events: none so a\\n\\t// click there still focuses the field).\\n\\t&__shortcut {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: var(--default-grid-baseline);\\n\\t\\ttop: 50%;\\n\\t\\ttransform: translateY(-50%);\\n\\t\\tdisplay: flex;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t// On a narrow field the centred placeholder runs under the hint, so drop it\\n\\t\\t// below a usable width. Keyed to the field's own inline-size (its container),\\n\\t\\t// not the viewport, so it holds however crowded the header gets.\\n\\t\\t@container (max-width: 400px) {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t:deep(kbd) {\\n\\t\\t\\tmin-width: 12px;\\n\\t\\t\\theight: 12px;\\n\\t\\t\\tpadding-inline: 5px;\\n\\t\\t\\tborder: 1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);\\n\\t\\t\\tborder-block-end-width: 2px;\\n\\t\\t\\tborder-radius: var(--border-radius-small, 4px);\\n\\t\\t\\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\\n\\t\\t\\tfont-size: 13px;\\n\\t\\t}\\n\\t}\\n}\\n\\n// On dark themes the plain overlay is nearly invisible on the header, so tint\\n// the resting background with the primary colour instead.\\n[data-theme-dark] .unified-search-input__field,\\n[data-theme-dark-highcontrast] .unified-search-input__field {\\n\\t--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);\\n\\t--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent);\\n}\\n\\n// translateX is physical, so flip the resting slide under RTL to keep it moving toward\\n// the leading (right) edge. :dir(rtl) tracks the computed direction, so it applies whether\\n// RTL comes from the body dir attribute or a direction style (an [dir=rtl] attribute\\n// selector would miss the latter).\\n.unified-search-input__resting:dir(rtl) {\\n\\t--slide-sign: -1;\\n}\\n\\n// Respect reduced-motion: keep the end states but drop the slide/fade so nothing\\n// animates on focus.\\n@media (prefers-reduced-motion: reduce) {\\n\\t.unified-search-input__resting,\\n\\t.unified-search-input__resting span {\\n\\t\\ttransition: none;\\n\\t}\\n}\\n\\n// Mobile: NcHeaderButton styling to match the other header items\\n.unified-search-input--mobile :deep(.header-menu) {\\n\\theight: var(--default-clickable-area);\\n}\\n\\n.unified-search-input--mobile :deep(.header-menu__trigger) {\\n\\t--button-size: var(--default-clickable-area) !important;\\n\\theight: var(--default-clickable-area) !important;\\n}\\n\\n.unified-search-input--mobile :deep(.button-vue) {\\n\\t--color-main-text: var(--color-background-plain-text);\\n\\tcolor: var(--color-background-plain-text);\\n\\tborder-radius: var(--border-radius-element) !important;\\n\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: rgba(0, 0, 0, 0.1) !important;\\n\\t}\\n\\n\\t&:active:not(:disabled) {\\n\\t\\tbackground-color: rgba(0, 0, 0, 0.15) !important;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\tbackground-color: rgba(0, 0, 0, 0.1) !important;\\n\\t\\toutline: none !important;\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-background-plain-text) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.local-unified-search[data-v-2b577e50]{--local-search-width: min(calc(250px + var(--dfb017de)), 95vw);box-sizing:border-box;position:relative;height:var(--header-height);width:var(--local-search-width);display:flex;align-items:center;z-index:10;padding-inline:var(--border-width-input-focused);overflow:hidden;inset-inline-end:0}.local-unified-search .local-unified-search__global-search[data-v-2b577e50]{position:absolute;inset-inline-end:var(--default-clickable-area)}.local-unified-search .local-unified-search__input[data-v-2b577e50]{box-sizing:border-box;margin:0;width:var(--local-search-width)}.local-unified-search .local-unified-search__input[data-v-2b577e50] input{padding-inline-end:calc(var(--dfb017de) + var(--default-clickable-area))}.animated-width[data-v-2b577e50]{transition:width var(--animation-quick) linear}.v-leave-active[data-v-2b577e50]{position:absolute !important}.v-enter.local-unified-search[data-v-2b577e50],.v-leave-to.local-unified-search[data-v-2b577e50]{--local-search-width: var(--clickable-area-large)}@media screen and (max-width: 500px){.local-unified-search.local-unified-search--open[data-v-2b577e50]{--local-search-width: 100vw;padding-inline:var(--default-grid-baseline)}.unified-search-menu:has(.local-unified-search--open){position:absolute !important;inset-inline:0}.header-end:has(.local-unified-search--open) > :not(.unified-search-menu){display:none}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,8DAAA,CACA,qBAAA,CACA,iBAAA,CACA,2BAAA,CACA,+BAAA,CACA,YAAA,CACA,kBAAA,CAEA,UAAA,CAEA,gDAAA,CAEA,eAAA,CAEA,kBAAA,CAEA,4EACC,iBAAA,CACA,8CAAA,CAGD,oEACC,qBAAA,CAEA,QAAA,CACA,+BAAA,CAIA,0EAEC,wEAAA,CAKH,iCACC,8CAAA,CAKD,iCACC,4BAAA,CAKA,iGAEC,iDAAA,CAIF,qCACC,kEAEC,2BAAA,CACA,2CAAA,CAID,sDACC,4BAAA,CACA,cAAA,CAGD,0EACC,YAAA,CAAA\",\"sourcesContent\":[\"\\n.local-unified-search {\\n\\t--local-search-width: min(calc(250px + v-bind('searchGlobalButtonCSSWidth')), 95vw);\\n\\tbox-sizing: border-box;\\n\\tposition: relative;\\n\\theight: var(--header-height);\\n\\twidth: var(--local-search-width);\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\t// Ensure it overlays the other entries\\n\\tz-index: 10;\\n\\t// add some padding for the focus visible outline\\n\\tpadding-inline: var(--border-width-input-focused);\\n\\t// hide the overflow - needed for the transition\\n\\toverflow: hidden;\\n\\t// Ensure the position is fixed also during \\\"position: absolut\\\" (transition)\\n\\tinset-inline-end: 0;\\n\\n\\t#{&} &__global-search {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: var(--default-clickable-area);\\n\\t}\\n\\n\\t#{&} &__input {\\n\\t\\tbox-sizing: border-box;\\n\\t\\t// override some nextcloud-vue styles\\n\\t\\tmargin: 0;\\n\\t\\twidth: var(--local-search-width);\\n\\n\\t\\t// Fixup the spacing so we can fit in the \\\"search globally\\\" button\\n\\t\\t// this can break at any time the component library changes\\n\\t\\t:deep(input) {\\n\\t\\t\\t// search global width + close button width\\n\\t\\t\\tpadding-inline-end: calc(v-bind('searchGlobalButtonCSSWidth') + var(--default-clickable-area));\\n\\t\\t}\\n\\t}\\n}\\n\\n.animated-width {\\n\\ttransition: width var(--animation-quick) linear;\\n}\\n\\n// Make the position absolute during the transition\\n// this is needed to \\\"hide\\\" the button behind it\\n.v-leave-active {\\n\\tposition: absolute !important;\\n}\\n\\n.v-enter,\\n.v-leave-to {\\n\\t&.local-unified-search {\\n\\t\\t// Start with only the overlay button\\n\\t\\t--local-search-width: var(--clickable-area-large);\\n\\t}\\n}\\n\\n@media screen and (max-width: 500px) {\\n\\t.local-unified-search.local-unified-search--open {\\n\\t\\t// 100% but still show the menu toggle on the very right\\n\\t\\t--local-search-width: 100vw;\\n\\t\\tpadding-inline: var(--default-grid-baseline);\\n\\t}\\n\\n\\t// when open we need to position it absolute to allow overlay the full bar\\n\\t:global(.unified-search-menu:has(.local-unified-search--open)) {\\n\\t\\tposition: absolute !important;\\n\\t\\tinset-inline: 0;\\n\\t}\\n\\t// Hide all other entries, especially the user menu as it might leak pixels\\n\\t:global(.header-end:has(.local-unified-search--open) > :not(.unified-search-menu)) {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-modal-root[data-v-39a656a6]{position:absolute;inset-block-start:100%;inset-inline:0;z-index:50 !important;margin-block-start:6px;display:flex;justify-content:center}.unified-search-modal__scrim[data-v-39a656a6]{position:fixed;inset:0;z-index:0;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color), 0.5)}.unified-search-modal__container[data-v-39a656a6]{position:relative;z-index:1;display:flex;flex-direction:column;flex-shrink:0;width:600px;max-width:90vw;max-height:calc(90vh - var(--header-height));border-radius:var(--border-radius-container-large, var(--border-radius-rounded));overflow:hidden;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px rgba(0,0,0,.2);transition:transform 240ms cubic-bezier(0.22, 1, 0.36, 1)}@media only screen and ((max-width: 512px) or (max-height: 400px)){.unified-search-modal-root[data-v-39a656a6]{position:fixed;inset-block-start:var(--header-height);inset-inline:0;inset-block-end:0;margin-block-start:0}.unified-search-modal__container[data-v-39a656a6]{width:100%;max-width:initial;height:100%;max-height:initial;border-radius:0}}.unified-search-modal-enter-active[data-v-39a656a6],.unified-search-modal-leave-active[data-v-39a656a6]{transition:opacity 250ms}.unified-search-modal-enter[data-v-39a656a6],.unified-search-modal-leave-to[data-v-39a656a6]{opacity:0}.unified-search-modal-enter .unified-search-modal__container[data-v-39a656a6],.unified-search-modal-leave-to .unified-search-modal__container[data-v-39a656a6]{transform:translateY(-6px)}@media(prefers-reduced-motion: reduce){.unified-search-modal__container[data-v-39a656a6]{transition:none}.unified-search-modal-enter .unified-search-modal__container[data-v-39a656a6],.unified-search-modal-leave-to .unified-search-modal__container[data-v-39a656a6]{transform:none}}.unified-search-modal__header[data-v-39a656a6]{position:relative;display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);padding-inline:calc(var(--default-grid-baseline)*4);padding-block:calc(var(--default-grid-baseline)*4) 0}.unified-search-modal__header--has-results[data-v-39a656a6]{padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__header--has-results[data-v-39a656a6]::after{content:\"\";position:absolute;inset-inline:calc(var(--default-grid-baseline)*4);inset-block-end:0;border-block-end:1px solid var(--color-border)}.unified-search-modal__mobile-input[data-v-39a656a6]{display:flex;align-items:center;gap:4px}.unified-search-modal__mobile-input[data-v-39a656a6] .input-field{flex:1 1 auto}.unified-search-modal__filters[data-v-39a656a6]{display:flex;flex-wrap:wrap;gap:4px;justify-content:start}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6],.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6],.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6]{flex:1 1 0;min-width:0}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .v-popper{display:block;width:100%}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .button-vue__wrapper{justify-content:center}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .button-vue{position:relative;width:100%;padding-inline:calc(var(--default-grid-baseline)*6);border-radius:var(--border-radius-element)}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-39a656a6] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-39a656a6] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-39a656a6] .button-vue::after{content:\"\";position:absolute;inset-inline-end:calc(var(--default-grid-baseline)*2);inset-block:0;margin-block:auto;width:16px;height:16px;background-color:currentColor;mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});mask-repeat:no-repeat;mask-position:center;mask-size:contain}.unified-search-modal__filters-applied[data-v-39a656a6]{display:flex;flex-wrap:wrap}.unified-search-modal__no-content[data-v-39a656a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--default-grid-baseline)*2);min-height:200px;padding-inline:calc(var(--default-grid-baseline)*4);padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__detail-header[data-v-39a656a6]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--default-grid-baseline)*2);position:sticky;top:0;z-index:1;background-color:var(--color-main-background);padding-block:calc(var(--default-grid-baseline)*3) calc(var(--default-grid-baseline)*2);border-block-end:1px solid var(--color-border)}.unified-search-modal__detail-back[data-v-39a656a6]{justify-self:start}.unified-search-modal__detail-title[data-v-39a656a6]{font-size:var(--default-font-size);font-weight:var(--font-weight-heading);grid-column:2;margin:0;margin-block-start:-3px;align-self:stretch;display:flex;align-items:center;justify-content:center}.unified-search-modal__connected-services[data-v-39a656a6]{display:flex;flex-wrap:wrap;width:100%;margin-block-start:calc(var(--default-grid-baseline)*3)}.unified-search-modal__rtl-icon[data-v-39a656a6]:dir(rtl){transform:scaleX(-1)}.unified-search-modal__results[data-v-39a656a6]{flex:1 1 auto;min-height:0;overflow:hidden auto;padding-inline:calc(var(--default-grid-baseline)*4);padding-block:0 calc(var(--default-grid-baseline)*4)}.unified-search-modal__results .result-title[data-v-39a656a6]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);margin-block:14px 4px;margin-inline-start:calc(var(--default-grid-baseline)*2)}.unified-search-modal__results .result-title--more[data-v-39a656a6]{margin-block:calc(var(--default-grid-baseline)*2) var(--default-grid-baseline)}.unified-search-modal__results .result-title--more[data-v-39a656a6] .button-vue__text{font-size:var(--default-font-size);color:var(--color-main-text)}.unified-search-modal__results .result-title--more[data-v-39a656a6] .button-vue__icon{color:var(--color-main-text)}.unified-search-modal__results .result-footer[data-v-39a656a6]{justify-content:space-between;align-items:center;display:flex}.unified-search-modal__results .result--unfiltered[data-v-39a656a6]{opacity:.7}.unified-search-modal__unfiltered-header[data-v-39a656a6]{display:flex;flex-direction:column;gap:2px;margin-block:16px 8px;padding-block:12px 0}.result-group+.result-group>.unified-search-modal__unfiltered-header[data-v-39a656a6]{border-block-start:1px solid var(--color-border)}.unified-search-modal__unfiltered-label[data-v-39a656a6]{font-weight:var(--font-weight-heading);color:var(--color-text-maxcontrast)}.filter-button__icon[data-v-39a656a6]{height:20px;width:20px;object-fit:contain;filter:var(--background-invert-if-bright);padding:11px}@media only screen and (max-height: 400px){.unified-search-modal__results[data-v-39a656a6]{overflow:unset}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/UnifiedSearchModal.vue\"],\"names\":[],\"mappings\":\"AAKA,4CACC,iBAAA,CACA,sBAAA,CACA,cAAA,CAGA,qBAAA,CACA,sBAAA,CACA,YAAA,CACA,sBAAA,CAKD,8CACC,cAAA,CACA,OAAA,CACA,SAAA,CACA,yBAAA,CACA,iDAAA,CAKD,kDACC,iBAAA,CACA,SAAA,CACA,YAAA,CACA,qBAAA,CAGA,aAAA,CACA,WAAA,CACA,cAAA,CAEA,4CAAA,CACA,gFAAA,CAEA,eAAA,CACA,6CAAA,CACA,4BAAA,CACA,kCAAA,CAGA,yDAAA,CAID,mEACC,4CAGC,cAAA,CACA,sCAAA,CACA,cAAA,CACA,iBAAA,CACA,oBAAA,CAGD,kDACC,UAAA,CACA,iBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CAAA,CAKF,wGAEC,wBAAA,CAGD,6FAEC,SAAA,CAGD,+JAEC,0BAAA,CAKD,uCACC,kDACC,eAAA,CAGD,+JAEC,cAAA,CAAA,CAKD,+CAKC,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mDAAA,CAEA,oDAAA,CAIA,4DACC,sDAAA,CAEA,mEACC,UAAA,CACA,iBAAA,CACA,iDAAA,CACA,iBAAA,CACA,8CAAA,CAKH,qDACC,YAAA,CACA,kBAAA,CACA,OAAA,CAEA,kEACC,aAAA,CAIF,gDACC,YAAA,CACA,cAAA,CACA,OAAA,CACA,qBAAA,CAIA,mQAGC,UAAA,CACA,WAAA,CAEA,iSACC,aAAA,CACA,UAAA,CAID,kUACC,sBAAA,CAID,uSACC,iBAAA,CACA,UAAA,CACA,mDAAA,CACA,0CAAA,CAEA,4TACC,UAAA,CACA,iBAAA,CACA,qDAAA,CACA,aAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,6BAAA,CACA,kDAAA,CACA,qBAAA,CACA,oBAAA,CACA,iBAAA,CAMJ,wDACC,YAAA,CACA,cAAA,CAGD,mDACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,wCAAA,CAEA,gBAAA,CAEA,mDAAA,CACA,sDAAA,CAID,sDAEC,YAAA,CACA,kCAAA,CACA,kBAAA,CACA,wCAAA,CAGA,eAAA,CACA,KAAA,CACA,SAAA,CACA,6CAAA,CACA,uFAAA,CACA,8CAAA,CAGD,oDACC,kBAAA,CAGD,qDACC,kCAAA,CACA,sCAAA,CACA,aAAA,CACA,QAAA,CACA,uBAAA,CAGA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAID,2DACC,YAAA,CACA,cAAA,CAGA,UAAA,CACA,uDAAA,CAKD,0DACC,oBAAA,CAGD,gDAEC,aAAA,CACA,YAAA,CACA,oBAAA,CAEA,mDAAA,CACA,oDAAA,CAGC,8DACC,mCAAA,CACA,kCAAA,CAEA,qBAAA,CACA,wDAAA,CAKD,oEACC,8EAAA,CAEA,sFACC,kCAAA,CACA,4BAAA,CAGD,sFACC,4BAAA,CAIF,+DACC,6BAAA,CACA,kBAAA,CACA,YAAA,CAGD,oEACC,UAAA,CAMH,0DACC,YAAA,CACA,qBAAA,CACA,OAAA,CACA,qBAAA,CACA,oBAAA,CAKA,sFACC,gDAAA,CAIF,yDACC,sCAAA,CACA,mCAAA,CAIF,sCACC,WAAA,CACA,UAAA,CACA,kBAAA,CACA,yCAAA,CACA,YAAA,CAID,2CACC,gDACC,cAAA,CAAA\",\"sourcesContent\":[\"\\n\\n// Anchor the popover under the header input (the .unified-search-menu parent is\\n// the positioning context) instead of centering it in the viewport. The scrim is\\n// fixed separately so it still dims the whole page.\\n.unified-search-modal-root {\\n\\tposition: absolute;\\n\\tinset-block-start: 100%;\\n\\tinset-inline: 0;\\n\\t// One below the header input (z-index: 51) and above the page. !important wins\\n\\t// the stacking cascade inside the themed #header.\\n\\tz-index: 50 !important;\\n\\tmargin-block-start: 6px;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n}\\n\\n// Backdrop, mirrors NcModal's .modal-mask. Fixed so it covers the whole viewport\\n// regardless of the anchored root.\\n.unified-search-modal__scrim {\\n\\tposition: fixed;\\n\\tinset: 0;\\n\\tz-index: 0;\\n\\t--backdrop-color: 0, 0, 0;\\n\\tbackground-color: rgba(var(--backdrop-color), 0.5);\\n}\\n\\n// Dialog panel: NcModal's \\\"normal\\\" chrome, but width-matched to the header input\\n// and anchored under it, growing downward and scrolling internally when tall.\\n.unified-search-modal__container {\\n\\tposition: relative;\\n\\tz-index: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\t// Match the previous unified-search modal (NcModal \\\"normal\\\" size). flex-shrink: 0\\n\\t// stops the flex parent from collapsing it below 600px when the menu is narrower.\\n\\tflex-shrink: 0;\\n\\twidth: 600px;\\n\\tmax-width: 90vw;\\n\\t// Leave ~10vh below the panel so it does not reach the bottom of the page\\n\\tmax-height: calc(90vh - var(--header-height));\\n\\tborder-radius: var(--border-radius-container-large, var(--border-radius-rounded));\\n\\t// Clip the header/results to the rounded corners\\n\\toverflow: hidden;\\n\\tbackground-color: var(--color-main-background);\\n\\tcolor: var(--color-main-text);\\n\\tbox-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\\n\\t// The panel slides down into place; the enter/leave classes set the start offset.\\n\\t// Same easeOutQuart curve as the header input so the whole search UI moves in step.\\n\\ttransition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);\\n}\\n\\n// Fullscreen on small viewports, mirrors NcModal's responsive breakpoint\\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\\n\\t.unified-search-modal-root {\\n\\t\\t// Fill the viewport below the header bar, leaving it visible and interactive\\n\\t\\t// (matches the previous unified search and the rest of the mobile chrome).\\n\\t\\tposition: fixed;\\n\\t\\tinset-block-start: var(--header-height);\\n\\t\\tinset-inline: 0;\\n\\t\\tinset-block-end: 0;\\n\\t\\tmargin-block-start: 0;\\n\\t}\\n\\n\\t.unified-search-modal__container {\\n\\t\\twidth: 100%;\\n\\t\\tmax-width: initial;\\n\\t\\theight: 100%;\\n\\t\\tmax-height: initial;\\n\\t\\tborder-radius: 0;\\n\\t}\\n}\\n\\n// Open/close animation: the backdrop fades while the panel slides down from the top\\n.unified-search-modal-enter-active,\\n.unified-search-modal-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.unified-search-modal-enter,\\n.unified-search-modal-leave-to {\\n\\topacity: 0;\\n}\\n\\n.unified-search-modal-enter .unified-search-modal__container,\\n.unified-search-modal-leave-to .unified-search-modal__container {\\n\\ttransform: translateY(-6px);\\n}\\n\\n// Respect reduced-motion: keep the backdrop cross-fade (opacity is not motion) but\\n// drop the panel slide so nothing moves on open/close.\\n@media (prefers-reduced-motion: reduce) {\\n\\t.unified-search-modal__container {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t.unified-search-modal-enter .unified-search-modal__container,\\n\\t.unified-search-modal-leave-to .unified-search-modal__container {\\n\\t\\ttransform: none;\\n\\t}\\n}\\n\\n.unified-search-modal {\\n\\t&__header {\\n\\t\\t// Owns all its own spacing: the inline inset, the gap above the first row, and the\\n\\t\\t// gap between stacked rows (mobile input, filters, applied chips). position:\\n\\t\\t// relative only anchors the divider below; the header never scrolls (the results\\n\\t\\t// list scrolls in its own box), so it needs no sticky offset.\\n\\t\\tposition: relative;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\t// Trim the bottom when the filter row is all there is; results add it back below.\\n\\t\\tpadding-block: calc(var(--default-grid-baseline) * 4) 0;\\n\\n\\t\\t// With results below, restore the full bottom inset above the divider (which aligns\\n\\t\\t// to the content edge).\\n\\t\\t&--has-results {\\n\\t\\t\\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\\n\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\t\\t\\tinset-block-end: 0;\\n\\t\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__mobile-input {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: 4px;\\n\\n\\t\\t:deep(.input-field) {\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&__filters {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tgap: 4px;\\n\\t\\tjustify-content: start;\\n\\n\\t\\t// The three category triggers split the row into thirds; any extra controls\\n\\t\\t// (local search) keep their size and wrap below.\\n\\t\\t> [data-cy-unified-search-filter=\\\"places\\\"],\\n\\t\\t> [data-cy-unified-search-filter=\\\"date\\\"],\\n\\t\\t> [data-cy-unified-search-filter=\\\"people\\\"] {\\n\\t\\t\\tflex: 1 1 0;\\n\\t\\t\\tmin-width: 0;\\n\\n\\t\\t\\t:deep(.v-popper) {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Centre [icon] label; the chevron is pinned to the trailing edge below.\\n\\t\\t\\t:deep(.button-vue__wrapper) {\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// NcActions exposes no dropdown chevron, so paint one at the trailing edge.\\n\\t\\t\\t:deep(.button-vue) {\\n\\t\\t\\t\\tposition: relative;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 6);\\n\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\tinset-inline-end: calc(var(--default-grid-baseline) * 2);\\n\\t\\t\\t\\t\\tinset-block: 0;\\n\\t\\t\\t\\t\\tmargin-block: auto;\\n\\t\\t\\t\\t\\twidth: 16px;\\n\\t\\t\\t\\t\\theight: 16px;\\n\\t\\t\\t\\t\\tbackground-color: currentColor;\\n\\t\\t\\t\\t\\tmask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E\\\");\\n\\t\\t\\t\\t\\tmask-repeat: no-repeat;\\n\\t\\t\\t\\t\\tmask-position: center;\\n\\t\\t\\t\\t\\tmask-size: contain;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__filters-applied {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t}\\n\\n\\t&__no-content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\t// min-height (not fixed) so the panel grows to keep the button inside, not spilling past the edge.\\n\\t\\tmin-height: 200px;\\n\\t\\t// Match the results container's inset so the button lines up, not flush to the edges.\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\\n\\t}\\n\\n\\t// Detail-view chrome: the back control sits above the category's heading + list.\\n\\t&__detail-header {\\n\\t\\t// Three tracks: \\\"Back\\\" at the start, title centred, empty end track to balance it.\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 1fr auto 1fr;\\n\\t\\talign-items: center;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\t// Sticky at the top of the scrolling results. Background hides rows underneath; padding\\n\\t\\t// (not margin) stops bleed-through above.\\n\\t\\tposition: sticky;\\n\\t\\ttop: 0;\\n\\t\\tz-index: 1;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tpadding-block: calc(var(--default-grid-baseline) * 3) calc(var(--default-grid-baseline) * 2);\\n\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__detail-back {\\n\\t\\tjustify-self: start;\\n\\t}\\n\\n\\t&__detail-title {\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tfont-weight: var(--font-weight-heading);\\n\\t\\tgrid-column: 2;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-block-start: -3px;\\n\\t\\t// Centre the text the same way the Back button centres its label: stretch to the row\\n\\t\\t// height and flex-centre, instead of a line-height that lands the ink a few px off.\\n\\t\\talign-self: stretch;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t// End-of-list (and empty-state) connected-services opt-in.\\n\\t&__connected-services {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\t// Stretch to panel width so the wide button fills it (the empty-state's centred column\\n\\t\\t// would otherwise shrink it to content width).\\n\\t\\twidth: 100%;\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline) * 3);\\n\\t}\\n\\n\\t// Directional glyphs (back arrow, more-from chevron) point the other way in RTL.\\n\\t// :dir(rtl) tracks the computed direction, unlike an [dir=rtl] attribute selector.\\n\\t&__rtl-icon:dir(rtl) {\\n\\t\\ttransform: scaleX(-1);\\n\\t}\\n\\n\\t&__results {\\n\\t\\t// Take the remaining panel height and scroll internally (container has a max-height)\\n\\t\\tflex: 1 1 auto;\\n\\t\\tmin-height: 0;\\n\\t\\toverflow: hidden auto;\\n\\t\\t// Adjust padding to match container but keep the scrollbar on the very end\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\tpadding-block: 0 calc(var(--default-grid-baseline) * 4);\\n\\n\\t\\t.result {\\n\\t\\t\\t&-title {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t// 14px is not a grid multiple; kept raw rather than mixing units in one shorthand.\\n\\t\\t\\t\\tmargin-block: 14px 4px;\\n\\t\\t\\t\\tmargin-inline-start: calc(var(--default-grid-baseline) * 2);\\n\\t\\t\\t}\\n\\n\\t\\t\\t// The overflow heading is a real button; match the plain title's size and colour,\\n\\t\\t\\t// but leave it NcButton's own --font-weight-element weight.\\n\\t\\t\\t&-title--more {\\n\\t\\t\\t\\tmargin-block: calc(var(--default-grid-baseline) * 2) var(--default-grid-baseline);\\n\\n\\t\\t\\t\\t:deep(.button-vue__text) {\\n\\t\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t:deep(.button-vue__icon) {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-footer {\\n\\t\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--unfiltered {\\n\\t\\t\\t\\topacity: 0.7;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__unfiltered-header {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 2px;\\n\\t\\tmargin-block: 16px 8px;\\n\\t\\tpadding-block: 12px 0;\\n\\n\\t\\t// Divide the partial matches from the results above, but only when some precede\\n\\t\\t// them: when they lead the list this rule lands just under the header's own\\n\\t\\t// divider, and the two read as one double line.\\n\\t\\t.result-group + .result-group > & {\\n\\t\\t\\tborder-block-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__unfiltered-label {\\n\\t\\tfont-weight: var(--font-weight-heading);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\\n.filter-button__icon {\\n\\theight: 20px;\\n\\twidth: 20px;\\n\\tobject-fit: contain;\\n\\tfilter: var(--background-invert-if-bright);\\n\\tpadding: 11px; // align with text to fit at least 44px\\n}\\n\\n// Ensure modal is accessible on small devices\\n@media only screen and (max-height: 400px) {\\n\\t.unified-search-modal__results {\\n\\t\\toverflow: unset;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-menu[data-v-44547071]{position:relative;display:flex;align-items:center;justify-content:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnifiedSearch.vue\"],\"names\":[],\"mappings\":\"AAEA,sCAEC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n// this is needed to allow us overriding component styles (focus-visible)\\n.unified-search-menu {\\n\\t// Positioning context so the results popover can anchor under the input\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6776;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t6776: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(6830)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","vue_material_design_icons_FilterVariantvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","FilterVariant","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","vue_material_design_icons_Magnifyvue_type_script_lang_js","Magnify","UnifiedSearch_UnifiedSearchInputvue_type_script_setup_true_lang_ts","_defineComponent","__name","expanded","Boolean","activeDescendantId","query","loading","filtersRevealed","setup","__props","expose","emit","isSmallMobile","useIsSmallMobile","placeholderText","t","directionByKey","ArrowDown","ArrowUp","fieldRef","ref","inputRef","isFocused","isActive","computed","value","length","showFunnel","focus","__sfc","resultsContainerId","onFocusOut","event","contains","relatedTarget","onMouseDown","target","preventDefault","onInput","openFilters","clearOrClose","focused","document","activeElement","blur","onKeyDown","isComposing","key","direction","l10n_dist","NcButton","NcHeaderButton","NcHeaderButton_MEyDJghO","N","NcKbd","NcKbd_CXJA9sCj","NcLoadingIcon","IconClose","Close","IconFilterVariant","IconMagnify","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","UnifiedSearchInputvue_type_style_index_0_id_59e94aec_prod_lang_scss_scoped_true","locals","UnifiedSearchInput","_setup","_setupProxy","class","id","ariaLabel","scopedSlots","_u","fn","proxy","focusin","focusout","mousedown","undefined","domProps","input","keydown","variant","symbol","UnifiedSearch_UnifiedSearchLocalSearchBarvue_type_script_lang_ts_setup_true","open","_useCssVars","dfb017de","searchGlobalButtonCSSWidth","searchInput","watchEffect","isMobile","useIsMobile","searchGlobalButton","searchGlobalButtonWidth","useElementSize","clearAndCloseSearch","mdiClose","mdi","hyP","mdiCloudSearchOutline","ydM","Tl","NcIconSvgWrapper","NcInputField","UnifiedSearchLocalSearchBarvue_type_style_index_0_id_2b577e50_prod_scoped_true_lang_scss_options","UnifiedSearchLocalSearchBarvue_type_style_index_0_id_2b577e50_prod_scoped_true_lang_scss","UnifiedSearchLocalSearchBar","placeholder","path","vue_material_design_icons_AccountMultipleOutlinevue_type_script_lang_js","AccountMultipleOutline","vue_material_design_icons_ArrowLeftvue_type_script_lang_js","ArrowLeft","vue_material_design_icons_CalendarBlankOutlinevue_type_script_lang_js","CalendarBlankOutline","vue_material_design_icons_Filtervue_type_script_lang_js","Filter","vue_material_design_icons_ShapeOutlinevue_type_script_lang_js","ShapeOutline","vue_material_design_icons_CalendarRangevue_type_script_lang_js","CalendarRange","UnifiedSearch_CustomDateRangeModalvue_type_script_lang_js","components","NcModal","CalendarRangeIcon","NcDateTimePicker","isOpen","required","data","dateFilter","startFrom","endAt","isModalOpen","get","set","methods","closeModal","applyCustomRange","CustomDateRangeModalvue_type_style_index_0_id_2907014b_prod_lang_scss_scoped_true_options","CustomDateRangeModalvue_type_style_index_0_id_2907014b_prod_lang_scss_scoped_true","CustomDateRangeModal","show","close","label","model","callback","$$v","$set","expression","vue_material_design_icons_AlertCircleOutlinevue_type_script_lang_js","AlertCircleOutline","UnifiedSearch_SearchableListvue_type_script_lang_js","IconAlertCircleOutline","NcAvatar","NcEmptyContent","NcPopover","NcTextField","labelText","searchList","Array","emptyContentText","opened","error","searchTerm","filteredList","filter","element","toLowerCase","some","prop","includes","clearSearch","setOpened","itemSelected","searchTermChanged","term","SearchableListvue_type_style_index_0_id_66bd6570_prod_lang_scss_scoped_true_options","SearchableListvue_type_style_index_0_id_66bd6570_prod_lang_scss_scoped_true","SearchableList","shown","hide","_t","_l","displayName","alignment","wide","isUser","user","UnifiedSearch_SearchFilterChipvue_type_script_lang_js","CloseIcon","text","pretext","removeLabel","deleteChip","SearchFilterChipvue_type_style_index_0_id_5a4f6249_prod_lang_scss_scoped_true_options","SearchFilterChipvue_type_style_index_0_id_5a4f6249_prod_lang_scss_scoped_true","SearchFilterChip","components_AppIconvue_type_script_setup_true_lang_ts","icon","outlined","iconStyle","replace","AppIconvue_type_style_index_0_id_42bb03fc_prod_scoped_true_lang_scss_options","AppIconvue_type_style_index_0_id_42bb03fc_prod_scoped_true_lang_scss","UnifiedSearch_SearchResultvue_type_script_lang_js","AppIcon","style","NcListItem","thumbnailUrl","subline","resourceUrl","rounded","elementId","active","thumbnailHasError","hasThumbnail","isValidIconOrPreviewUrl","iconIsUrl","isAppIcon","watch","url","test","startsWith","thumbnailErrorHandler","SearchResultvue_type_style_index_0_id_516c3939_prod_lang_scss_scoped_true_options","SearchResultvue_type_style_index_0_id_516c3939_prod_lang_scss_scoped_true","SearchResult","bold","href","src","alt","logger","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","unifiedSearchLogger","detectUser","async","getProviders","axios","generateOcsUrl","params","from","window","location","pathname","search","ocs","isArray","cursor","since","until","limit","person","extraQueries","cancelToken","CancelToken","source","request","token","cancel","getContacts","contacts","post","generateUrl","authenticatedUser","fullName","emailAddresses","unshift","UnifiedSearchController","constructor","onChange","_defineProperty","categories","cancelPendingRequests","previous","searchStates","searchGeneration","generation","startRevealTimer","Promise","allSettled","map","category","prev","staleEntries","status","entries","searchCategory","loadMore","categoryState","hasMore","patchStates","loadMoreFailed","unifiedSearch","pendingCancels","push","response","isPaginated","reachedEnd","hasMorePages","getSnapshot","dispose","stopBackgroundWork","reset","shouldBlockCategory","reconcileCategoryStatuses","forEach","stopRevealTimer","revealTimer","setTimeout","Object","keys","hasPendingCategories","unblockAllCategories","clearTimeout","slice","indexOf","c","next","useSearchStore","defineStore","state","externalFilters","actions","registerExternalFilter","appId","searchFrom","isPluginFilter","UnifiedSearchModalvue_type_script_lang_ts","defineComponent","IconAccountMultipleOutline","IconArrowLeft","IconArrowRight","ArrowRight","IconCalendarBlankOutline","IconDotsHorizontal","DotsHorizontal","IconFilter","IconShapeOutline","FilterChip","NcActions","NcActionButton","localSearch","currentLocation","useBrowserLocation","searchStore","shallowRef","controller","states","onUnmounted","useUnifiedSearch","providers","providerActionMenuIsOpen","dateActionMenuIsOpen","personFilter","filteredProviders","searchQuery","placessearchTerm","dateTimeFilter","filters","showDateRangeModal","initialized","pendingSearch","searchExternalResources","detailCategory","activeIndex","minSearchLength","loadState","focusTrap","isEmptySearch","providerFilterActive","dateFilterActive","personFilterActive","hasAnyActiveFilter","showFilterRow","showHeader","searching","values","isBusy","isSearchQueryTooShort","hasNoResults","results","showEmptyContentInfo","emptyContentMessage","n","userContacts","debouncedFind","debounce","find","debouncedFilterContacts","filterContacts","hasExternalResources","provider","isExternalProvider","hasContentFilters","contentFilterTypes","providerId","p","supportsActiveFilters","providerIsCompatibleWithFilters","filteredResults","isInFolderAtRoot","result","extraParams","filteredResultUrls","urls","Set","entry","add","unfilteredResults","has","detailGroup","group","renderedGroups","toRenderedGroup","index","showConnectedServicesButton","connectedServicesLabel","navigableRows","rows","rowElementId","unfiltered","activeRow","liveMessage","hasVisibleResults","addEventListener","onEscapeKey","$nextTick","activateFocusTrap","all","then","groupProvidersByApp","mapContacts","debug","catch","clear","removeEventListener","deactivateFocusTrap","immediate","handler","deep","closeDetailView","$refs","resultsContainer","scrollTop","reconcileActiveIndex","busy","scrollActiveIntoView","mounted","subscribe","handlePluginFilter","onUpdateOpen","onScrimClick","onMobileSearchInput","stack","_nc_focus_trap","at","panel","menu","$el","closest","inputContainer","querySelector","containers","markRaw","createFocusTrap","initialFocus","escapeDeactivates","allowOutsideClick","trapStack","activate","returnFocus","deactivate","searchLocally","searchable","buildCategoryParams","toISOString","contact","isNoUser","subname","applyPersonFilter","existingPersonFilter","findIndex","loadMoreResultsForProvider","section","showPartialHeader","detail","overflow","inAppSearch","headingId","openDetailView","focusSearchInput","mobileInput","headerInput","toggleExternalResources","addProviderFilter","providerFilter","isProviderFilterApplied","existingFilterIndex","existing","splice","syncProviderFilters","removeFilter","i","firstArray","secondArray","synchronizedArray","item","itemId","secondItem","updateDateFilter","currFilterIndex","applyQuickDateRange","range","today","Date","startDate","endDate","getFullYear","getMonth","getDate","setCustomDateRange","toLocaleDateString","getCanonicalLocale","addFilterEvent","filterUpdateText","compatibleProviderIndex","filterParams","groupedByProviderApp","flattenedArray","filterIds","baseProvider","every","filterId","enableAllProviders","_","disabled","moveActive","count","current","Math","min","max","activateActive","row","openResourceUrl","assign","getElementById","scrollIntoView","block","selectedId","UnifiedSearch_UnifiedSearchModalvue_type_script_lang_ts","UnifiedSearchModalvue_type_style_index_0_id_39a656a6_prod_lang_scss_scoped_true_options","UnifiedSearchModalvue_type_style_index_0_id_39a656a6_prod_lang_scss_scoped_true","UnifiedSearchModal","appear","directives","rawName","modelValue","showTrailingButton","trailingButtonLabel","closeAfterClick","pressed","delete","disableMenu","hideStatus","hideFavorite","views_UnifiedSearchvue_type_script_lang_ts","queryText","showUnifiedSearch","showLocalSearch","debouncedQueryUpdate","emitUpdatedQuery","supportsLocalSearch","appHandlesSearchShortcut","OCP","Accessibility","disableKeyboardShortcuts","beforeDestroy","ctrlKey","toggleUnifiedSearch","isSearchEngaged","focusSearch","metaKey","openModal","focusInput","el","onNavigate","modal","searchModal","onActivate","onOpenFilters","onClose","UnifiedSearchvue_type_style_index_0_id_44547071_prod_lang_scss_scoped_true_options","UnifiedSearchvue_type_style_index_0_id_44547071_prod_lang_scss_scoped_true","UnifiedSearch","navigate","globalSearch","__webpack_nonce__","getCSPNonce","Vue","mixin","OCA","registerFilterAction","use","PiniaVuePlugin","pinia","createPinia","unified_search_pinia","render","h","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","___CSS_LOADER_URL_IMPORT_0___","URL","__webpack_require__","b","___CSS_LOADER_URL_REPLACEMENT_0___","_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default","__webpack_module_cache__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","r","getter","__esModule","a","definition","o","defineProperty","enumerable","e","resolve","obj","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","baseURI","self","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"core-unified-search.js?v=30d3268aabc5c07ebc89","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/vue-material-design-icons/FilterVariant.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FilterVariant.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FilterVariant.vue?a827","webpack:///nextcloud/node_modules/vue-material-design-icons/FilterVariant.vue?vue&type=template&id=30f11e8a","webpack:///nextcloud/node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Magnify.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Magnify.vue?0775","webpack:///nextcloud/node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=194dfb2a","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchInput.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchInput.vue?847a","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchInput.vue?8fd4","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?3651","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?395a","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchModal.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountMultipleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountMultipleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountMultipleOutline.vue?b80e","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountMultipleOutline.vue?vue&type=template&id=970e2386","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=16833c02","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlankOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlankOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlankOutline.vue?3bca","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlankOutline.vue?vue&type=template&id=784b59e6","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Filter.vue?3711","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue?vue&type=template&id=be2cf3ce","webpack:///nextcloud/node_modules/vue-material-design-icons/ShapeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ShapeOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ShapeOutline.vue?da7c","webpack:///nextcloud/node_modules/vue-material-design-icons/ShapeOutline.vue?vue&type=template&id=3f5754ea","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?b7cc","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarRange.vue?f09e","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=template&id=5868fd9e","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?0fb6","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?92fe","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?a21f","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertCircleOutline.vue?730b","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=template&id=da40788e","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?ade6","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?4344","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?ad3b","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?fc0d","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?2352","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?e4b5","webpack:///nextcloud/core/src/components/AppIcon.vue","webpack:///nextcloud/core/src/components/AppIcon.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/AppIcon.vue?eae5","webpack://nextcloud/./core/src/components/AppIcon.vue?9297","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?cb69","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?32d3","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/UnifiedSearchService.js","webpack:///nextcloud/core/src/services/UnifiedSearchController.ts","webpack:///nextcloud/core/src/store/unified-search-external-filters.js","webpack:///nextcloud/core/src/composables/useUnifiedSearch.ts","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchModal.vue?vue&type=script&lang=ts","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchModal.vue?57bd","webpack://nextcloud/./core/src/components/UnifiedSearch/UnifiedSearchModal.vue?0132","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/views/UnifiedSearch.vue","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?5046","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?1990","webpack:///nextcloud/core/src/unified-search.ts","webpack:///nextcloud/core/src/components/AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss","webpack:///nextcloud/core/src/components/UnifiedSearch/UnifiedSearchModal.vue?vue&type=style&index=0&id=f77795fc&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","\n \n \n {{ title }}\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FilterVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FilterVariant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterVariant.vue?vue&type=template&id=30f11e8a\"\nimport script from \"./FilterVariant.vue?vue&type=script&lang=js\"\nexport * from \"./FilterVariant.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon filter-variant-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Magnify.vue?vue&type=template&id=194dfb2a\"\nimport script from \"./Magnify.vue?vue&type=script&lang=js\"\nexport * from \"./Magnify.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon magnify-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('search',{staticClass:\"unified-search-input\",class:{ 'unified-search-input--mobile': _setup.isSmallMobile }},[(_setup.isSmallMobile)?_c(_setup.NcHeaderButton,{attrs:{\"id\":\"unified-search-trigger\",\"ariaLabel\":_setup.placeholderText,\"aria-haspopup\":\"dialog\",\"aria-expanded\":_vm.expanded ? 'true' : 'false'},on:{\"click\":function($event){return _vm.$emit('click', $event)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.IconMagnify,{attrs:{\"size\":20}})]},proxy:true}],null,false,1795316816)}):_c('div',{ref:\"fieldRef\",staticClass:\"unified-search-input__field\",class:{ 'unified-search-input__field--active': _setup.isActive },on:{\"focusin\":function($event){_setup.isFocused = true},\"focusout\":_setup.onFocusOut,\"mousedown\":_setup.onMouseDown}},[_c('div',{staticClass:\"unified-search-input__resting\",class:{ 'unified-search-input__resting--filled': _vm.query.length > 0 },attrs:{\"aria-hidden\":\"true\"}},[_c(_setup.IconMagnify,{attrs:{\"size\":20}}),_vm._v(\" \"),_c('span',{staticClass:\"unified-search-input__label\"},[_vm._v(_vm._s(_setup.placeholderText))])],1),_vm._v(\" \"),_c('input',{ref:\"inputRef\",staticClass:\"unified-search-input__input\",attrs:{\"type\":\"text\",\"role\":\"combobox\",\"aria-autocomplete\":\"list\",\"aria-expanded\":_vm.expanded ? 'true' : 'false',\"aria-controls\":_vm.expanded ? _setup.resultsContainerId : undefined,\"aria-activedescendant\":_vm.expanded ? (_vm.activeDescendantId || undefined) : undefined,\"aria-label\":_setup.placeholderText},domProps:{\"value\":_vm.query},on:{\"input\":_setup.onInput,\"keydown\":_setup.onKeyDown}}),_vm._v(\" \"),(_setup.showFunnel)?_c(_setup.NcButton,{staticClass:\"unified-search-input__filter\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_setup.t('core', 'Filters')},on:{\"click\":_setup.openFilters},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.IconFilterVariant,{attrs:{\"size\":20}})]},proxy:true}],null,false,2820714996)}):_vm._e(),_vm._v(\" \"),(_vm.loading)?_c(_setup.NcLoadingIcon,{staticClass:\"unified-search-input__loading\",attrs:{\"size\":20}}):_vm._e(),_vm._v(\" \"),(_setup.isActive)?_c(_setup.NcButton,{staticClass:\"unified-search-input__clear\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.query.length > 0 ? _setup.t('core', 'Clear search') : _setup.t('core', 'Close search')},on:{\"click\":_setup.clearOrClose},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.IconClose,{attrs:{\"size\":20}})]},proxy:true}],null,false,4099733813)}):_vm._e(),_vm._v(\" \"),(!_setup.isActive)?_c('span',{staticClass:\"unified-search-input__shortcut\",attrs:{\"aria-hidden\":\"true\"}},[_c(_setup.NcKbd,{attrs:{\"symbol\":\"Control\"}}),_vm._v(\" \"),_c(_setup.NcKbd,{attrs:{\"symbol\":\"K\"}})],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchInput.vue?vue&type=template&id=59e94aec&scoped=true\"\nimport script from \"./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UnifiedSearchInput.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UnifiedSearchInput.vue?vue&type=style&index=0&id=59e94aec&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59e94aec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Transition',[(_vm.open)?_c('div',{staticClass:\"local-unified-search animated-width\",class:{ 'local-unified-search--open': _vm.open }},[_c(_setup.NcInputField,{ref:\"searchInput\",staticClass:\"local-unified-search__input animated-width\",attrs:{\"aria-label\":_setup.t('core', 'Search in current app'),\"placeholder\":_setup.t('core', 'Search in current app'),\"show-trailing-button\":\"\",\"trailing-button-label\":_setup.t('core', 'Clear search'),\"model-value\":_vm.query},on:{\"update:value\":function($event){return _vm.$emit('update:query', $event)},\"trailing-button-click\":_setup.clearAndCloseSearch},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}],null,false,3585538455)}),_vm._v(\" \"),_c(_setup.NcButton,{ref:\"searchGlobalButton\",staticClass:\"local-unified-search__global-search\",attrs:{\"aria-label\":_setup.t('core', 'Search everywhere'),\"title\":_setup.t('core', 'Search everywhere'),\"variant\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.$emit('global-search')}},scopedSlots:_vm._u([(!_setup.isMobile)?{key:\"default\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('core', 'Search everywhere'))+\"\\n\\t\\t\\t\")]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCloudSearchOutline}})]},proxy:true}],null,true)})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchLocalSearchBar.vue?vue&type=template&id=2b577e50&scoped=true\"\nimport script from \"./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UnifiedSearchLocalSearchBar.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./UnifiedSearchLocalSearchBar.vue?vue&type=style&index=0&id=2b577e50&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b577e50\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('transition',{attrs:{\"name\":\"unified-search-modal\",\"appear\":\"\"}},[(_vm.open)?_c('div',{staticClass:\"unified-search-modal-root\"},[_c('CustomDateRangeModal',{staticClass:\"unified-search__date-range\",attrs:{\"isOpen\":_vm.showDateRangeModal},on:{\"set:customDateRange\":_vm.setCustomDateRange,\"update:isOpen\":function($event){_vm.showDateRangeModal = $event}}}),_vm._v(\" \"),_c('div',{ref:\"panel\",staticClass:\"unified-search-modal__container\",attrs:{\"id\":\"unified-search-results\"}},[_c('div',{staticClass:\"hidden-visually\",attrs:{\"role\":\"status\",\"aria-live\":\"polite\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.liveMessage)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHeader),expression:\"showHeader\"}],staticClass:\"unified-search-modal__header\",class:{ 'unified-search-modal__header--has-results': _vm.hasVisibleResults && !_vm.detailCategory }},[(_vm.isSmallMobile)?_c('div',{staticClass:\"unified-search-modal__mobile-input\"},[_c('NcTextField',{attrs:{\"type\":\"search\",\"label\":_vm.t('core', 'Apps, files, messages, and more'),\"modelValue\":_vm.searchQuery,\"showTrailingButton\":_vm.searchQuery.length > 0,\"trailingButtonLabel\":_vm.t('core', 'Clear search')},on:{\"update:modelValue\":_vm.onMobileSearchInput,\"trailing-button-click\":function($event){_vm.searchQuery = ''}}}),_vm._v(\" \"),(_vm.isBusy)?_c('NcLoadingIcon',{attrs:{\"size\":20}}):_vm._e(),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Close search')},on:{\"click\":function($event){return _vm.onUpdateOpen(false)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)})],1):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showFilterRow),expression:\"showFilterRow\"}],staticClass:\"unified-search-modal__filters\",attrs:{\"data-cy-unified-search-filters\":\"\"}},[_c('NcActions',{attrs:{\"wide\":\"\",\"size\":\"small\",\"open\":_vm.providerActionMenuIsOpen,\"menu-name\":_vm.t('core', 'Type'),\"variant\":_vm.providerFilterActive ? 'primary' : 'secondary',\"data-cy-unified-search-filter\":\"places\"},on:{\"update:open\":function($event){_vm.providerActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconShapeOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1084672236)},[_vm._v(\" \"),_vm._l((_vm.providers),function(provider){return _c('NcActionButton',{key:`${provider.id}-${provider.name.replace(/\\s/g, '')}`,attrs:{\"disabled\":provider.disabled},on:{\"click\":function($event){return _vm.addProviderFilter(provider)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"filter-button__icon\",attrs:{\"src\":provider.icon,\"alt\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(provider.name)+\"\\n\\t\\t\\t\\t\\t\\t\")])})],2),_vm._v(\" \"),_c('NcActions',{attrs:{\"size\":\"small\",\"wide\":\"\",\"open\":_vm.dateActionMenuIsOpen,\"menu-name\":_vm.t('core', 'Date'),\"variant\":_vm.dateFilterActive ? 'primary' : 'secondary',\"data-cy-unified-search-filter\":\"date\"},on:{\"update:open\":function($event){_vm.dateActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlankOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,2513324059)},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('today')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Today'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('7days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 7 days'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('30days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 30 days'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('thisyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'This year'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('lastyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last year'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"closeAfterClick\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('custom')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Custom date range'))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('SearchableList',{attrs:{\"labelText\":_vm.t('core', 'Search people'),\"searchList\":_vm.userContacts,\"emptyContentText\":_vm.t('core', 'Not found'),\"data-cy-unified-search-filter\":\"people\"},on:{\"search-term-change\":_vm.debouncedFilterContacts,\"item-selected\":_vm.applyPersonFilter},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{attrs:{\"wide\":\"\",\"size\":\"small\",\"variant\":\"secondary\",\"pressed\":_vm.personFilterActive},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAccountMultipleOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,2457664786)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'People'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]},proxy:true}],null,false,662085814)}),_vm._v(\" \"),(_vm.localSearch)?_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"data-cy-unified-search-filter\":\"current-view\"},on:{\"click\":_vm.searchLocally},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconFilter',{attrs:{\"size\":20}})]},proxy:true}],null,false,4275912387)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Filter in current view'))+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.detailCategory && _vm.hasAnyActiveFilter),expression:\"!detailCategory && hasAnyActiveFilter\"}],staticClass:\"unified-search-modal__filters-applied\"},_vm._l((_vm.filters),function(filter){return _c('FilterChip',{key:filter.id,attrs:{\"text\":filter.name ?? filter.text,\"pretext\":\"\"},on:{\"delete\":function($event){return _vm.removeFilter(filter)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(filter.type === 'person')?_c('NcAvatar',{attrs:{\"user\":filter.user,\"size\":24,\"disableMenu\":\"\",\"hideStatus\":\"\",\"hideFavorite\":false}}):(filter.type === 'date')?_c('IconCalendarBlankOutline'):_c('img',{attrs:{\"src\":filter.icon,\"alt\":\"\"}})]},proxy:true}],null,true)})}),1)]),_vm._v(\" \"),(_vm.showEmptyContentInfo)?_c('div',{staticClass:\"unified-search-modal__no-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconMagnify',{attrs:{\"size\":64}})]},proxy:true}],null,false,125778896)}),_vm._v(\" \"),(_vm.showConnectedServicesButton)?_c('div',{staticClass:\"unified-search-modal__connected-services\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\",\"wide\":\"\"},on:{\"click\":_vm.toggleExternalResources}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.connectedServicesLabel)+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],1):_c('div',{ref:\"resultsContainer\",staticClass:\"unified-search-modal__results\"},[_c('h3',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Results'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.detailCategory && _vm.detailGroup)?_c('div',{staticClass:\"unified-search-modal__detail-header\"},[_c('NcButton',{staticClass:\"unified-search-modal__detail-back\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Back to all results')},on:{\"click\":_vm.closeDetailView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowLeft',{staticClass:\"unified-search-modal__rtl-icon\",attrs:{\"size\":20}})]},proxy:true}],null,false,1818940180)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Back'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('h4',{staticClass:\"unified-search-modal__detail-title\",attrs:{\"id\":_vm.headingId(_vm.detailGroup)}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.detailGroup.name)+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.renderedGroups),function(group){return _c('div',{key:group.id,staticClass:\"result-group\"},[(group.showPartialHeader)?_c('div',{staticClass:\"unified-search-modal__unfiltered-header\"},[_c('span',{staticClass:\"unified-search-modal__unfiltered-label\"},[_vm._v(_vm._s(_vm.t('core', 'Partial matches')))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"result\",class:{ 'result--unfiltered': group.unfiltered }},[(group.overflow)?_c('NcButton',{staticClass:\"result-title--more\",attrs:{\"id\":_vm.headingId(group),\"alignment\":\"start-reverse\",\"variant\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.openDetailView(group)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowRight',{staticClass:\"unified-search-modal__rtl-icon\",attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'More from {name}', { name: group.name }))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]):(group.section !== 'detail')?_c('h4',{staticClass:\"result-title\",attrs:{\"id\":_vm.headingId(group)}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(group.name)+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"result-items\",attrs:{\"role\":_vm.isSmallMobile ? undefined : 'listbox',\"aria-labelledby\":_vm.headingId(group)}},_vm._l((group.results),function(result,index){return _c('SearchResult',_vm._b({key:index,attrs:{\"role\":_vm.isSmallMobile ? undefined : 'option',\"elementId\":_vm.rowElementId(group.id, index, group.unfiltered),\"active\":_vm.activeDescendantId === _vm.rowElementId(group.id, index, group.unfiltered)}},'SearchResult',result,false))}),1),_vm._v(\" \"),_c('div',{staticClass:\"result-footer\"},[(group.section === 'detail' && group.hasMore)?_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.loadMoreResultsForProvider(group)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconDotsHorizontal',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Load more results'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(group.inAppSearch)?_c('NcButton',{attrs:{\"alignment\":\"end-reverse\",\"variant\":\"tertiary-no-background\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in'))+\" \"+_vm._s(group.name)+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e()],1)],1)])}),_vm._v(\" \"),(_vm.showConnectedServicesButton)?_c('div',{staticClass:\"unified-search-modal__connected-services\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\",\"wide\":\"\"},on:{\"click\":_vm.toggleExternalResources}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.connectedServicesLabel)+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-modal__scrim modal-mask\",on:{\"click\":_vm.onScrimClick}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountMultipleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountMultipleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountMultipleOutline.vue?vue&type=template&id=970e2386\"\nimport script from \"./AccountMultipleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountMultipleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-multiple-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=16833c02\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-left-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=be2cf3ce\"\nimport script from \"./Filter.vue?vue&type=script&lang=js\"\nexport * from \"./Filter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon filter-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShapeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShapeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ShapeOutline.vue?vue&type=template&id=3f5754ea\"\nimport script from \"./ShapeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ShapeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon shape-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,13.5V21.5H3V13.5H11M9,15.5H5V19.5H9V15.5M12,2L17.5,11H6.5L12,2M12,5.86L10.08,9H13.92L12,5.86M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13M17.5,15A2.5,2.5 0 0,0 15,17.5A2.5,2.5 0 0,0 17.5,20A2.5,2.5 0 0,0 20,17.5A2.5,2.5 0 0,0 17.5,15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isModalOpen)?_c('NcModal',{attrs:{\"id\":\"unified-search\",\"name\":_vm.t('core', 'Custom date range'),\"show\":_vm.isModalOpen,\"size\":\"small\",\"clear-view-delay\":0,\"title\":_vm.t('core', 'Custom date range')},on:{\"update:show\":function($event){_vm.isModalOpen=$event},\"close\":_vm.closeModal}},[_c('div',{staticClass:\"unified-search-custom-date-modal\"},[_c('h1',[_vm._v(_vm._s(_vm.t('core', 'Custom date range')))]),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__pickers\"},[_c('NcDateTimePicker',{attrs:{\"id\":\"unifiedsearch-custom-date-range-start\",\"label\":_vm.t('core', 'Pick start date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.startFrom),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"startFrom\", $$v)},expression:\"dateFilter.startFrom\"}}),_vm._v(\" \"),_c('NcDateTimePicker',{attrs:{\"id\":\"unifiedsearch-custom-date-range-end\",\"label\":_vm.t('core', 'Pick end date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.endAt),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"endAt\", $$v)},expression:\"dateFilter.endAt\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__footer\"},[_c('NcButton',{on:{\"click\":_vm.applyCustomRange},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3084610734)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in date range'))+\"\\n\\t\\t\\t\\t\")])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarRange.vue?vue&type=template&id=5868fd9e\"\nimport script from \"./CalendarRange.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarRange.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-range-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomDateRangeModal.vue?vue&type=template&id=2907014b&scoped=true\"\nimport script from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nexport * from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2907014b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcPopover',{attrs:{\"shown\":_vm.opened},on:{\"show\":function($event){return _vm.setOpened(true)},\"hide\":function($event){return _vm.setOpened(false)}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_vm._t(\"trigger\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"searchable-list__wrapper\"},[_c('NcTextField',{attrs:{\"label\":_vm.labelText,\"trailing-button-icon\":\"close\",\"show-trailing-button\":_vm.searchTerm !== ''},on:{\"update:value\":_vm.searchTermChanged,\"trailing-button-click\":_vm.clearSearch},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}},[_c('IconMagnify',{attrs:{\"size\":20}})],1),_vm._v(\" \"),(_vm.filteredList.length > 0)?_c('ul',{staticClass:\"searchable-list__list\"},_vm._l((_vm.filteredList),function(element){return _c('li',{key:element.id,attrs:{\"title\":element.displayName,\"role\":\"button\"}},[_c('NcButton',{attrs:{\"alignment\":\"start\",\"variant\":\"tertiary\",\"wide\":true},on:{\"click\":function($event){return _vm.itemSelected(element)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(element.isUser)?_c('NcAvatar',{attrs:{\"user\":element.user,\"hide-status\":\"\"}}):_c('NcAvatar',{attrs:{\"is-no-user\":true,\"display-name\":element.displayName,\"hide-status\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(element.displayName)+\"\\n\\t\\t\\t\\t\")])],1)}),0):_c('div',{staticClass:\"searchable-list__empty-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentText},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=da40788e\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchableList.vue?vue&type=template&id=66bd6570&scoped=true\"\nimport script from \"./SearchableList.vue?vue&type=script&lang=js\"\nexport * from \"./SearchableList.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchableList.vue?vue&type=style&index=0&id=66bd6570&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66bd6570\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchFilterChip.vue?vue&type=template&id=5a4f6249&scoped=true\"\nimport script from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nexport * from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchFilterChip.vue?vue&type=style&index=0&id=5a4f6249&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a4f6249\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chip\"},[_c('span',{staticClass:\"icon\"},[_vm._t(\"icon\"),_vm._v(\" \"),(_vm.pretext.length)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pretext)+\" : \")]):_vm._e()],2),_vm._v(\" \"),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),_c('button',{staticClass:\"close-button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.removeLabel},on:{\"click\":_vm.deleteChip}},[_c('CloseIcon',{attrs:{\"size\":18}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcListItem',{staticClass:\"result-item\",attrs:{\"id\":_vm.elementId,\"name\":_vm.title,\"bold\":false,\"active\":_vm.active,\"href\":_vm.resourceUrl,\"target\":\"_self\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isAppIcon)?_c('AppIcon',{staticClass:\"result-item__app-icon\",attrs:{\"icon\":_vm.icon}}):_c('div',{staticClass:\"result-item__icon\",class:{\n\t\t\t\t'result-item__icon--rounded': _vm.rounded,\n\t\t\t\t'result-item__icon--with-thumbnail': _vm.hasThumbnail,\n\t\t\t\t[_vm.icon]: !_vm.iconIsUrl && !_vm.hasThumbnail,\n\t\t\t},attrs:{\"aria-hidden\":\"true\"}},[(_vm.hasThumbnail)?_c('img',{attrs:{\"src\":_vm.thumbnailUrl},on:{\"error\":_vm.thumbnailErrorHandler}}):(_vm.iconIsUrl)?_c('img',{staticClass:\"result-item__icon-img\",attrs:{\"src\":_vm.icon,\"alt\":\"\",\"aria-hidden\":\"true\"}}):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.subline)+\"\\n\\t\")]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"app-icon\",class:{ 'app-icon--outlined': _vm.outlined }},[(_vm.icon)?_c('span',{staticClass:\"app-icon__img\",style:(_setup.iconStyle),attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppIcon.vue?vue&type=template&id=42bb03fc&scoped=true\"\nimport script from \"./AppIcon.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppIcon.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppIcon.vue?vue&type=style&index=0&id=42bb03fc&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42bb03fc\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchResult.vue?vue&type=template&id=516c3939&scoped=true\"\nimport script from \"./SearchResult.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResult.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResult.vue?vue&type=style&index=0&id=516c3939&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"516c3939\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n * Create a cancel token\n *\n * @return {import('axios').CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Get the list of available search providers\n *\n * @return {Promise}\n */\nexport async function getProviders() {\n\ttry {\n\t\tconst { data } = await axios.get(generateOcsUrl('search/providers'), {\n\t\t\tparams: {\n\t\t\t\t// Sending which location we're currently at\n\t\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t},\n\t\t})\n\t\tif ('ocs' in data && 'data' in data.ocs && Array.isArray(data.ocs.data) && data.ocs.data.length > 0) {\n\t\t\t// Providers are sorted by the api based on their order key\n\t\t\treturn data.ocs.data\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error)\n\t}\n\treturn []\n}\n\n/**\n * Get the list of available search providers\n *\n * @param {object} options destructuring object\n * @param {string} options.type the type to search\n * @param {string} options.query the search term\n * @param {number|string|null} [options.cursor] the offset for paginated searches\n * @param {string} [options.since] start of the date-range filter\n * @param {string} [options.until] end of the date-range filter\n * @param {number} [options.limit] maximum number of results\n * @param {string} [options.person] filter results by person\n * @param {object} [options.extraQueries] additional queries to filter search results\n * @return {object} {request: Promise, cancel: Promise}\n */\nexport function search({ type, query, cursor, since, until, limit, person, extraQueries = {} }) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\tconst request = async () => axios.get(generateOcsUrl('search/providers/{type}/search', { type }), {\n\t\tcancelToken: cancelToken.token,\n\t\tparams: {\n\t\t\tterm: query,\n\t\t\tcursor,\n\t\t\tsince,\n\t\t\tuntil,\n\t\t\tlimit,\n\t\t\tperson,\n\t\t\t// Sending which location we're currently at\n\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t...extraQueries,\n\t\t},\n\t})\n\n\treturn {\n\t\trequest,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n\n/**\n * Get the list of active contacts\n *\n * @param {object} filter filter contacts by string\n * @param {string} filter.searchTerm the query\n * @return {object} {request: Promise}\n */\nexport async function getContacts({ searchTerm }) {\n\tconst { data: { contacts } } = await axios.post(generateUrl('/contactsmenu/contacts'), {\n\t\tfilter: searchTerm,\n\t})\n\t/*\n\t * Add authenticated user to list of contacts for search filter\n\t * If authtenicated user is searching/filtering, do not add them to the list\n\t */\n\tif (!searchTerm) {\n\t\tlet authenticatedUser = getCurrentUser()\n\t\tauthenticatedUser = {\n\t\t\tid: authenticatedUser.uid,\n\t\t\tfullName: authenticatedUser.displayName,\n\t\t\temailAddresses: [],\n\t\t}\n\t\tcontacts.unshift(authenticatedUser)\n\t\treturn contacts\n\t}\n\n\treturn contacts\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { search as unifiedSearch } from './UnifiedSearchService.js';\nexport const REVEAL_INTERVAL_MS = 1000;\n/**\n * Results fetched per category per page. Sized for the detail view (which shows the\n * whole page); the aggregate caps to RESULTS_PER_CATEGORY. Server default 5, design 10.\n */\nexport const PAGE_SIZE = 10;\n/**\n * Whether a category has anything for the user to look at. Blocked is deliberately withheld\n * and failed carries no entries. Loading counts because paging keeps the pages already\n * fetched on screen while the next one is in flight; a new query has no entries to show, so\n * it reads as not visible until results actually land.\n *\n * Exported so the one definition also serves the Vue-side test doubles; the controller is\n * the only place that decides category-level visibility.\n *\n * @param state the category state to test\n */\nexport function isCategoryVisible(state) {\n return state.entries.length > 0 && (state.status === 'loaded' || state.status === 'loading');\n}\n/**\n * Runs a unified search across categories in priority order, blocking\n * lower-priority results until their predecessors arrive or a timer reveals them.\n *\n * Priority decides who waits for whom. It has no say over what is already on screen:\n * see `getRevealOrder()`.\n */\nexport class UnifiedSearchController {\n onChange;\n query = '';\n params = {};\n searchStates = {};\n revealOrder = [];\n revealWindowOpen = false;\n searchGeneration = 0;\n revealTimer = null;\n pendingCancels = [];\n constructor(onChange) {\n this.onChange = onChange;\n }\n /**\n * Start a search. Cancels and replaces any search already in flight.\n *\n * @param query the search term\n * @param categories category ids in priority order\n * @param params optional per-category search parameters\n * @return resolves once every category has settled\n */\n async search(query, categories, params) {\n this.cancelPendingRequests();\n // A new query hides everything the last one produced. Carrying results over would only\n // let them shift under the user once the real ones land, and the results are about to\n // differ anyway. So each search is a clean slate: empty screen, then a fresh ordered\n // reveal from priority order. Nothing is on screen, so nothing can be displaced.\n this.searchStates = {};\n this.revealOrder = [];\n this.searchGeneration++;\n const generation = this.searchGeneration;\n this.query = query;\n this.params = params || {};\n this.startRevealTimer();\n await Promise.allSettled(categories.map((category) => this.searchCategory(category, generation, categories)));\n }\n /**\n * Fetch the next page for one category and append it. A no-op unless the\n * category is loaded with more pages. On failure the existing results stay\n * and `loadMoreFailed` is raised, so calling again retries.\n *\n * @param category the category id to page\n */\n async loadMore(category) {\n const generation = this.searchGeneration;\n const categoryState = { ...this.searchStates[category] };\n if (!categoryState.hasMore || categoryState.status !== 'loaded') {\n return;\n }\n this.patchStates({ [category]: { status: 'loading', loadMoreFailed: false } });\n const { request, cancel } = unifiedSearch({\n type: category,\n query: this.query,\n cursor: categoryState.cursor,\n limit: PAGE_SIZE,\n ...this.params[category],\n });\n this.pendingCancels.push(cancel);\n try {\n const response = await request();\n if (this.searchGeneration !== generation) {\n return;\n }\n const { entries, cursor, isPaginated } = response.data.ocs.data;\n // A provider can echo a non-null cursor on an empty page, keeping hasMore true and\n // leaving a dead \"Load more\" button. An empty page means exhausted, cursor or not.\n const reachedEnd = entries.length === 0;\n this.patchStates({ [category]: {\n entries: [...categoryState.entries, ...entries],\n cursor,\n hasMore: !reachedEnd && this.hasMorePages(isPaginated, cursor),\n status: 'loaded',\n } });\n }\n catch {\n if (this.searchGeneration !== generation) {\n return;\n }\n this.patchStates({ [category]: { status: 'loaded', loadMoreFailed: true } });\n }\n }\n /**\n * A shallow copy of the current per-category state, safe to read for rendering.\n *\n * @return the current search states keyed by category id\n */\n getSnapshot() {\n return { ...this.searchStates };\n }\n /**\n * The ids of the categories currently on screen, in display order.\n *\n * Append-only within a search, so a category never moves up into a slot another one already\n * occupies: a result that arrives late renders below what the user is already reading,\n * however high its priority. A new query starts over from priority order, since it clears\n * the screen first and so has nothing to displace. Read this rather than the snapshot's key\n * order, which is the priority order and an input to blocking, not a rendering order.\n *\n * Only ever names categories the current snapshot holds, so a caller can map without guarding.\n *\n * @return visible category ids, top to bottom\n */\n getRevealOrder() {\n return [...this.revealOrder];\n }\n dispose() {\n this.stopBackgroundWork();\n }\n reset() {\n this.stopBackgroundWork();\n this.searchStates = {};\n this.revealOrder = [];\n this.query = '';\n this.params = {};\n this.searchGeneration++;\n this.onChange?.(this.getSnapshot());\n }\n async searchCategory(category, generation, categories) {\n this.patchStates({ [category]: {\n status: 'loading',\n entries: [],\n cursor: null,\n hasMore: false,\n loadMoreFailed: false,\n } });\n const { request, cancel } = unifiedSearch({\n type: category,\n query: this.query,\n cursor: null,\n limit: PAGE_SIZE,\n ...this.params[category],\n });\n this.pendingCancels.push(cancel);\n try {\n const response = await request();\n if (this.searchGeneration !== generation) {\n // A new search has been started, ignore this result\n return;\n }\n const { entries, cursor, isPaginated } = response.data.ocs.data;\n // Decide blocked vs loaded once, here at settle. Reconcile only promotes after this\n // (never re-blocks), so this is the only place a category becomes blocked.\n this.patchStates({ [category]: {\n status: this.shouldBlockCategory(category, categories) ? 'blocked' : 'loaded',\n entries,\n cursor,\n hasMore: this.hasMorePages(isPaginated, cursor),\n loadMoreFailed: false,\n } });\n }\n catch {\n if (this.searchGeneration !== generation) {\n return;\n }\n this.patchStates({ [category]: {\n status: 'failed',\n entries: [],\n cursor: null,\n hasMore: false,\n loadMoreFailed: false,\n } });\n }\n this.reconcileCategoryStatuses(categories);\n }\n reconcileCategoryStatuses(categories) {\n categories.forEach((category) => {\n // Promotion only: reveal a blocked category once its predecessors clear, never demote.\n // A revealed category must stay revealed, else it flickers when a slower one settles.\n if (this.searchStates[category].status !== 'blocked') {\n return;\n }\n if (!this.shouldBlockCategory(category, categories)) {\n this.patchStates({ [category]: { status: 'loaded' } });\n }\n });\n }\n /**\n * Arm the one reveal window a search gets. Ordered reveal governs the first paint only:\n * when the window closes everything blocked is shown and nothing may block again, so a\n * category that lands later is revealed straight away, at the end. Only a new search\n * opens another window.\n */\n startRevealTimer() {\n this.stopRevealTimer();\n this.revealWindowOpen = true;\n this.revealTimer = setTimeout(() => {\n this.revealWindowOpen = false;\n this.unblockAllCategories(Object.keys(this.searchStates));\n }, REVEAL_INTERVAL_MS);\n }\n stopRevealTimer() {\n this.revealWindowOpen = false;\n if (this.revealTimer) {\n clearTimeout(this.revealTimer);\n this.revealTimer = null;\n }\n }\n cancelPendingRequests() {\n this.pendingCancels.forEach((cancel) => cancel());\n this.pendingCancels = [];\n }\n stopBackgroundWork() {\n this.cancelPendingRequests();\n this.stopRevealTimer();\n }\n unblockAllCategories(categories) {\n categories.forEach((category) => {\n if (this.searchStates[category].status === 'blocked') {\n this.patchStates({ [category]: { status: 'loaded' } });\n }\n });\n }\n /**\n * Whether a category can page further. The backend never sends a \"has more\"\n * flag, only `isPaginated` and a `cursor`, so derive it: a category has more\n * pages when it paginates and handed back a cursor to continue from.\n *\n * @param isPaginated whether the provider returned a paginated result\n * @param cursor the cursor to continue from, or null when there is none\n */\n hasMorePages(isPaginated, cursor) {\n return isPaginated && cursor !== null;\n }\n shouldBlockCategory(category, categories) {\n // Once the window has closed, ordered reveal is over for this search.\n if (!this.revealWindowOpen || !this.searchStates[category]) {\n return false;\n }\n return categories.slice(0, categories.indexOf(category)).some((c) => {\n const categoryState = this.searchStates[c];\n return categoryState && ['loading', 'blocked'].includes(categoryState.status);\n });\n }\n /**\n * Keep the display order in step with what is on screen. Losing its results frees a\n * category's slot, so the list closes the gap instead of leaving a hole.\n *\n * @param category the category id that just changed\n * @param state its merged state\n */\n syncRevealOrder(category, state) {\n const at = this.revealOrder.indexOf(category);\n const visible = isCategoryVisible(state);\n if (visible && at === -1) {\n this.revealOrder.push(category);\n }\n else if (!visible && at !== -1) {\n this.revealOrder.splice(at, 1);\n }\n }\n patchStates(next) {\n Object.keys(next).forEach((category) => {\n const categoryState = { ...this.searchStates[category], ...next[category] };\n this.searchStates[category] = categoryState;\n this.syncRevealOrder(category, categoryState);\n });\n this.onChange?.(this.getSnapshot());\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia'\n\nexport const useSearchStore = defineStore('search', {\n\tstate: () => ({\n\t\texternalFilters: [],\n\t}),\n\n\tactions: {\n\t\tregisterExternalFilter({ id, appId, searchFrom, label, callback, icon }) {\n\t\t\tthis.externalFilters.push({ id, appId, searchFrom, name: label, callback, icon, isPluginFilter: true })\n\t\t},\n\t},\n})\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { onUnmounted, shallowRef } from 'vue';\nimport { UnifiedSearchController } from '../services/UnifiedSearchController.ts';\n/**\n * Reactive adapter over UnifiedSearchController for use in an SFC.\n */\nexport function useUnifiedSearch() {\n const searchStates = shallowRef({});\n const revealOrder = shallowRef([]);\n const controller = new UnifiedSearchController((states) => {\n // Both assigned here, never separately: the view reads one against the other.\n searchStates.value = states;\n revealOrder.value = controller.getRevealOrder();\n });\n onUnmounted(() => {\n controller.dispose();\n });\n return {\n searchStates,\n revealOrder,\n search: controller.search.bind(controller),\n loadMore: controller.loadMore.bind(controller),\n reset: controller.reset.bind(controller),\n };\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=style&index=0&id=f77795fc&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.vue?vue&type=style&index=0&id=f77795fc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchModal.vue?vue&type=template&id=f77795fc&scoped=true\"\nimport script from \"./UnifiedSearchModal.vue?vue&type=script&lang=ts\"\nexport * from \"./UnifiedSearchModal.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UnifiedSearchModal.vue?vue&type=style&index=0&id=f77795fc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f77795fc\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"unified-search-menu\"},[_c('UnifiedSearchInput',{ref:\"searchInput\",attrs:{\"query\":_vm.queryText,\"expanded\":_vm.showUnifiedSearch,\"activeDescendantId\":_vm.activeDescendantId,\"loading\":_vm.searching,\"filtersRevealed\":_vm.filtersRevealed},on:{\"click\":_vm.openModal,\"open-filters\":_vm.onOpenFilters,\"close\":_vm.onClose,\"update:query\":function($event){_vm.queryText = $event},\"navigate\":_vm.onNavigate,\"activate\":_vm.onActivate}}),_vm._v(\" \"),(_vm.supportsLocalSearch)?_c('UnifiedSearchLocalSearchBar',{attrs:{\"open\":_vm.showLocalSearch,\"query\":_vm.queryText},on:{\"globalSearch\":_vm.openModal,\"update:open\":function($event){_vm.showLocalSearch = $event},\"update:query\":function($event){_vm.queryText = $event}}}):_vm._e(),_vm._v(\" \"),_c('UnifiedSearchModal',{ref:\"searchModal\",attrs:{\"localSearch\":_vm.supportsLocalSearch,\"query\":_vm.queryText,\"open\":_vm.showUnifiedSearch,\"filtersRevealed\":_vm.filtersRevealed},on:{\"update:query\":function($event){_vm.queryText = $event},\"update:open\":function($event){_vm.showUnifiedSearch = $event},\"update:activeDescendant\":function($event){_vm.activeDescendantId = $event || ''},\"update:loading\":function($event){_vm.searching = $event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearch.vue?vue&type=template&id=44547071&scoped=true\"\nimport script from \"./UnifiedSearch.vue?vue&type=script&lang=ts\"\nexport * from \"./UnifiedSearch.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UnifiedSearch.vue?vue&type=style&index=0&id=44547071&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44547071\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { translatePlural as n, translate as t } from '@nextcloud/l10n';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport UnifiedSearch from './views/UnifiedSearch.vue';\nimport { useSearchStore } from '../src/store/unified-search-external-filters.js';\n__webpack_nonce__ = getCSPNonce();\nconst logger = getLoggerBuilder()\n .setApp('unified-search')\n .detectUser()\n .build();\nVue.mixin({\n data() {\n return {\n logger,\n };\n },\n methods: {\n t,\n n,\n },\n});\n// Register the add/register filter action API globally\nwindow.OCA = window.OCA || {};\nwindow.OCA.UnifiedSearch = {\n registerFilterAction: ({ id, appId, searchFrom, label, callback, icon }) => {\n const searchStore = useSearchStore();\n searchStore.registerExternalFilter({ id, appId, searchFrom, label, callback, icon });\n },\n};\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\nexport default new Vue({\n el: '#unified-search',\n pinia,\n name: 'UnifiedSearchRoot',\n render: (h) => h(UnifiedSearch),\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-icon[data-v-42bb03fc]{--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;width:var(--app-icon-circle-size);height:var(--app-icon-circle-size);border-radius:50%;transform:scale(var(--app-icon-scale, 1));transition:transform var(--animation-quick) ease-out;background-color:var(--color-primary-element-light);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%, var(--color-primary-element-light) 100%);box-shadow:var(--app-icon-bevel)}@media(prefers-color-scheme: dark){.app-icon[data-v-42bb03fc]{--app-icon-bevel: none}}@media(prefers-reduced-motion: reduce){.app-icon[data-v-42bb03fc]{transition:none}}.app-icon__img[data-v-42bb03fc]{width:var(--app-icon-icon-size);height:var(--app-icon-icon-size);background-color:var(--color-primary-element);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%, var(--color-primary-element) 100%);mask:var(--app-icon-url) center/contain no-repeat}@media(forced-colors: active){.app-icon__img[data-v-42bb03fc]{background-color:CanvasText;background-image:none}}.app-icon--outlined[data-v-42bb03fc]{background:rgba(0,0,0,0);background-image:none;box-shadow:inset 0 0 0 2px var(--color-border-maxcontrast)}.app-icon--outlined .app-icon__img[data-v-42bb03fc]{background-color:var(--color-main-text);background-image:none}[data-themes*=dark] .app-icon{--app-icon-bevel: none}[data-themes*=light] .app-icon{--app-icon-bevel: inset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)), inset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/AppIcon.vue\"],\"names\":[],\"mappings\":\"AAKA,2BACC,+DAAA,CAEA,gEAAA,CACA,2OAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,iCAAA,CACA,kCAAA,CACA,iBAAA,CACA,yCAAA,CACA,oDAAA,CACA,mDAAA,CACA,iLAAA,CAKA,gCAAA,CAEA,mCAvBD,2BAwBE,sBAAA,CAAA,CAGD,uCA3BD,2BA4BE,eAAA,CAAA,CAGD,gCACC,+BAAA,CACA,gCAAA,CAGA,6CAAA,CACA,2KAAA,CAKA,iDAAA,CAID,8BACC,gCACC,2BAAA,CACA,qBAAA,CAAA,CAIF,qCACC,wBAAA,CACA,qBAAA,CACA,0DAAA,CAGD,oDACC,uCAAA,CACA,qBAAA,CAKF,8BACC,sBAAA,CAGD,+BACC,2OAAA\",\"sourcesContent\":[\"\\n$bevel:\\n\\tinset 0 -1px 0 0 color-mix(in srgb, var(--color-primary-element-light), 10% var(--color-primary-element)),\\n\\tinset 0 -4px 6px -4px color-mix(in srgb, var(--color-primary-element-light), 16% var(--color-primary-element));\\n\\n.app-icon {\\n\\t--app-icon-circle-size: calc(var(--default-grid-baseline) * 12);\\n\\t// 28px on a 48px circle, so it follows when consumers resize the circle.\\n\\t--app-icon-icon-size: calc(var(--app-icon-circle-size) * 7 / 12);\\n\\t--app-icon-bevel: #{$bevel};\\n\\tbox-sizing: border-box;\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: var(--app-icon-circle-size);\\n\\theight: var(--app-icon-circle-size);\\n\\tborder-radius: 50%;\\n\\ttransform: scale(var(--app-icon-scale, 1));\\n\\ttransition: transform var(--animation-quick) ease-out;\\n\\tbackground-color: var(--color-primary-element-light);\\n\\tbackground-image: linear-gradient(\\n\\t\\tto bottom,\\n\\t\\tcolor-mix(in srgb, var(--color-primary-element-light), 15% var(--color-main-background)) 0%,\\n\\t\\tvar(--color-primary-element-light) 100%\\n\\t);\\n\\tbox-shadow: var(--app-icon-bevel);\\n\\n\\t@media (prefers-color-scheme: dark) {\\n\\t\\t--app-icon-bevel: none;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&__img {\\n\\t\\twidth: var(--app-icon-icon-size);\\n\\t\\theight: var(--app-icon-icon-size);\\n\\t\\t// Masked rather than shown: app icons ship a hardcoded fill, so\\n\\t\\t// currentColor never applies and a filter could only flip black and white.\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\tto bottom,\\n\\t\\t\\tcolor-mix(in srgb, var(--color-primary-element), 28% var(--color-primary-element-light)) 0%,\\n\\t\\t\\tvar(--color-primary-element) 100%\\n\\t\\t);\\n\\t\\tmask: var(--app-icon-url) center / contain no-repeat;\\n\\t}\\n\\n\\t// Masked backgrounds are not force-adjusted the way is.\\n\\t@media (forced-colors: active) {\\n\\t\\t&__img {\\n\\t\\t\\tbackground-color: CanvasText;\\n\\t\\t\\tbackground-image: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&--outlined {\\n\\t\\tbackground: transparent;\\n\\t\\tbackground-image: none;\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-border-maxcontrast);\\n\\t}\\n\\n\\t&--outlined &__img {\\n\\t\\tbackground-color: var(--color-main-text);\\n\\t\\tbackground-image: none;\\n\\t}\\n}\\n\\n// An explicit theme choice must beat the media query above, which only sees the OS.\\n:global([data-themes*=dark] .app-icon) {\\n\\t--app-icon-bevel: none;\\n}\\n\\n:global([data-themes*=light] .app-icon) {\\n\\t--app-icon-bevel: #{$bevel};\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-custom-date-modal[data-v-2907014b]{padding:10px 20px 10px 20px}.unified-search-custom-date-modal h1[data-v-2907014b]{font-size:16px;font-weight:bolder;line-height:2em}.unified-search-custom-date-modal__pickers[data-v-2907014b]{display:flex;flex-direction:column}.unified-search-custom-date-modal__footer[data-v-2907014b]{display:flex;justify-content:end}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/CustomDateRangeModal.vue\"],\"names\":[],\"mappings\":\"AACA,mDACC,2BAAA,CAEA,sDACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,4DACC,YAAA,CACA,qBAAA,CAGD,2DACC,YAAA,CACA,mBAAA\",\"sourcesContent\":[\"\\n.unified-search-custom-date-modal {\\n\\tpadding: 10px 20px 10px 20px;\\n\\n\\th1 {\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: bolder;\\n\\t\\tline-height: 2em;\\n\\t}\\n\\n\\t&__pickers {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chip[data-v-5a4f6249]{display:flex;align-items:center;padding:2px 4px;border:1px solid var(--color-primary-element-light);border-radius:20px;background-color:var(--color-primary-element-light);margin:2px}.chip .icon[data-v-5a4f6249]{display:flex;align-items:center;padding-inline-end:5px}.chip .icon img[data-v-5a4f6249]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-5a4f6249]{margin:0 2px}.chip .close-button[data-v-5a4f6249]{display:flex;align-items:center;width:auto;min-width:0;min-height:0;margin:0;padding:0;border:none;background:rgba(0,0,0,0);color:inherit;cursor:pointer;border-radius:var(--border-radius-element, 8px)}.chip .close-button[data-v-5a4f6249]:hover{filter:invert(20%)}.chip .close-button[data-v-5a4f6249]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:1px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchFilterChip.vue\"],\"names\":[],\"mappings\":\"AACA,uBACI,YAAA,CACA,kBAAA,CACA,eAAA,CACA,mDAAA,CACA,kBAAA,CACA,mDAAA,CACA,UAAA,CAEA,6BACI,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,iCACI,UAAA,CACA,WAAA,CACA,kBAAA,CACA,yCAAA,CAIR,6BACI,YAAA,CAGJ,qCACI,YAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,aAAA,CACA,cAAA,CACA,+CAAA,CAEA,2CACI,kBAAA,CAGJ,mDACI,wCAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.chip {\\n display: flex;\\n align-items: center;\\n padding: 2px 4px;\\n border: 1px solid var(--color-primary-element-light);\\n border-radius: 20px;\\n background-color: var(--color-primary-element-light);\\n margin: 2px;\\n\\n .icon {\\n display: flex;\\n align-items: center;\\n padding-inline-end: 5px;\\n\\n img {\\n width: 20px;\\n padding: 2px;\\n border-radius: 20px;\\n filter: var(--background-invert-if-bright);\\n }\\n }\\n\\n .text {\\n margin: 0 2px;\\n }\\n\\n .close-button {\\n display: flex;\\n align-items: center;\\n width: auto;\\n min-width: 0;\\n min-height: 0;\\n margin: 0;\\n padding: 0;\\n border: none;\\n background: transparent;\\n color: inherit;\\n cursor: pointer;\\n border-radius: var(--border-radius-element, 8px);\\n\\n &:hover {\\n filter: invert(20%);\\n }\\n\\n &:focus-visible {\\n outline: 2px solid var(--color-main-text);\\n outline-offset: 1px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.result-item[data-v-516c3939]{padding-inline:0}.result-item[data-v-516c3939] a{border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.result-item[data-v-516c3939] a:active,.result-item[data-v-516c3939] a:hover{background-color:var(--color-background-hover)}.result-item[data-v-516c3939] a:focus-visible{background-color:var(--color-background-hover);border-color:var(--color-border-maxcontrast)}.result-item[data-v-516c3939] a *{cursor:pointer}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item::before{content:\"\";position:absolute;inset-block:calc(var(--default-grid-baseline)*2);inset-inline-start:0;width:3px;border-radius:var(--border-radius-rounded);background-color:var(--color-primary-element);animation:result-pill-in-516c3939 var(--animation-quick) ease-out}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item:hover{background-color:var(--color-background-hover)}.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__name,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__subname,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-content__details,.result-item.list-item__wrapper--active[data-v-516c3939] .list-item__anchor .list-item-details__details{color:var(--color-main-text) !important}.result-item__icon[data-v-516c3939]{display:flex;align-items:center;justify-content:center;overflow:hidden;width:var(--default-clickable-area);height:var(--default-clickable-area);border-radius:var(--border-radius);margin-inline-start:var(--default-grid-baseline)}.result-item__icon--rounded[data-v-516c3939]{border-radius:calc(var(--default-clickable-area)/2)}.result-item__icon--with-thumbnail[data-v-516c3939]:not(.result-item__icon--rounded){border:1px solid var(--color-border);max-height:calc(var(--default-clickable-area) - 2px);max-width:calc(var(--default-clickable-area) - 2px)}.result-item__icon--with-thumbnail img[data-v-516c3939]{width:100%;height:100%;object-fit:cover;object-position:center}.result-item__icon-img[data-v-516c3939]{width:20px;height:20px;object-fit:contain;filter:var(--background-invert-if-dark)}.result-item__icon-img[src*=\"/filetypes/\"][data-v-516c3939]{width:32px;height:32px;filter:none}.result-item__app-icon[data-v-516c3939]{--app-icon-circle-size: var(--default-clickable-area);margin-inline-start:var(--default-grid-baseline)}@keyframes result-pill-in-516c3939{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchResult.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,gBAAA,CAEA,gCACC,8BAAA,CACA,mDAAA,CAGA,6EAEC,8CAAA,CAKD,8CACC,8CAAA,CACA,4CAAA,CAGD,kCACC,cAAA,CAOD,oEACC,8CAAA,CAMA,4EACC,UAAA,CACA,iBAAA,CACA,gDAAA,CACA,oBAAA,CACA,SAAA,CACA,0CAAA,CACA,6CAAA,CAEA,iEAAA,CAGD,0EACC,8CAAA,CAMF,6ZAIC,uCAAA,CAIF,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,mCAAA,CACA,oCAAA,CACA,kCAAA,CACA,gDAAA,CAEA,6CACC,mDAAA,CAGD,qFACC,oCAAA,CAEA,oDAAA,CACA,mDAAA,CAID,wDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAID,wCACC,UAAA,CACA,WAAA,CACA,kBAAA,CAEA,uCAAA,CAKA,4DACC,UAAA,CACA,WAAA,CACA,WAAA,CAMH,wCACC,qDAAA,CACA,gDAAA,CAKF,mCACC,KACC,mBAAA,CACA,SAAA,CAGD,GACC,mBAAA,CACA,SAAA,CAAA\",\"sourcesContent\":[\"\\n.result-item {\\n\\tpadding-inline: 0;\\n\\n\\t:deep(a) {\\n\\t\\tborder: 2px solid transparent;\\n\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\n\\t\\t// Hover/press: neutral gray fill only, no border.\\n\\t\\t&:active,\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\n\\t\\t// Plain Tab into a result keeps a visible focus ring (a11y). Normally the combobox\\n\\t\\t// keeps focus in the input and drives selection via `active` below.\\n\\t\\t&:focus-visible {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-color: var(--color-border-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t* {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t// NcListItem's `active` state paints a primary fill, white text and a blue stripe.\\n\\t// We want a neutral look: the gray hover fill plus a maxcontrast border, readable text.\\n\\t&.list-item__wrapper--active {\\n\\t\\t:deep(.list-item) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t\\t// Keyboard selection marker: the pill the left navigation paints on its active\\n\\t\\t\\t// entry. It has to hang off .list-item rather than the wrapper, because\\n\\t\\t\\t// .list-item is itself positioned and paints the opaque row background, so it\\n\\t\\t\\t// would cover a pseudo-element belonging to its parent.\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block: calc(var(--default-grid-baseline) * 2);\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\twidth: 3px;\\n\\t\\t\\t\\tborder-radius: var(--border-radius-rounded);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\t// Zeroed by the reduced-motion theme, so no separate media query is needed.\\n\\t\\t\\t\\tanimation: result-pill-in var(--animation-quick) ease-out;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Undo the forced active text colour. Chain through the anchor to outrank\\n\\t\\t// NcListItem's own !important rule.\\n\\t\\t:deep(.list-item__anchor .list-item-content__name),\\n\\t\\t:deep(.list-item__anchor .list-item-content__subname),\\n\\t\\t:deep(.list-item__anchor .list-item-content__details),\\n\\t\\t:deep(.list-item__anchor .list-item-details__details) {\\n\\t\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\toverflow: hidden;\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tmargin-inline-start: var(--default-grid-baseline);\\n\\n\\t\\t&--rounded {\\n\\t\\t\\tborder-radius: calc(var(--default-clickable-area) / 2);\\n\\t\\t}\\n\\n\\t\\t&--with-thumbnail:not(#{&}--rounded) {\\n\\t\\t\\tborder: 1px solid var(--color-border);\\n\\t\\t\\t// compensate for border\\n\\t\\t\\tmax-height: calc(var(--default-clickable-area) - 2px);\\n\\t\\t\\tmax-width: calc(var(--default-clickable-area) - 2px);\\n\\t\\t}\\n\\n\\t\\t// A full-bleed thumbnail (preview or avatar) fills the box.\\n\\t\\t&--with-thumbnail img {\\n\\t\\t\\t// Make sure to keep ratio\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\n\\t\\t\\tobject-fit: cover;\\n\\t\\t\\tobject-position: center;\\n\\t\\t}\\n\\n\\t\\t// A small monochrome glyph (e.g. a settings section), not a thumbnail.\\n\\t\\t&-img {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t// Dark monochrome icons invert to light in dark themes.\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\n\\t\\t\\t// Mime icons carry their own colours (a red PDF, a green spreadsheet), so the\\n\\t\\t\\t// dark-theme invert would recolour them: red comes out cyan. Sized to match the\\n\\t\\t\\t// 32px these icons had while they were painted as a background-image.\\n\\t\\t\\t&[src*='/filetypes/'] {\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tfilter: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// App results reuse the app-menu tile (AppIcon); size its circle to the icon column.\\n\\t&__app-icon {\\n\\t\\t--app-icon-circle-size: var(--default-clickable-area);\\n\\t\\tmargin-inline-start: var(--default-grid-baseline);\\n\\t}\\n}\\n\\n// Grow the pill out of the row's centre line, matching the navigation entry.\\n@keyframes result-pill-in {\\n\\tfrom {\\n\\t\\ttransform: scaleY(0);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\tto {\\n\\t\\ttransform: scaleY(1);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.searchable-list__wrapper[data-v-66bd6570]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-66bd6570]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-66bd6570] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__list[data-v-66bd6570] .button-vue span{font-weight:initial}.searchable-list__empty-content[data-v-66bd6570]{margin-top:calc(var(--default-grid-baseline)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchableList.vue\"],\"names\":[],\"mappings\":\"AAEC,2CACC,4CAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,WAAA,CAGD,wCACC,UAAA,CACA,gBAAA,CACA,eAAA,CACA,uCAAA,CACA,oCAAA,CAEA,oDACC,mDAAA,CACA,yDACC,mBAAA,CAKH,iDACC,+CAAA\",\"sourcesContent\":[\"\\n.searchable-list {\\n\\t&__wrapper {\\n\\t\\tpadding: calc(var(--default-grid-baseline) * 3);\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\twidth: 250px;\\n\\t}\\n\\n\\t&__list {\\n\\t\\twidth: 100%;\\n\\t\\tmax-height: 284px;\\n\\t\\toverflow-y: auto;\\n\\t\\tmargin-top: var(--default-grid-baseline);\\n\\t\\tpadding: var(--default-grid-baseline);\\n\\n\\t\\t:deep(.button-vue) {\\n\\t\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tfont-weight: initial;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__empty-content {\\n\\t\\tmargin-top: calc(var(--default-grid-baseline) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-input[data-v-59e94aec]{position:relative;z-index:51}.unified-search-input[data-v-59e94aec]:not(.unified-search-input--mobile){display:flex;align-items:center;width:clamp(200px,35vw,600px);max-width:calc(100% - 32px)}.unified-search-input--mobile[data-v-59e94aec]{display:contents}.unified-search-input__field[data-v-59e94aec]{--resting-background: rgba(0, 0, 0, 0.15);--resting-background-hover: rgba(0, 0, 0, 0.22);--search-icon-pad: 12px;--search-icon-size: 20px;--search-icon-gap: 8px;--search-anim-duration: 240ms;--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);position:relative;container-type:inline-size;display:flex;align-items:center;height:var(--default-clickable-area);width:100%;border-radius:var(--border-radius-element, 8px);box-shadow:inset 0 2px 0 rgba(0,0,0,.12);background-color:var(--resting-background);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);transition:background-color var(--search-anim-duration) var(--search-anim-easing),box-shadow var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field[data-v-59e94aec]:hover:not(.unified-search-input__field--active){background-color:var(--resting-background-hover)}.unified-search-input__field--active[data-v-59e94aec]{background-color:var(--color-main-background);box-shadow:none}.unified-search-input__resting[data-v-59e94aec]{--slide-sign: 1;position:absolute;inset-block:0;inset-inline-start:var(--search-icon-pad);max-width:calc(100% - 2*var(--search-icon-pad));display:flex;align-items:center;gap:var(--search-icon-gap);pointer-events:none;color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));transform:translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));transition:transform var(--search-anim-duration) var(--search-anim-easing),color var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__field--active .unified-search-input__resting[data-v-59e94aec]{transform:translateX(0);color:var(--color-text-maxcontrast);max-width:calc(100% - 7*var(--search-icon-pad))}.unified-search-input__label[data-v-59e94aec]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--search-anim-duration) var(--search-anim-easing)}.unified-search-input__resting--filled .unified-search-input__label[data-v-59e94aec]{opacity:0}.unified-search-input__resting[data-v-59e94aec] .material-design-icon__svg{display:block;transform:translateY(1px)}.unified-search-input__input[data-v-59e94aec]{flex:1;min-width:0;height:100%;margin:0;padding-inline:calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);border:none !important;border-radius:0 !important;box-shadow:none !important;background-color:rgba(0,0,0,0);color:var(--color-main-text);font-size:var(--default-font-size)}.unified-search-input__input[data-v-59e94aec]::placeholder{opacity:1;color:var(--color-text-maxcontrast)}.unified-search-input__input[data-v-59e94aec]:focus-visible{outline:none}.unified-search-input__clear[data-v-59e94aec],.unified-search-input__filter[data-v-59e94aec]{flex-shrink:0;margin-inline-end:2px}.unified-search-input__loading[data-v-59e94aec]{flex-shrink:0;display:flex;align-items:center;margin-inline:var(--default-grid-baseline)}.unified-search-input__shortcut[data-v-59e94aec]{position:absolute;inset-inline-end:var(--default-grid-baseline);top:50%;transform:translateY(-50%);display:flex;pointer-events:none}@container (max-width: 400px){.unified-search-input__shortcut[data-v-59e94aec]{display:none}}.unified-search-input__shortcut[data-v-59e94aec] kbd{min-width:12px;height:12px;padding-inline:5px;border:1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);border-block-end-width:2px;border-radius:var(--border-radius-small, 4px);color:color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));font-size:13px}[data-theme-dark] .unified-search-input__field[data-v-59e94aec],[data-theme-dark-highcontrast] .unified-search-input__field[data-v-59e94aec]{--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent)}.unified-search-input__resting[data-v-59e94aec]:dir(rtl){--slide-sign: -1}@media(prefers-reduced-motion: reduce){.unified-search-input__resting[data-v-59e94aec],.unified-search-input__resting span[data-v-59e94aec]{transition:none}}.unified-search-input--mobile[data-v-59e94aec] .header-menu{height:var(--default-clickable-area)}.unified-search-input--mobile[data-v-59e94aec] .header-menu__trigger{--button-size: var(--default-clickable-area) !important;height:var(--default-clickable-area) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue{--color-main-text: var(--color-background-plain-text);color:var(--color-background-plain-text);border-radius:var(--border-radius-element) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:hover:not(:disabled){background-color:rgba(0,0,0,.1) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:active:not(:disabled){background-color:rgba(0,0,0,.15) !important}.unified-search-input--mobile[data-v-59e94aec] .button-vue:focus-visible{background-color:rgba(0,0,0,.1) !important;outline:none !important;box-shadow:inset 0 0 0 2px var(--color-background-plain-text) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/UnifiedSearchInput.vue\"],\"names\":[],\"mappings\":\"AACA,uCAGC,iBAAA,CACA,UAAA,CAEA,0EACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,2BAAA,CAGD,+CACC,gBAAA,CAGD,8CACC,yCAAA,CACA,+CAAA,CAGA,uBAAA,CACA,wBAAA,CACA,sBAAA,CAGA,6BAAA,CACA,oDAAA,CACA,iBAAA,CAEA,0BAAA,CACA,YAAA,CACA,kBAAA,CAGA,oCAAA,CACA,UAAA,CACA,+CAAA,CACA,wCAAA,CAEA,0CAAA,CACA,qDAAA,CACA,6CAAA,CAEA,kJACC,CAGD,8FACC,gDAAA,CAID,sDACC,6CAAA,CACA,eAAA,CAQF,gDACC,eAAA,CACA,iBAAA,CACA,aAAA,CACA,yCAAA,CACA,+CAAA,CACA,YAAA,CACA,kBAAA,CACA,0BAAA,CACA,mBAAA,CACA,+FAAA,CACA,sFAAA,CACA,sIACC,CAGD,qFACC,uBAAA,CACA,mCAAA,CACA,+CAAA,CAOF,8CACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,wEAAA,CAGD,qFACC,SAAA,CAOD,2EACC,aAAA,CACA,yBAAA,CAKD,8CACC,MAAA,CACA,WAAA,CACA,WAAA,CACA,QAAA,CAGA,qHAAA,CAIA,sBAAA,CACA,0BAAA,CACA,0BAAA,CACA,8BAAA,CACA,4BAAA,CACA,kCAAA,CAEA,2DACC,SAAA,CACA,mCAAA,CAGD,4DACC,YAAA,CAIF,6FAEC,aAAA,CACA,qBAAA,CAGD,gDACC,aAAA,CACA,YAAA,CACA,kBAAA,CACA,0CAAA,CAKD,iDACC,iBAAA,CACA,6CAAA,CACA,OAAA,CACA,0BAAA,CACA,YAAA,CACA,mBAAA,CAKA,8BAXD,iDAYE,YAAA,CAAA,CAGD,qDACC,cAAA,CACA,WAAA,CACA,kBAAA,CACA,wFAAA,CACA,0BAAA,CACA,6CAAA,CACA,+FAAA,CACA,cAAA,CAOH,6IAEC,uFAAA,CACA,6FAAA,CAOD,yDACC,gBAAA,CAKD,uCACC,qGAEC,eAAA,CAAA,CAKF,4DACC,oCAAA,CAGD,qEACC,uDAAA,CACA,+CAAA,CAGD,2DACC,qDAAA,CACA,wCAAA,CACA,qDAAA,CAEA,gFACC,0CAAA,CAGD,iFACC,2CAAA,CAGD,yEACC,0CAAA,CACA,uBAAA,CACA,wEAAA\",\"sourcesContent\":[\"\\n.unified-search-input {\\n\\t// Paints above the modal root (z-index: 50) so the header input stays clickable\\n\\t// over the scrim while the popover is open. Keep 51 one above that value.\\n\\tposition: relative;\\n\\tz-index: 51;\\n\\n\\t&:not(.unified-search-input--mobile) {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\twidth: clamp(200px, 35vw, 600px);\\n\\t\\tmax-width: calc(100% - 32px);\\n\\t}\\n\\n\\t&--mobile {\\n\\t\\tdisplay: contents;\\n\\t}\\n\\n\\t&__field {\\n\\t\\t--resting-background: rgba(0, 0, 0, 0.15);\\n\\t\\t--resting-background-hover: rgba(0, 0, 0, 0.22);\\n\\t\\t// Shared geometry: the resting group and the input's leading padding read the\\n\\t\\t// same tokens so the placeholder and the typed value line up.\\n\\t\\t--search-icon-pad: 12px;\\n\\t\\t--search-icon-size: 20px;\\n\\t\\t--search-icon-gap: 8px;\\n\\t\\t// One shared timing for every focus transition (background, the icon/label\\n\\t\\t// slide, the recolour) so they move together. easeOutQuart = soft landing.\\n\\t\\t--search-anim-duration: 240ms;\\n\\t\\t--search-anim-easing: cubic-bezier(0.22, 1, 0.36, 1);\\n\\t\\tposition: relative;\\n\\t\\t// Query container so the resting group can centre itself with cqi units\\n\\t\\tcontainer-type: inline-size;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t// Match the default clickable area so the inner (which the global\\n\\t\\t// input reset forces to that height) fills the field without an override.\\n\\t\\theight: var(--default-clickable-area);\\n\\t\\twidth: 100%;\\n\\t\\tborder-radius: var(--border-radius-element, 8px);\\n\\t\\tbox-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.12);\\n\\t\\t// Resting: subdued \\\"button\\\" look that sits on the themed header\\n\\t\\tbackground-color: var(--resting-background);\\n\\t\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\t\\tbackdrop-filter: var(--filter-background-blur);\\n\\t\\t// Blue tint -> white surface on the shared timing, in step with the slide.\\n\\t\\ttransition:\\n\\t\\t\\tbackground-color var(--search-anim-duration) var(--search-anim-easing),\\n\\t\\t\\tbox-shadow var(--search-anim-duration) var(--search-anim-easing);\\n\\n\\t\\t&:hover:not(.unified-search-input__field--active) {\\n\\t\\t\\tbackground-color: var(--resting-background-hover);\\n\\t\\t}\\n\\n\\t\\t// Active: real input surface once focused or filled\\n\\t\\t&--active {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// Anchored at the leading edge and translated to the centre while at rest; on\\n\\t// focus (--active) the translate goes to 0 and it slides into place. Centre offset\\n\\t// is pure CSS: half the field (50cqi) minus half the group (50%) minus the pad, so\\n\\t// it self-corrects for any placeholder length or field width.\\n\\t&__resting {\\n\\t\\t--slide-sign: 1;\\n\\t\\tposition: absolute;\\n\\t\\tinset-block: 0;\\n\\t\\tinset-inline-start: var(--search-icon-pad);\\n\\t\\tmax-width: calc(100% - 2 * var(--search-icon-pad));\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: var(--search-icon-gap);\\n\\t\\tpointer-events: none;\\n\\t\\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\\n\\t\\ttransform: translateX(calc(var(--slide-sign) * (50cqi - 50% - var(--search-icon-pad))));\\n\\t\\ttransition:\\n\\t\\t\\ttransform var(--search-anim-duration) var(--search-anim-easing),\\n\\t\\t\\tcolor var(--search-anim-duration) var(--search-anim-easing);\\n\\n\\t\\t.unified-search-input__field--active & {\\n\\t\\t\\ttransform: translateX(0);\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tmax-width: calc(100% - 7 * var(--search-icon-pad));\\n\\t\\t}\\n\\t}\\n\\n\\t// Placeholder text inside the resting group. Ellipsised, and hidden once typing\\n\\t// starts so it doesn't overlap the value. Scoped to the label class so the sibling\\n\\t// magnifier (also rendered as a ) stays visible.\\n\\t&__label {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\ttransition: opacity var(--search-anim-duration) var(--search-anim-easing);\\n\\t}\\n\\n\\t&__resting--filled &__label {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t// The material-design icon is inline (baseline-aligned), which leaves a\\n\\t// descender gap and makes the glyph sit high even when its box is centred.\\n\\t// Render it as a block so it fills its box, then nudge 1px down to sit on the\\n\\t// text's optical centre (a geometrically centred glyph reads slightly high).\\n\\t&__resting :deep(.material-design-icon__svg) {\\n\\t\\tdisplay: block;\\n\\t\\ttransform: translateY(1px);\\n\\t}\\n\\n\\t// Only visible once active (at rest it's empty and covered by the overlay),\\n\\t// so it's styled for the active/white surface throughout.\\n\\t&__input {\\n\\t\\tflex: 1;\\n\\t\\tmin-width: 0;\\n\\t\\theight: 100%;\\n\\t\\tmargin: 0;\\n\\t\\t// Leading space so the placeholder/value starts one gap past the magnifier,\\n\\t\\t// matching the resting group exactly. Trailing padding mirrors the leading pad.\\n\\t\\tpadding-inline: calc(var(--search-icon-pad) + var(--search-icon-size) + var(--search-icon-gap)) var(--search-icon-pad);\\n\\t\\t// Opt out of NC's global input chrome (core/css/inputs.scss adds a border,\\n\\t\\t// radius and focus box-shadow to any text input not in its exclusion list).\\n\\t\\t// !important because that global focus rule outweighs a scoped class.\\n\\t\\tborder: none !important;\\n\\t\\tborder-radius: 0 !important;\\n\\t\\tbox-shadow: none !important;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-size: var(--default-font-size);\\n\\n\\t\\t&::placeholder {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\toutline: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&__clear,\\n\\t&__filter {\\n\\t\\tflex-shrink: 0;\\n\\t\\tmargin-inline-end: 2px;\\n\\t}\\n\\n\\t&__loading {\\n\\t\\tflex-shrink: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmargin-inline: var(--default-grid-baseline);\\n\\t}\\n\\n\\t// Pinned to the trailing edge, overlaid on the input (pointer-events: none so a\\n\\t// click there still focuses the field).\\n\\t&__shortcut {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: var(--default-grid-baseline);\\n\\t\\ttop: 50%;\\n\\t\\ttransform: translateY(-50%);\\n\\t\\tdisplay: flex;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t// On a narrow field the centred placeholder runs under the hint, so drop it\\n\\t\\t// below a usable width. Keyed to the field's own inline-size (its container),\\n\\t\\t// not the viewport, so it holds however crowded the header gets.\\n\\t\\t@container (max-width: 400px) {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t:deep(kbd) {\\n\\t\\t\\tmin-width: 12px;\\n\\t\\t\\theight: 12px;\\n\\t\\t\\tpadding-inline: 5px;\\n\\t\\t\\tborder: 1px solid color-mix(in srgb, var(--color-background-plain-text) 20%, transparent);\\n\\t\\t\\tborder-block-end-width: 2px;\\n\\t\\t\\tborder-radius: var(--border-radius-small, 4px);\\n\\t\\t\\tcolor: color-mix(in srgb, var(--color-background-plain-text) 70%, var(--color-background-plain));\\n\\t\\t\\tfont-size: 13px;\\n\\t\\t}\\n\\t}\\n}\\n\\n// On dark themes the plain overlay is nearly invisible on the header, so tint\\n// the resting background with the primary colour instead.\\n[data-theme-dark] .unified-search-input__field,\\n[data-theme-dark-highcontrast] .unified-search-input__field {\\n\\t--resting-background: color-mix(in srgb, var(--color-primary-element) 16%, transparent);\\n\\t--resting-background-hover: color-mix(in srgb, var(--color-primary-element) 22%, transparent);\\n}\\n\\n// translateX is physical, so flip the resting slide under RTL to keep it moving toward\\n// the leading (right) edge. :dir(rtl) tracks the computed direction, so it applies whether\\n// RTL comes from the body dir attribute or a direction style (an [dir=rtl] attribute\\n// selector would miss the latter).\\n.unified-search-input__resting:dir(rtl) {\\n\\t--slide-sign: -1;\\n}\\n\\n// Respect reduced-motion: keep the end states but drop the slide/fade so nothing\\n// animates on focus.\\n@media (prefers-reduced-motion: reduce) {\\n\\t.unified-search-input__resting,\\n\\t.unified-search-input__resting span {\\n\\t\\ttransition: none;\\n\\t}\\n}\\n\\n// Mobile: NcHeaderButton styling to match the other header items\\n.unified-search-input--mobile :deep(.header-menu) {\\n\\theight: var(--default-clickable-area);\\n}\\n\\n.unified-search-input--mobile :deep(.header-menu__trigger) {\\n\\t--button-size: var(--default-clickable-area) !important;\\n\\theight: var(--default-clickable-area) !important;\\n}\\n\\n.unified-search-input--mobile :deep(.button-vue) {\\n\\t--color-main-text: var(--color-background-plain-text);\\n\\tcolor: var(--color-background-plain-text);\\n\\tborder-radius: var(--border-radius-element) !important;\\n\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: rgba(0, 0, 0, 0.1) !important;\\n\\t}\\n\\n\\t&:active:not(:disabled) {\\n\\t\\tbackground-color: rgba(0, 0, 0, 0.15) !important;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\tbackground-color: rgba(0, 0, 0, 0.1) !important;\\n\\t\\toutline: none !important;\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-background-plain-text) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.local-unified-search[data-v-2b577e50]{--local-search-width: min(calc(250px + var(--dfb017de)), 95vw);box-sizing:border-box;position:relative;height:var(--header-height);width:var(--local-search-width);display:flex;align-items:center;z-index:10;padding-inline:var(--border-width-input-focused);overflow:hidden;inset-inline-end:0}.local-unified-search .local-unified-search__global-search[data-v-2b577e50]{position:absolute;inset-inline-end:var(--default-clickable-area)}.local-unified-search .local-unified-search__input[data-v-2b577e50]{box-sizing:border-box;margin:0;width:var(--local-search-width)}.local-unified-search .local-unified-search__input[data-v-2b577e50] input{padding-inline-end:calc(var(--dfb017de) + var(--default-clickable-area))}.animated-width[data-v-2b577e50]{transition:width var(--animation-quick) linear}.v-leave-active[data-v-2b577e50]{position:absolute !important}.v-enter.local-unified-search[data-v-2b577e50],.v-leave-to.local-unified-search[data-v-2b577e50]{--local-search-width: var(--clickable-area-large)}@media screen and (max-width: 500px){.local-unified-search.local-unified-search--open[data-v-2b577e50]{--local-search-width: 100vw;padding-inline:var(--default-grid-baseline)}.unified-search-menu:has(.local-unified-search--open){position:absolute !important;inset-inline:0}.header-end:has(.local-unified-search--open) > :not(.unified-search-menu){display:none}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,8DAAA,CACA,qBAAA,CACA,iBAAA,CACA,2BAAA,CACA,+BAAA,CACA,YAAA,CACA,kBAAA,CAEA,UAAA,CAEA,gDAAA,CAEA,eAAA,CAEA,kBAAA,CAEA,4EACC,iBAAA,CACA,8CAAA,CAGD,oEACC,qBAAA,CAEA,QAAA,CACA,+BAAA,CAIA,0EAEC,wEAAA,CAKH,iCACC,8CAAA,CAKD,iCACC,4BAAA,CAKA,iGAEC,iDAAA,CAIF,qCACC,kEAEC,2BAAA,CACA,2CAAA,CAID,sDACC,4BAAA,CACA,cAAA,CAGD,0EACC,YAAA,CAAA\",\"sourcesContent\":[\"\\n.local-unified-search {\\n\\t--local-search-width: min(calc(250px + v-bind('searchGlobalButtonCSSWidth')), 95vw);\\n\\tbox-sizing: border-box;\\n\\tposition: relative;\\n\\theight: var(--header-height);\\n\\twidth: var(--local-search-width);\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\t// Ensure it overlays the other entries\\n\\tz-index: 10;\\n\\t// add some padding for the focus visible outline\\n\\tpadding-inline: var(--border-width-input-focused);\\n\\t// hide the overflow - needed for the transition\\n\\toverflow: hidden;\\n\\t// Ensure the position is fixed also during \\\"position: absolut\\\" (transition)\\n\\tinset-inline-end: 0;\\n\\n\\t#{&} &__global-search {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: var(--default-clickable-area);\\n\\t}\\n\\n\\t#{&} &__input {\\n\\t\\tbox-sizing: border-box;\\n\\t\\t// override some nextcloud-vue styles\\n\\t\\tmargin: 0;\\n\\t\\twidth: var(--local-search-width);\\n\\n\\t\\t// Fixup the spacing so we can fit in the \\\"search globally\\\" button\\n\\t\\t// this can break at any time the component library changes\\n\\t\\t:deep(input) {\\n\\t\\t\\t// search global width + close button width\\n\\t\\t\\tpadding-inline-end: calc(v-bind('searchGlobalButtonCSSWidth') + var(--default-clickable-area));\\n\\t\\t}\\n\\t}\\n}\\n\\n.animated-width {\\n\\ttransition: width var(--animation-quick) linear;\\n}\\n\\n// Make the position absolute during the transition\\n// this is needed to \\\"hide\\\" the button behind it\\n.v-leave-active {\\n\\tposition: absolute !important;\\n}\\n\\n.v-enter,\\n.v-leave-to {\\n\\t&.local-unified-search {\\n\\t\\t// Start with only the overlay button\\n\\t\\t--local-search-width: var(--clickable-area-large);\\n\\t}\\n}\\n\\n@media screen and (max-width: 500px) {\\n\\t.local-unified-search.local-unified-search--open {\\n\\t\\t// 100% but still show the menu toggle on the very right\\n\\t\\t--local-search-width: 100vw;\\n\\t\\tpadding-inline: var(--default-grid-baseline);\\n\\t}\\n\\n\\t// when open we need to position it absolute to allow overlay the full bar\\n\\t:global(.unified-search-menu:has(.local-unified-search--open)) {\\n\\t\\tposition: absolute !important;\\n\\t\\tinset-inline: 0;\\n\\t}\\n\\t// Hide all other entries, especially the user menu as it might leak pixels\\n\\t:global(.header-end:has(.local-unified-search--open) > :not(.unified-search-menu)) {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-modal-root[data-v-f77795fc]{position:absolute;inset-block-start:100%;inset-inline:0;z-index:50 !important;margin-block-start:6px;display:flex;justify-content:center}.unified-search-modal__scrim[data-v-f77795fc]{position:fixed;inset:0;z-index:0;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color), 0.5)}.unified-search-modal__container[data-v-f77795fc]{position:relative;z-index:1;display:flex;flex-direction:column;flex-shrink:0;width:600px;max-width:90vw;max-height:calc(90vh - var(--header-height));border-radius:var(--border-radius-container-large, var(--border-radius-rounded));overflow:hidden;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px rgba(0,0,0,.2);transition:transform 240ms cubic-bezier(0.22, 1, 0.36, 1)}@media only screen and ((max-width: 512px) or (max-height: 400px)){.unified-search-modal-root[data-v-f77795fc]{position:fixed;inset-block-start:var(--header-height);inset-inline:0;inset-block-end:0;margin-block-start:0}.unified-search-modal__container[data-v-f77795fc]{width:100%;max-width:initial;height:100%;max-height:initial;border-radius:0}}.unified-search-modal-enter-active[data-v-f77795fc],.unified-search-modal-leave-active[data-v-f77795fc]{transition:opacity 250ms}.unified-search-modal-enter[data-v-f77795fc],.unified-search-modal-leave-to[data-v-f77795fc]{opacity:0}.unified-search-modal-enter .unified-search-modal__container[data-v-f77795fc],.unified-search-modal-leave-to .unified-search-modal__container[data-v-f77795fc]{transform:translateY(-6px)}@media(prefers-reduced-motion: reduce){.unified-search-modal__container[data-v-f77795fc]{transition:none}.unified-search-modal-enter .unified-search-modal__container[data-v-f77795fc],.unified-search-modal-leave-to .unified-search-modal__container[data-v-f77795fc]{transform:none}}.unified-search-modal__header[data-v-f77795fc]{position:relative;display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);padding-inline:calc(var(--default-grid-baseline)*4);padding-block:calc(var(--default-grid-baseline)*4) 0}.unified-search-modal__header--has-results[data-v-f77795fc]{padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__header--has-results[data-v-f77795fc]::after{content:\"\";position:absolute;inset-inline:calc(var(--default-grid-baseline)*4);inset-block-end:0;border-block-end:1px solid var(--color-border)}.unified-search-modal__mobile-input[data-v-f77795fc]{display:flex;align-items:center;gap:4px}.unified-search-modal__mobile-input[data-v-f77795fc] .input-field{flex:1 1 auto}.unified-search-modal__filters[data-v-f77795fc]{display:flex;flex-wrap:wrap;gap:4px;justify-content:start}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc],.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc],.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc]{flex:1 1 0;min-width:0}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .v-popper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .v-popper{display:block;width:100%}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .button-vue__wrapper,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .button-vue__wrapper{justify-content:center}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .button-vue,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .button-vue{position:relative;width:100%;padding-inline:calc(var(--default-grid-baseline)*6);border-radius:var(--border-radius-element)}.unified-search-modal__filters>[data-cy-unified-search-filter=places][data-v-f77795fc] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=date][data-v-f77795fc] .button-vue::after,.unified-search-modal__filters>[data-cy-unified-search-filter=people][data-v-f77795fc] .button-vue::after{content:\"\";position:absolute;inset-inline-end:calc(var(--default-grid-baseline)*2);inset-block:0;margin-block:auto;width:16px;height:16px;background-color:currentColor;mask-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});mask-repeat:no-repeat;mask-position:center;mask-size:contain}.unified-search-modal__filters-applied[data-v-f77795fc]{display:flex;flex-wrap:wrap}.unified-search-modal__no-content[data-v-f77795fc]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--default-grid-baseline)*2);min-height:200px;padding-inline:calc(var(--default-grid-baseline)*4);padding-block-end:calc(var(--default-grid-baseline)*4)}.unified-search-modal__detail-header[data-v-f77795fc]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--default-grid-baseline)*2);position:sticky;top:0;z-index:1;background-color:var(--color-main-background);padding-block:calc(var(--default-grid-baseline)*3) calc(var(--default-grid-baseline)*2);border-block-end:1px solid var(--color-border)}.unified-search-modal__detail-back[data-v-f77795fc]{justify-self:start}.unified-search-modal__detail-title[data-v-f77795fc]{font-size:var(--default-font-size);font-weight:var(--font-weight-heading);grid-column:2;margin:0;margin-block-start:-3px;align-self:stretch;display:flex;align-items:center;justify-content:center}.unified-search-modal__connected-services[data-v-f77795fc]{display:flex;flex-wrap:wrap;width:100%;margin-block-start:calc(var(--default-grid-baseline)*3)}.unified-search-modal__rtl-icon[data-v-f77795fc]:dir(rtl){transform:scaleX(-1)}.unified-search-modal__results[data-v-f77795fc]{flex:1 1 auto;min-height:0;overflow:hidden auto;padding-inline:calc(var(--default-grid-baseline)*4);padding-block:0 calc(var(--default-grid-baseline)*4)}.unified-search-modal__results .result-title[data-v-f77795fc]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);margin-block:14px 4px;margin-inline-start:calc(var(--default-grid-baseline)*2)}.unified-search-modal__results .result-title--more[data-v-f77795fc]{margin-block:calc(var(--default-grid-baseline)*2) var(--default-grid-baseline)}.unified-search-modal__results .result-title--more[data-v-f77795fc] .button-vue__text{font-size:var(--default-font-size);color:var(--color-main-text)}.unified-search-modal__results .result-title--more[data-v-f77795fc] .button-vue__icon{color:var(--color-main-text)}.unified-search-modal__results .result-footer[data-v-f77795fc]{justify-content:space-between;align-items:center;display:flex}.unified-search-modal__results .result--unfiltered[data-v-f77795fc]{opacity:.7}.unified-search-modal__unfiltered-header[data-v-f77795fc]{display:flex;flex-direction:column;gap:2px;margin-block:16px 8px;padding-block:12px 0}.result-group+.result-group>.unified-search-modal__unfiltered-header[data-v-f77795fc]{border-block-start:1px solid var(--color-border)}.unified-search-modal__unfiltered-label[data-v-f77795fc]{font-weight:var(--font-weight-heading);color:var(--color-text-maxcontrast)}.filter-button__icon[data-v-f77795fc]{height:20px;width:20px;object-fit:contain;filter:var(--background-invert-if-bright);padding:11px}@media only screen and (max-height: 400px){.unified-search-modal__results[data-v-f77795fc]{overflow:unset}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/UnifiedSearchModal.vue\"],\"names\":[],\"mappings\":\"AAKA,4CACC,iBAAA,CACA,sBAAA,CACA,cAAA,CAGA,qBAAA,CACA,sBAAA,CACA,YAAA,CACA,sBAAA,CAKD,8CACC,cAAA,CACA,OAAA,CACA,SAAA,CACA,yBAAA,CACA,iDAAA,CAKD,kDACC,iBAAA,CACA,SAAA,CACA,YAAA,CACA,qBAAA,CAGA,aAAA,CACA,WAAA,CACA,cAAA,CAEA,4CAAA,CACA,gFAAA,CAEA,eAAA,CACA,6CAAA,CACA,4BAAA,CACA,kCAAA,CAGA,yDAAA,CAID,mEACC,4CAGC,cAAA,CACA,sCAAA,CACA,cAAA,CACA,iBAAA,CACA,oBAAA,CAGD,kDACC,UAAA,CACA,iBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CAAA,CAKF,wGAEC,wBAAA,CAGD,6FAEC,SAAA,CAGD,+JAEC,0BAAA,CAKD,uCACC,kDACC,eAAA,CAGD,+JAEC,cAAA,CAAA,CAKD,+CAKC,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mDAAA,CAEA,oDAAA,CAIA,4DACC,sDAAA,CAEA,mEACC,UAAA,CACA,iBAAA,CACA,iDAAA,CACA,iBAAA,CACA,8CAAA,CAKH,qDACC,YAAA,CACA,kBAAA,CACA,OAAA,CAEA,kEACC,aAAA,CAIF,gDACC,YAAA,CACA,cAAA,CACA,OAAA,CACA,qBAAA,CAIA,mQAGC,UAAA,CACA,WAAA,CAEA,iSACC,aAAA,CACA,UAAA,CAID,kUACC,sBAAA,CAID,uSACC,iBAAA,CACA,UAAA,CACA,mDAAA,CACA,0CAAA,CAEA,4TACC,UAAA,CACA,iBAAA,CACA,qDAAA,CACA,aAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,6BAAA,CACA,kDAAA,CACA,qBAAA,CACA,oBAAA,CACA,iBAAA,CAMJ,wDACC,YAAA,CACA,cAAA,CAGD,mDACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,wCAAA,CAEA,gBAAA,CAEA,mDAAA,CACA,sDAAA,CAID,sDAEC,YAAA,CACA,kCAAA,CACA,kBAAA,CACA,wCAAA,CAGA,eAAA,CACA,KAAA,CACA,SAAA,CACA,6CAAA,CACA,uFAAA,CACA,8CAAA,CAGD,oDACC,kBAAA,CAGD,qDACC,kCAAA,CACA,sCAAA,CACA,aAAA,CACA,QAAA,CACA,uBAAA,CAGA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAID,2DACC,YAAA,CACA,cAAA,CAGA,UAAA,CACA,uDAAA,CAKD,0DACC,oBAAA,CAGD,gDAEC,aAAA,CACA,YAAA,CACA,oBAAA,CAEA,mDAAA,CACA,oDAAA,CAGC,8DACC,mCAAA,CACA,kCAAA,CAEA,qBAAA,CACA,wDAAA,CAKD,oEACC,8EAAA,CAEA,sFACC,kCAAA,CACA,4BAAA,CAGD,sFACC,4BAAA,CAIF,+DACC,6BAAA,CACA,kBAAA,CACA,YAAA,CAGD,oEACC,UAAA,CAMH,0DACC,YAAA,CACA,qBAAA,CACA,OAAA,CACA,qBAAA,CACA,oBAAA,CAKA,sFACC,gDAAA,CAIF,yDACC,sCAAA,CACA,mCAAA,CAIF,sCACC,WAAA,CACA,UAAA,CACA,kBAAA,CACA,yCAAA,CACA,YAAA,CAID,2CACC,gDACC,cAAA,CAAA\",\"sourcesContent\":[\"\\n\\n// Anchor the popover under the header input (the .unified-search-menu parent is\\n// the positioning context) instead of centering it in the viewport. The scrim is\\n// fixed separately so it still dims the whole page.\\n.unified-search-modal-root {\\n\\tposition: absolute;\\n\\tinset-block-start: 100%;\\n\\tinset-inline: 0;\\n\\t// One below the header input (z-index: 51) and above the page. !important wins\\n\\t// the stacking cascade inside the themed #header.\\n\\tz-index: 50 !important;\\n\\tmargin-block-start: 6px;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n}\\n\\n// Backdrop, mirrors NcModal's .modal-mask. Fixed so it covers the whole viewport\\n// regardless of the anchored root.\\n.unified-search-modal__scrim {\\n\\tposition: fixed;\\n\\tinset: 0;\\n\\tz-index: 0;\\n\\t--backdrop-color: 0, 0, 0;\\n\\tbackground-color: rgba(var(--backdrop-color), 0.5);\\n}\\n\\n// Dialog panel: NcModal's \\\"normal\\\" chrome, but width-matched to the header input\\n// and anchored under it, growing downward and scrolling internally when tall.\\n.unified-search-modal__container {\\n\\tposition: relative;\\n\\tz-index: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\t// Match the previous unified-search modal (NcModal \\\"normal\\\" size). flex-shrink: 0\\n\\t// stops the flex parent from collapsing it below 600px when the menu is narrower.\\n\\tflex-shrink: 0;\\n\\twidth: 600px;\\n\\tmax-width: 90vw;\\n\\t// Leave ~10vh below the panel so it does not reach the bottom of the page\\n\\tmax-height: calc(90vh - var(--header-height));\\n\\tborder-radius: var(--border-radius-container-large, var(--border-radius-rounded));\\n\\t// Clip the header/results to the rounded corners\\n\\toverflow: hidden;\\n\\tbackground-color: var(--color-main-background);\\n\\tcolor: var(--color-main-text);\\n\\tbox-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\\n\\t// The panel slides down into place; the enter/leave classes set the start offset.\\n\\t// Same easeOutQuart curve as the header input so the whole search UI moves in step.\\n\\ttransition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);\\n}\\n\\n// Fullscreen on small viewports, mirrors NcModal's responsive breakpoint\\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\\n\\t.unified-search-modal-root {\\n\\t\\t// Fill the viewport below the header bar, leaving it visible and interactive\\n\\t\\t// (matches the previous unified search and the rest of the mobile chrome).\\n\\t\\tposition: fixed;\\n\\t\\tinset-block-start: var(--header-height);\\n\\t\\tinset-inline: 0;\\n\\t\\tinset-block-end: 0;\\n\\t\\tmargin-block-start: 0;\\n\\t}\\n\\n\\t.unified-search-modal__container {\\n\\t\\twidth: 100%;\\n\\t\\tmax-width: initial;\\n\\t\\theight: 100%;\\n\\t\\tmax-height: initial;\\n\\t\\tborder-radius: 0;\\n\\t}\\n}\\n\\n// Open/close animation: the backdrop fades while the panel slides down from the top\\n.unified-search-modal-enter-active,\\n.unified-search-modal-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.unified-search-modal-enter,\\n.unified-search-modal-leave-to {\\n\\topacity: 0;\\n}\\n\\n.unified-search-modal-enter .unified-search-modal__container,\\n.unified-search-modal-leave-to .unified-search-modal__container {\\n\\ttransform: translateY(-6px);\\n}\\n\\n// Respect reduced-motion: keep the backdrop cross-fade (opacity is not motion) but\\n// drop the panel slide so nothing moves on open/close.\\n@media (prefers-reduced-motion: reduce) {\\n\\t.unified-search-modal__container {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t.unified-search-modal-enter .unified-search-modal__container,\\n\\t.unified-search-modal-leave-to .unified-search-modal__container {\\n\\t\\ttransform: none;\\n\\t}\\n}\\n\\n.unified-search-modal {\\n\\t&__header {\\n\\t\\t// Owns all its own spacing: the inline inset, the gap above the first row, and the\\n\\t\\t// gap between stacked rows (mobile input, filters, applied chips). position:\\n\\t\\t// relative only anchors the divider below; the header never scrolls (the results\\n\\t\\t// list scrolls in its own box), so it needs no sticky offset.\\n\\t\\tposition: relative;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\t// Trim the bottom when the filter row is all there is; results add it back below.\\n\\t\\tpadding-block: calc(var(--default-grid-baseline) * 4) 0;\\n\\n\\t\\t// With results below, restore the full bottom inset above the divider (which aligns\\n\\t\\t// to the content edge).\\n\\t\\t&--has-results {\\n\\t\\t\\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\\n\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\t\\t\\tinset-block-end: 0;\\n\\t\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__mobile-input {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: 4px;\\n\\n\\t\\t:deep(.input-field) {\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&__filters {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tgap: 4px;\\n\\t\\tjustify-content: start;\\n\\n\\t\\t// The three category triggers split the row into thirds; any extra controls\\n\\t\\t// (local search) keep their size and wrap below.\\n\\t\\t> [data-cy-unified-search-filter=\\\"places\\\"],\\n\\t\\t> [data-cy-unified-search-filter=\\\"date\\\"],\\n\\t\\t> [data-cy-unified-search-filter=\\\"people\\\"] {\\n\\t\\t\\tflex: 1 1 0;\\n\\t\\t\\tmin-width: 0;\\n\\n\\t\\t\\t:deep(.v-popper) {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Centre [icon] label; the chevron is pinned to the trailing edge below.\\n\\t\\t\\t:deep(.button-vue__wrapper) {\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// NcActions exposes no dropdown chevron, so paint one at the trailing edge.\\n\\t\\t\\t:deep(.button-vue) {\\n\\t\\t\\t\\tposition: relative;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 6);\\n\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\tinset-inline-end: calc(var(--default-grid-baseline) * 2);\\n\\t\\t\\t\\t\\tinset-block: 0;\\n\\t\\t\\t\\t\\tmargin-block: auto;\\n\\t\\t\\t\\t\\twidth: 16px;\\n\\t\\t\\t\\t\\theight: 16px;\\n\\t\\t\\t\\t\\tbackground-color: currentColor;\\n\\t\\t\\t\\t\\tmask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E\\\");\\n\\t\\t\\t\\t\\tmask-repeat: no-repeat;\\n\\t\\t\\t\\t\\tmask-position: center;\\n\\t\\t\\t\\t\\tmask-size: contain;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__filters-applied {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t}\\n\\n\\t&__no-content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\t// min-height (not fixed) so the panel grows to keep the button inside, not spilling past the edge.\\n\\t\\tmin-height: 200px;\\n\\t\\t// Match the results container's inset so the button lines up, not flush to the edges.\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\tpadding-block-end: calc(var(--default-grid-baseline) * 4);\\n\\t}\\n\\n\\t// Detail-view chrome: the back control sits above the category's heading + list.\\n\\t&__detail-header {\\n\\t\\t// Three tracks: \\\"Back\\\" at the start, title centred, empty end track to balance it.\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 1fr auto 1fr;\\n\\t\\talign-items: center;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\t// Sticky at the top of the scrolling results. Background hides rows underneath; padding\\n\\t\\t// (not margin) stops bleed-through above.\\n\\t\\tposition: sticky;\\n\\t\\ttop: 0;\\n\\t\\tz-index: 1;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tpadding-block: calc(var(--default-grid-baseline) * 3) calc(var(--default-grid-baseline) * 2);\\n\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__detail-back {\\n\\t\\tjustify-self: start;\\n\\t}\\n\\n\\t&__detail-title {\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tfont-weight: var(--font-weight-heading);\\n\\t\\tgrid-column: 2;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-block-start: -3px;\\n\\t\\t// Centre the text the same way the Back button centres its label: stretch to the row\\n\\t\\t// height and flex-centre, instead of a line-height that lands the ink a few px off.\\n\\t\\talign-self: stretch;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t// End-of-list (and empty-state) connected-services opt-in.\\n\\t&__connected-services {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\t// Stretch to panel width so the wide button fills it (the empty-state's centred column\\n\\t\\t// would otherwise shrink it to content width).\\n\\t\\twidth: 100%;\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline) * 3);\\n\\t}\\n\\n\\t// Directional glyphs (back arrow, more-from chevron) point the other way in RTL.\\n\\t// :dir(rtl) tracks the computed direction, unlike an [dir=rtl] attribute selector.\\n\\t&__rtl-icon:dir(rtl) {\\n\\t\\ttransform: scaleX(-1);\\n\\t}\\n\\n\\t&__results {\\n\\t\\t// Take the remaining panel height and scroll internally (container has a max-height)\\n\\t\\tflex: 1 1 auto;\\n\\t\\tmin-height: 0;\\n\\t\\toverflow: hidden auto;\\n\\t\\t// Adjust padding to match container but keep the scrollbar on the very end\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4);\\n\\t\\tpadding-block: 0 calc(var(--default-grid-baseline) * 4);\\n\\n\\t\\t.result {\\n\\t\\t\\t&-title {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t// 14px is not a grid multiple; kept raw rather than mixing units in one shorthand.\\n\\t\\t\\t\\tmargin-block: 14px 4px;\\n\\t\\t\\t\\tmargin-inline-start: calc(var(--default-grid-baseline) * 2);\\n\\t\\t\\t}\\n\\n\\t\\t\\t// The overflow heading is a real button; match the plain title's size and colour,\\n\\t\\t\\t// but leave it NcButton's own --font-weight-element weight.\\n\\t\\t\\t&-title--more {\\n\\t\\t\\t\\tmargin-block: calc(var(--default-grid-baseline) * 2) var(--default-grid-baseline);\\n\\n\\t\\t\\t\\t:deep(.button-vue__text) {\\n\\t\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t:deep(.button-vue__icon) {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-footer {\\n\\t\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--unfiltered {\\n\\t\\t\\t\\topacity: 0.7;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__unfiltered-header {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 2px;\\n\\t\\tmargin-block: 16px 8px;\\n\\t\\tpadding-block: 12px 0;\\n\\n\\t\\t// Divide the partial matches from the results above, but only when some precede\\n\\t\\t// them: when they lead the list this rule lands just under the header's own\\n\\t\\t// divider, and the two read as one double line.\\n\\t\\t.result-group + .result-group > & {\\n\\t\\t\\tborder-block-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__unfiltered-label {\\n\\t\\tfont-weight: var(--font-weight-heading);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\\n.filter-button__icon {\\n\\theight: 20px;\\n\\twidth: 20px;\\n\\tobject-fit: contain;\\n\\tfilter: var(--background-invert-if-bright);\\n\\tpadding: 11px; // align with text to fit at least 44px\\n}\\n\\n// Ensure modal is accessible on small devices\\n@media only screen and (max-height: 400px) {\\n\\t.unified-search-modal__results {\\n\\t\\toverflow: unset;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-menu[data-v-44547071]{position:relative;display:flex;align-items:center;justify-content:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnifiedSearch.vue\"],\"names\":[],\"mappings\":\"AAEA,sCAEC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n// this is needed to allow us overriding component styles (focus-visible)\\n.unified-search-menu {\\n\\t// Positioning context so the results popover can anchor under the input\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6776;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t6776: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(87444)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","vue_material_design_icons_FilterVariantvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","FilterVariant","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","vue_material_design_icons_Magnifyvue_type_script_lang_js","Magnify","UnifiedSearch_UnifiedSearchInputvue_type_script_setup_true_lang_ts","_defineComponent","__name","expanded","Boolean","activeDescendantId","query","loading","filtersRevealed","setup","__props","expose","emit","isSmallMobile","useIsSmallMobile","placeholderText","t","directionByKey","ArrowDown","ArrowUp","fieldRef","ref","inputRef","isFocused","isActive","computed","value","length","showFunnel","focus","__sfc","resultsContainerId","onFocusOut","event","contains","relatedTarget","onMouseDown","target","preventDefault","onInput","openFilters","clearOrClose","focused","document","activeElement","blur","onKeyDown","isComposing","key","direction","l10n_dist","NcButton","NcHeaderButton","NcHeaderButton_MEyDJghO","N","NcKbd","NcKbd_CXJA9sCj","NcLoadingIcon","IconClose","Close","IconFilterVariant","IconMagnify","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","UnifiedSearchInputvue_type_style_index_0_id_59e94aec_prod_lang_scss_scoped_true","locals","UnifiedSearchInput","_setup","_setupProxy","class","id","ariaLabel","scopedSlots","_u","fn","proxy","focusin","focusout","mousedown","undefined","domProps","input","keydown","variant","symbol","UnifiedSearch_UnifiedSearchLocalSearchBarvue_type_script_lang_ts_setup_true","open","_useCssVars","dfb017de","searchGlobalButtonCSSWidth","searchInput","watchEffect","isMobile","useIsMobile","searchGlobalButton","searchGlobalButtonWidth","useElementSize","clearAndCloseSearch","mdiClose","mdi","hyP","mdiCloudSearchOutline","ydM","Tl","NcIconSvgWrapper","NcInputField","UnifiedSearchLocalSearchBarvue_type_style_index_0_id_2b577e50_prod_scoped_true_lang_scss_options","UnifiedSearchLocalSearchBarvue_type_style_index_0_id_2b577e50_prod_scoped_true_lang_scss","UnifiedSearchLocalSearchBar","placeholder","path","vue_material_design_icons_AccountMultipleOutlinevue_type_script_lang_js","AccountMultipleOutline","vue_material_design_icons_ArrowLeftvue_type_script_lang_js","ArrowLeft","vue_material_design_icons_CalendarBlankOutlinevue_type_script_lang_js","CalendarBlankOutline","vue_material_design_icons_Filtervue_type_script_lang_js","Filter","vue_material_design_icons_ShapeOutlinevue_type_script_lang_js","ShapeOutline","vue_material_design_icons_CalendarRangevue_type_script_lang_js","CalendarRange","UnifiedSearch_CustomDateRangeModalvue_type_script_lang_js","components","NcModal","CalendarRangeIcon","NcDateTimePicker","isOpen","required","data","dateFilter","startFrom","endAt","isModalOpen","get","set","methods","closeModal","applyCustomRange","CustomDateRangeModalvue_type_style_index_0_id_2907014b_prod_lang_scss_scoped_true_options","CustomDateRangeModalvue_type_style_index_0_id_2907014b_prod_lang_scss_scoped_true","CustomDateRangeModal","show","close","label","model","callback","$$v","$set","expression","vue_material_design_icons_AlertCircleOutlinevue_type_script_lang_js","AlertCircleOutline","UnifiedSearch_SearchableListvue_type_script_lang_js","IconAlertCircleOutline","NcAvatar","NcEmptyContent","NcPopover","NcTextField","labelText","searchList","Array","emptyContentText","opened","error","searchTerm","filteredList","filter","element","toLowerCase","some","prop","includes","clearSearch","setOpened","itemSelected","searchTermChanged","term","SearchableListvue_type_style_index_0_id_66bd6570_prod_lang_scss_scoped_true_options","SearchableListvue_type_style_index_0_id_66bd6570_prod_lang_scss_scoped_true","SearchableList","shown","hide","_t","_l","displayName","alignment","wide","isUser","user","UnifiedSearch_SearchFilterChipvue_type_script_lang_js","CloseIcon","text","pretext","removeLabel","deleteChip","SearchFilterChipvue_type_style_index_0_id_5a4f6249_prod_lang_scss_scoped_true_options","SearchFilterChipvue_type_style_index_0_id_5a4f6249_prod_lang_scss_scoped_true","SearchFilterChip","components_AppIconvue_type_script_setup_true_lang_ts","icon","outlined","iconStyle","replace","AppIconvue_type_style_index_0_id_42bb03fc_prod_scoped_true_lang_scss_options","AppIconvue_type_style_index_0_id_42bb03fc_prod_scoped_true_lang_scss","UnifiedSearch_SearchResultvue_type_script_lang_js","AppIcon","style","NcListItem","thumbnailUrl","subline","resourceUrl","rounded","elementId","active","thumbnailHasError","hasThumbnail","isValidIconOrPreviewUrl","iconIsUrl","isAppIcon","watch","url","test","startsWith","thumbnailErrorHandler","SearchResultvue_type_style_index_0_id_516c3939_prod_lang_scss_scoped_true_options","SearchResultvue_type_style_index_0_id_516c3939_prod_lang_scss_scoped_true","SearchResult","bold","href","src","alt","logger","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","unifiedSearchLogger","detectUser","async","getProviders","axios","generateOcsUrl","params","from","window","location","pathname","search","ocs","isArray","cursor","since","until","limit","person","extraQueries","cancelToken","CancelToken","source","request","token","cancel","getContacts","contacts","post","generateUrl","authenticatedUser","fullName","emailAddresses","unshift","UnifiedSearchController","constructor","onChange","_defineProperty","categories","cancelPendingRequests","searchStates","revealOrder","searchGeneration","generation","startRevealTimer","Promise","allSettled","map","category","searchCategory","loadMore","categoryState","hasMore","status","patchStates","loadMoreFailed","unifiedSearch","pendingCancels","push","response","entries","isPaginated","reachedEnd","hasMorePages","getSnapshot","getRevealOrder","dispose","stopBackgroundWork","reset","shouldBlockCategory","reconcileCategoryStatuses","forEach","stopRevealTimer","revealWindowOpen","revealTimer","setTimeout","unblockAllCategories","Object","keys","clearTimeout","slice","indexOf","c","syncRevealOrder","state","at","visible","isCategoryVisible","splice","next","useSearchStore","defineStore","externalFilters","actions","registerExternalFilter","appId","searchFrom","isPluginFilter","UnifiedSearchModalvue_type_script_lang_ts","defineComponent","IconAccountMultipleOutline","IconArrowLeft","IconArrowRight","ArrowRight","IconCalendarBlankOutline","IconDotsHorizontal","DotsHorizontal","IconFilter","IconShapeOutline","FilterChip","NcActions","NcActionButton","localSearch","currentLocation","useBrowserLocation","searchStore","shallowRef","controller","states","onUnmounted","useUnifiedSearch","providers","providerActionMenuIsOpen","dateActionMenuIsOpen","personFilter","filteredProviders","searchQuery","placessearchTerm","dateTimeFilter","filters","showDateRangeModal","initialized","pendingSearch","searchExternalResources","detailCategory","activeIndex","minSearchLength","loadState","focusTrap","isEmptySearch","providerFilterActive","dateFilterActive","personFilterActive","hasAnyActiveFilter","showFilterRow","showHeader","searching","values","isBusy","isSearchQueryTooShort","hasNoResults","results","showEmptyContentInfo","emptyContentMessage","n","userContacts","debouncedFind","debounce","find","debouncedFilterContacts","filterContacts","hasExternalResources","provider","isExternalProvider","hasContentFilters","contentFilterTypes","providerId","p","supportsActiveFilters","providerIsCompatibleWithFilters","filteredResults","isInFolderAtRoot","result","extraParams","filteredResultUrls","urls","Set","entry","add","unfilteredResults","has","detailGroup","group","renderedGroups","toRenderedGroup","index","showConnectedServicesButton","connectedServicesLabel","navigableRows","rows","rowElementId","unfiltered","activeRow","liveMessage","hasVisibleResults","addEventListener","onEscapeKey","$nextTick","activateFocusTrap","all","then","groupProvidersByApp","mapContacts","debug","catch","clear","removeEventListener","deactivateFocusTrap","immediate","handler","scheduleSearch","deep","closeDetailView","$refs","resultsContainer","scrollTop","previous","reconcileActiveIndex","busy","scrollActiveIntoView","mounted","subscribe","handlePluginFilter","onUpdateOpen","onScrimClick","onMobileSearchInput","stack","_nc_focus_trap","panel","menu","$el","closest","inputContainer","querySelector","containers","markRaw","createFocusTrap","initialFocus","escapeDeactivates","allowOutsideClick","trapStack","activate","returnFocus","deactivate","searchLocally","searchable","buildCategoryParams","toISOString","contact","isNoUser","subname","applyPersonFilter","existingPersonFilter","findIndex","loadMoreResultsForProvider","section","showPartialHeader","detail","overflow","inAppSearch","headingId","openDetailView","focusSearchInput","mobileInput","headerInput","toggleExternalResources","addProviderFilter","providerFilter","isProviderFilterApplied","existingFilterIndex","existing","syncProviderFilters","removeFilter","i","firstArray","secondArray","synchronizedArray","item","itemId","secondItem","updateDateFilter","currFilterIndex","applyQuickDateRange","range","today","Date","startDate","endDate","getFullYear","getMonth","getDate","setCustomDateRange","toLocaleDateString","getCanonicalLocale","addFilterEvent","filterUpdateText","compatibleProviderIndex","filterParams","groupedByProviderApp","flattenedArray","filterIds","baseProvider","every","filterId","enableAllProviders","_","disabled","moveActive","count","current","Math","min","max","activateActive","row","openResourceUrl","assign","getElementById","scrollIntoView","block","selectedId","UnifiedSearch_UnifiedSearchModalvue_type_script_lang_ts","UnifiedSearchModalvue_type_style_index_0_id_f77795fc_prod_lang_scss_scoped_true_options","UnifiedSearchModalvue_type_style_index_0_id_f77795fc_prod_lang_scss_scoped_true","UnifiedSearchModal","appear","directives","rawName","modelValue","showTrailingButton","trailingButtonLabel","closeAfterClick","pressed","delete","disableMenu","hideStatus","hideFavorite","views_UnifiedSearchvue_type_script_lang_ts","queryText","showUnifiedSearch","showLocalSearch","debouncedQueryUpdate","emitUpdatedQuery","supportsLocalSearch","appHandlesSearchShortcut","OCP","Accessibility","disableKeyboardShortcuts","beforeDestroy","ctrlKey","toggleUnifiedSearch","isSearchEngaged","focusSearch","metaKey","openModal","focusInput","el","onNavigate","modal","searchModal","onActivate","onOpenFilters","onClose","UnifiedSearchvue_type_style_index_0_id_44547071_prod_lang_scss_scoped_true_options","UnifiedSearchvue_type_style_index_0_id_44547071_prod_lang_scss_scoped_true","UnifiedSearch","navigate","globalSearch","__webpack_nonce__","getCSPNonce","Vue","mixin","OCA","registerFilterAction","use","PiniaVuePlugin","pinia","createPinia","unified_search_pinia","render","h","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","___CSS_LOADER_URL_IMPORT_0___","URL","__webpack_require__","b","___CSS_LOADER_URL_REPLACEMENT_0___","_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default","__webpack_module_cache__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","r","getter","__esModule","a","definition","o","defineProperty","enumerable","e","resolve","obj","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","baseURI","self","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file