ICatalog

Interface

Catalog is the definition which powers what options are available in a Gallery. It controls not only the scoping of the search, but also the options available to the UX.

Thus the lower-level searchContent, searchUser, searchGroup functions do not take Catalogs, rather they accept Filters

const simpleCatalog:Catalog = {
  title: "Select Map",
  filters: [
   {
    fitlerType: "item",
     operation: "AND",
     fitlers
    filterType: "content",
    type: "Web Map",
    owner: "jsmith"
  }
}

Collections

The key feature of a Catalog is the ability to defined Collections. These are essentially sub-sets of content, typically organized around generalized content types, i.e. "Datasets", vs "Maps", vs "Documents"

const complex:Catalog = {
  filter: {
   type: "content",
   groups: ["3ef", "bc4"]
  },
  collections: [
    {
      label: "Documents",
      filter: {
        filterType: "content",
        type: ["Microsoft Word", "PDF", "Microsoft Excel"]
      }
    },
    {
      label: "Datasets",
      filter: {
        filterType: "content",
        type: ["Feature Layer", "Feature Service", "Map Service", "CSV"]
      }
    }
  ]
}

Properties

Property Type Notes
collections Optional ICollection[]

Collections within the Catalog

facets Optional IFacet[]

Facets to use with all Collections

filter Optional Filter<FilterType>

Filter defines the "scope" of the Catalog, typically a set of groups or orgids DEPRECATED: Use scope

scope Optional Array<IFilterGroup<FilterType>>

Scope is a set of FilterGroups which define the limits of the Catalog. Typically it is just a set of group ids, but it may be arbitrarily complex. If one was to "search a catalog", this is the description of what would be returned.

sort Optional ISortOption[]

Sort options to be shown in the Gallery

title Optional string

Title for the Gallery


Interface defined in common/src/search/types/ICatalog.ts:60