/// import type { PublicLitElement as LitElement } from "@arcgis/lumina"; import type { DeployAppTab, IFilterOption, IFilterSetting, IScopeSearchSortSettings, ISearchOption, SortType } from "../../utils/interfaces.js"; import type { T9nMeta } from "@arcgis/lumina/controllers"; export abstract class SolutionsSearchSortToolbar extends LitElement { /** * Contains the translations for this component. * All UI strings should be defined here. * * @internal */ protected _translations: { chooseSortType: string; filterBy: string; mySolutions: string; myOrgSolutions: string; showFilters: string; sortByRelevance: string; sortByTitle: string; sortByNew: string; sortByDateDeployed: string; sortByUpdated: string; sortBySuggestedForYou: string; search: { solutions: string; deployments: string; }; } & T9nMeta<{ chooseSortType: string; filterBy: string; mySolutions: string; myOrgSolutions: string; showFilters: string; sortByRelevance: string; sortByTitle: string; sortByNew: string; sortByDateDeployed: string; sortByUpdated: string; sortBySuggestedForYou: string; search: { solutions: string; deployments: string; }; }>; /** * The default type to sort solutions by * * @default 'relevance' */ accessor defaultSortType: SortType; /** * Determines if the Owner section should be shown. * * @default false */ accessor isOrgSolutions: boolean; /** The enviornment on which to perform search or sort */ accessor scope: DeployAppTab | undefined; /** * Changes the filter to show only solutions that the user owns or the solutions within the organization. * This function is only available when the application is in the Deployments view. * * @param isMySolutions - Flag to show user's solution or organization's solutions. */ changeOwnerFilter(isMySolutions: boolean): void; /** * Filters the solutions by a text search phrase. * * @param searchTerm - the string lookup solutions by. * @param emit - (Optional) Flag whether to emit. useful when you don't want to emit multiple times for example in clear filter. * @param startTelemetryTimer - (Optional) Flag whether to start the telemetry debounce timer. */ changeSearchFilter(searchTerm: string, emit?: boolean, startTelemetryTimer?: boolean): void; /** * Change the user selected sort type * * @param sortType - the string to sort by. Valid values are 'relevance' | 'title' | 'new' | 'updated' | 'suggested' | 'created'. * @param emit - when true the sortTypeChanged event will be emitted and a new search will be fired * when false only the current settings will be updated to support url params */ sortChanged(sortType: SortType, emit: boolean): void; /** The event that gets emitted after any filter option has changed. */ readonly searchChanged: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the sort type changes */ readonly sortTypeChanged: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the filter button is clicked in mobile */ readonly toggleFilter: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when navigating between tabs in the app */ readonly updateUrlParams: import("@arcgis/lumina").TargetedEvent; readonly "@eventTypes": { searchChanged: SolutionsSearchSortToolbar["searchChanged"]["detail"]; sortTypeChanged: SolutionsSearchSortToolbar["sortTypeChanged"]["detail"]; toggleFilter: SolutionsSearchSortToolbar["toggleFilter"]["detail"]; updateUrlParams: SolutionsSearchSortToolbar["updateUrlParams"]["detail"]; }; }