Appearance
Search Types ​
File Information ​
- Path:
app/types/search.ts - Purpose: TypeScript interfaces for search composables and components
- Exported From:
~/types(viaindex.ts)
Overview ​
This file contains TypeScript interfaces for search functionality including filters, search results, search components, and Typesense integration. These types ensure type safety for search-related functionality.
Type Definitions ​
Search Filter Types ​
SearchFilterObject ​
Search filter object structure.
typescript
interface SearchFilterObject {
level1: string | null
level2: string | null
level3: any
}Properties:
level1: string | null- First level filterlevel2: string | null- Second level filterlevel3: any- Third level filter value
SearchFilterListItem ​
Search filter list item structure.
typescript
interface SearchFilterListItem {
level1: string
level2?: string
level3?: any
}SearchTag ​
Search tag structure.
typescript
interface SearchTag {
id?: number
tag_name: string
search_name: string
is_select?: boolean
}SearchCustomField ​
Search custom field structure.
typescript
interface SearchCustomField {
id: string | number
field_label: string
}SearchFilterMenuItem ​
Search filter menu item structure.
typescript
interface SearchFilterMenuItem {
label: string
slug: string
icon?: any
is_tooltip?: boolean
tag_name?: string
}Search Filter Component Types ​
SearchFilterProps ​
Search filter component props.
typescript
interface SearchFilterProps {
mainFilterObj: SearchFilterObject
fileTypes: string[]
tagsList: SearchTag[]
filterList: SearchFilterListItem[]
tagsPaginationEnd: boolean
fileTypePaginationEnd: boolean
flag: string
subFlag: string
searchLoading: boolean
}SearchFilterEmits ​
Search filter component emits.
typescript
interface SearchFilterEmits {
(e: 'update-filter-object', filterObject: SearchFilterObject): void
(e: 'update-filter-props', payload: {...}): void
(e: 'update-filter', filterList: SearchFilterListItem[]): void
(e: 'search'): void
(e: 'remove-null-filter'): void
(e: 'menu-closed'): void
(e: 'open'): void
(e: 'onOpen', value: boolean): void
(e: 'reset'): void
}Search Bar Types ​
SearchBarAsset ​
Search bar asset structure.
typescript
interface SearchBarAsset {
id: number
display_file_name: string
thumbnail_file_name?: string
preview_image?: string
}SearchBarHistory ​
Search bar history item.
typescript
interface SearchBarHistory {
id: number
search_text: string
}Search Assets Component Types ​
SearchAssetsAsset ​
Search assets item structure.
typescript
interface SearchAssetsAsset {
id: number
display_file_name: string
file_type?: string
modified_at: number
created_at: number
file_size?: number
is_selected: boolean
is_downloading?: boolean
thumbnail_file?: string
preview_image?: string
display_file?: string
compress_file?: string
download_url?: string
}SearchAssetsDigitalAsset ​
Search digital asset wrapper.
typescript
interface SearchAssetsDigitalAsset {
document: SearchAssetsAsset
}SearchAssetsProps ​
Search assets component props.
typescript
interface SearchAssetsProps {
digitalAssets: SearchAssetsDigitalAsset[]
totalcount?: number
mode?: 'list' | 'grid'
modeshow?: boolean
selected_items?: any[]
checkbox?: boolean
flag?: string
lastIndex?: number
}SearchAssetsEmit ​
Search assets component emits.
typescript
interface SearchAssetsEmit {
(e: 'update:selected_items', value: any[]): void
(e: 'view-all'): void
(e: 'update:mode', value: 'list' | 'grid'): void
(e: 'update-asset:selectedItems', value: any[]): void
(e: 'update-last-index', value: number): void
(e: 'save-search-key'): void
(e: 'save-search-filter'): void
(e: 'track', asset: any): void
}UseSearchAssetsReturn ​
Return type for search assets composable.
typescript
interface UseSearchAssetsReturn {
workspaceId: string | null
localMode: Ref<'list' | 'grid' | undefined>
shareDialog: Ref<boolean>
selectItems: Ref<any[]>
selectedFile: Ref<any>
share_items: Ref<any[]>
download_items: Ref<any[]>
files2share: Ref<any[]>
download_all: Ref<boolean>
share_selection: Ref<boolean>
share_single_item: Ref<boolean>
searchTags: Ref<any[]>
searchRequestBody: Ref<any>
shareSelection: Ref<boolean>
lastSelectedIndex: Ref<number>
fileCardKey: Ref<number>
localDigitalAssets: Ref<SearchAssetsDigitalAsset[]>
getShareTitle: Ref<string>
getShareDescription: Ref<string>
openAsset: (asset: SearchAssetsAsset, openInNewTab?: boolean) => void
formatDateUnix: (date: any) => string
viewAllAssets: () => void
changeView: (viewMode: 'list' | 'grid') => void
toggleSelect: (file: SearchAssetsAsset, index: number, event: any) => void
downloadFile: (flag?: string) => Promise<void>
openShareDialog: (payload?: any[], flag?: string) => void
closeShareAssetDialog: () => void
changeMode: (newMode: 'list' | 'grid') => void
toHumanlySize: (size: number | string) => string
getSrcPathRef: (asset: any) => string
toggleSelectCard: (file: SearchAssetsAsset, index: number, event: any) => void
}List Level Three Types ​
ListLevelThreeProps ​
List level three component props.
typescript
interface ListLevelThreeProps {
filterObject: SearchFilterObject
fileTypes: any[]
tagsListProp: SearchTag[]
tagsPaginationEnd: boolean
fileTypePaginationEnd: boolean
flag: string
isOpen?: boolean
}ListLevelThreeEmits ​
List level three component emits.
typescript
interface ListLevelThreeEmits {
(e: 'capture-filter', payload: any): void
(e: 'capture-filter-close', payload: any): void
}Added Filter Types ​
AddedFilterObject ​
Added filter object structure.
typescript
interface AddedFilterObject {
level1: string
level2: string
level3: any
}AddedFilterMenuOption ​
Added filter menu option.
typescript
interface AddedFilterMenuOption {
label: string
slug: string
}AddedFilterProps ​
Added filter component props.
typescript
interface AddedFilterProps {
filterItem: AddedFilterObject
fileTypes: any[]
tagsList: any[]
tagsPaginationEnd?: boolean
fileTypePaginationEnd?: boolean
searchLoading?: boolean
flag?: string
}AddedFilterEmits ​
Added filter component emits.
typescript
interface AddedFilterEmits {
(e: 'update-filter-object', value: AddedFilterObject): void
(e: 'update-filter-list', value: { old: AddedFilterObject; new: AddedFilterObject }): void
(e: 'search'): void
(e: 'remove', value: AddedFilterObject): void
(e: 'filter-removed'): void
}Search API Types ​
SearchHistory ​
Search history item.
typescript
interface SearchHistory {
id: number
search_text: string
}SearchApiResponse ​
Search API response structure.
typescript
interface SearchApiResponse {
digital_assets: any
}Search Bulk Actions Types ​
SearchBulkActionsProps ​
Search bulk actions component props.
typescript
interface SearchBulkActionsProps {
selectedItemsCount: number
selectedItems: SelectableItem[]
downloadSlctd?: boolean
}Search Table Header Types ​
SearchTableHeaderColumn ​
Search table header column structure.
typescript
interface SearchTableHeaderColumn {
key: string
label: string
minWidthClass: string
sortingShow?: boolean
}SearchTableHeaderProps ​
Search table header component props.
typescript
interface SearchTableHeaderProps {
columns: SearchTableHeaderColumn[]
sortBy?: string
sortOrder?: 'ASC' | 'DESC'
}Usage Examples ​
Search Filter ​
typescript
import type { SearchFilterObject, SearchTag } from '~/types'
const filterObj: SearchFilterObject = {
level1: 'tags',
level2: 'tag-name',
level3: 'value'
}
const tags: SearchTag[] = [
{ id: 1, tag_name: 'Tag 1', search_name: 'tag-1' },
{ id: 2, tag_name: 'Tag 2', search_name: 'tag-2' }
]Search Assets ​
typescript
import type { SearchAssetsDigitalAsset, SearchAssetsProps } from '~/types'
const digitalAssets: SearchAssetsDigitalAsset[] = [
{
document: {
id: 123,
display_file_name: 'file.jpg',
file_type: 'jpg',
modified_at: 1234567890,
created_at: 1234567890,
is_selected: false
}
}
]
const props: SearchAssetsProps = {
digitalAssets,
mode: 'grid',
checkbox: true
}Related Types ​
SelectableItem- Fromselection.tsRef- From Vue
Import Example ​
typescript
import type {
SearchFilterObject,
SearchTag,
SearchAssetsDigitalAsset,
SearchAssetsProps,
SearchTableHeaderColumn
} from '~/types'Notes ​
- All search types are exported from
~/types - Types support Typesense integration
- Filter types support multi-level filtering
- Component types include props and emits
- Search results wrapped in
documentstructure