@esri/hub-common 9.44.0 → 9.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/es2017/search/Collection.js +3 -0
  2. package/dist/es2017/search/Collection.js.map +1 -1
  3. package/dist/es2017/search/_internal/portalSearchItems.js +5 -1
  4. package/dist/es2017/search/_internal/portalSearchItems.js.map +1 -1
  5. package/dist/es2017/search/_internal/portalSearchUtils.js +22 -0
  6. package/dist/es2017/search/_internal/portalSearchUtils.js.map +1 -0
  7. package/dist/es2017/search/convertCatalog.js +20 -19
  8. package/dist/es2017/search/convertCatalog.js.map +1 -1
  9. package/dist/es2017/search/hubSearch.js +9 -0
  10. package/dist/es2017/search/hubSearch.js.map +1 -1
  11. package/dist/es2017/search/types/IHubAggregation.js +1 -0
  12. package/dist/es2017/search/types/IHubAggregation.js.map +1 -0
  13. package/dist/es2017/search/types/index.js +1 -0
  14. package/dist/es2017/search/types/index.js.map +1 -1
  15. package/dist/esm/search/Collection.js +7 -0
  16. package/dist/esm/search/Collection.js.map +1 -1
  17. package/dist/esm/search/_internal/portalSearchItems.js +4 -1
  18. package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
  19. package/dist/esm/search/_internal/portalSearchUtils.js +22 -0
  20. package/dist/esm/search/_internal/portalSearchUtils.js.map +1 -0
  21. package/dist/esm/search/convertCatalog.js +20 -19
  22. package/dist/esm/search/convertCatalog.js.map +1 -1
  23. package/dist/esm/search/hubSearch.js +9 -0
  24. package/dist/esm/search/hubSearch.js.map +1 -1
  25. package/dist/esm/search/types/IHubAggregation.js +1 -0
  26. package/dist/esm/search/types/IHubAggregation.js.map +1 -0
  27. package/dist/esm/search/types/index.js +1 -0
  28. package/dist/esm/search/types/index.js.map +1 -1
  29. package/dist/node/search/Collection.js +3 -0
  30. package/dist/node/search/Collection.js.map +1 -1
  31. package/dist/node/search/_internal/portalSearchItems.js +5 -1
  32. package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
  33. package/dist/node/search/_internal/portalSearchUtils.js +26 -0
  34. package/dist/node/search/_internal/portalSearchUtils.js.map +1 -0
  35. package/dist/node/search/convertCatalog.js +20 -19
  36. package/dist/node/search/convertCatalog.js.map +1 -1
  37. package/dist/node/search/hubSearch.js +9 -0
  38. package/dist/node/search/hubSearch.js.map +1 -1
  39. package/dist/node/search/types/IHubAggregation.js +3 -0
  40. package/dist/node/search/types/IHubAggregation.js.map +1 -0
  41. package/dist/node/search/types/index.js +1 -0
  42. package/dist/node/search/types/index.js.map +1 -1
  43. package/dist/types/core/types/IHubTimeline.d.ts +0 -5
  44. package/dist/types/search/Collection.d.ts +2 -1
  45. package/dist/types/search/_internal/portalSearchUtils.d.ts +9 -0
  46. package/dist/types/search/convertCatalog.d.ts +2 -2
  47. package/dist/types/search/hubSearch.d.ts +9 -0
  48. package/dist/types/search/types/IHubAggregation.d.ts +11 -0
  49. package/dist/types/search/types/IHubCatalog.d.ts +10 -1
  50. package/dist/types/search/types/IHubSearchResponse.d.ts +2 -0
  51. package/dist/types/search/types/index.d.ts +1 -0
  52. package/dist/umd/common.umd.js +55 -21
  53. package/dist/umd/common.umd.js.map +1 -1
  54. package/package.json +1 -1
@@ -7,29 +7,30 @@ const __1 = require("..");
7
7
  * @param original
8
8
  */
9
9
  function convertCatalog(original) {
10
- const filterGroup = {
11
- filterType: "item",
12
- operation: "OR",
13
- filters: [],
14
- };
15
- const groups = __1.getProp(original, "groups");
16
- if (Array.isArray(groups) && groups.length) {
17
- filterGroup.filters.push({
18
- filterType: "item",
19
- group: groups,
20
- });
21
- }
22
- else if (typeof groups === "string") {
23
- filterGroup.filters.push({
24
- filterType: "item",
25
- group: [groups],
26
- });
27
- }
28
10
  const catalog = {
11
+ schemaVersion: 1,
29
12
  title: "Default Catalog",
30
- scope: [filterGroup],
13
+ scopes: {
14
+ item: {
15
+ targetEntity: "item",
16
+ filters: [],
17
+ },
18
+ },
31
19
  collections: [],
32
20
  };
21
+ const rawGroups = __1.getProp(original, "groups");
22
+ let groups = [];
23
+ if (Array.isArray(rawGroups) && rawGroups.length) {
24
+ groups = rawGroups;
25
+ }
26
+ else if (typeof rawGroups === "string") {
27
+ groups = [rawGroups];
28
+ }
29
+ if (groups.length) {
30
+ catalog.scopes.item.filters.push({
31
+ predicates: [{ group: groups }],
32
+ });
33
+ }
33
34
  return catalog;
34
35
  }
35
36
  exports.convertCatalog = convertCatalog;
@@ -1 +1 @@
1
- {"version":3,"file":"convertCatalog.js","sourceRoot":"","sources":["../../../src/search/convertCatalog.ts"],"names":[],"mappings":";;;AAAA,0BAA6B;AAG7B;;;GAGG;AACH,SAAgB,cAAc,CAAC,QAAa;IAC1C,MAAM,WAAW,GAAyB;QACxC,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,MAAM,MAAM,GAAG,WAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;QAC1C,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;KACJ;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACrC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,CAAC,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ;IAED,MAAM,OAAO,GAAa;QACxB,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,CAAC,WAAW,CAAC;QACpB,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AA5BD,wCA4BC"}
1
+ {"version":3,"file":"convertCatalog.js","sourceRoot":"","sources":["../../../src/search/convertCatalog.ts"],"names":[],"mappings":";;;AAAA,0BAA6B;AAG7B;;;GAGG;AACH,SAAgB,cAAc,CAAC,QAAa;IAC1C,MAAM,OAAO,GAAgB;QAC3B,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,YAAY,EAAE,MAAM;gBACpB,OAAO,EAAE,EAAE;aACZ;SACF;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,SAAS,GAAG,WAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;QAChD,MAAM,GAAG,SAAS,CAAC;KACpB;SAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACxC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;KACtB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAChC,CAAC,CAAC;KACJ;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA5BD,wCA4BC"}
@@ -52,6 +52,15 @@ async function hubSearch(filterGroups, options) {
52
52
  return fn(util_1.cloneObject(filterGroups), options);
53
53
  }
54
54
  exports.hubSearch = hubSearch;
55
+ /**
56
+ * Main entrypoint for searching via Hub
57
+ *
58
+ * Default's to search ArcGIS Portal but can delegate
59
+ * to Hub API when it's available.
60
+ * @param query
61
+ * @param options
62
+ * @returns
63
+ */
55
64
  async function hubSearchQuery(query, options) {
56
65
  // Validate inputs
57
66
  if (!query) {
@@ -1 +1 @@
1
- {"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IHubAggregation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubAggregation.js","sourceRoot":"","sources":["../../../../src/search/types/IHubAggregation.ts"],"names":[],"mappings":""}
@@ -5,6 +5,7 @@ tslib_1.__exportStar(require("./ICatalog"), exports);
5
5
  tslib_1.__exportStar(require("./ICollection"), exports);
6
6
  tslib_1.__exportStar(require("./IFacet"), exports);
7
7
  tslib_1.__exportStar(require("./IFacetOption"), exports);
8
+ tslib_1.__exportStar(require("./IHubAggregation"), exports);
8
9
  tslib_1.__exportStar(require("./IHubApiSearchRequest"), exports);
9
10
  tslib_1.__exportStar(require("./IHubSearchOptions"), exports);
10
11
  tslib_1.__exportStar(require("./IHubSearchResult"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/types/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,wDAA8B;AAC9B,mDAAyB;AACzB,yDAA+B;AAC/B,iEAAuC;AACvC,8DAAoC;AACpC,6DAAmC;AACnC,+DAAqC;AACrC,kDAAwB;AACxB,wDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/types/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,wDAA8B;AAC9B,mDAAyB;AACzB,yDAA+B;AAC/B,4DAAkC;AAClC,iEAAuC;AACvC,8DAAoC;AACpC,6DAAmC;AACnC,+DAAqC;AACrC,kDAAwB;AACxB,wDAA8B"}
@@ -31,9 +31,4 @@ export interface IHubStage {
31
31
  * Stage status
32
32
  */
33
33
  status: string;
34
- /**
35
- * Icon Name
36
- */
37
- icon: string;
38
- isEditing?: boolean;
39
34
  }
@@ -1,5 +1,5 @@
1
1
  import { IArcGISContext } from "..";
2
- import { IHubCollection, IHubSearchOptions, IHubSearchResponse, IHubSearchResult, IQuery } from "./types";
2
+ import { EntityType, IHubCollection, IHubSearchOptions, IHubSearchResponse, IHubSearchResult, IQuery } from "./types";
3
3
  /**
4
4
  * Implements Collection behavior
5
5
  */
@@ -14,5 +14,6 @@ export declare class Collection implements IHubCollection {
14
14
  get scope(): IQuery;
15
15
  get sortField(): string;
16
16
  get sortDirection(): "asc" | "desc";
17
+ get targetEntity(): EntityType;
17
18
  search(query: string | IQuery, options?: IHubSearchOptions): Promise<IHubSearchResponse<IHubSearchResult>>;
18
19
  }
@@ -0,0 +1,9 @@
1
+ import { ISearchResult } from "@esri/arcgis-rest-portal";
2
+ import { IHubAggregation } from "../types";
3
+ /**
4
+ * @private
5
+ * Convert a portal aggregation structure into the HubAggregations structure
6
+ * @param searchResults
7
+ * @returns
8
+ */
9
+ export declare function convertPortalAggregations<T>(searchResults: ISearchResult<T>): IHubAggregation[];
@@ -1,6 +1,6 @@
1
- import { ICatalog } from "./types";
1
+ import { IHubCatalog } from "./types";
2
2
  /**
3
3
  * Convert the original site catalog structure into a formal ICatalog
4
4
  * @param original
5
5
  */
6
- export declare function convertCatalog(original: any): ICatalog;
6
+ export declare function convertCatalog(original: any): IHubCatalog;
@@ -9,4 +9,13 @@ import { IFilterGroup, FilterType, IHubSearchOptions, IHubSearchResponse, IHubSe
9
9
  * @returns
10
10
  */
11
11
  export declare function hubSearch(filterGroups: Array<IFilterGroup<FilterType>>, options: IHubSearchOptions): Promise<IHubSearchResponse<IHubSearchResult>>;
12
+ /**
13
+ * Main entrypoint for searching via Hub
14
+ *
15
+ * Default's to search ArcGIS Portal but can delegate
16
+ * to Hub API when it's available.
17
+ * @param query
18
+ * @param options
19
+ * @returns
20
+ */
12
21
  export declare function hubSearchQuery(query: IQuery, options: IHubSearchOptions): Promise<IHubSearchResponse<IHubSearchResult>>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Structure for Search Aggregations in ArcGIS Hub
3
+ */
4
+ export interface IHubAggregation {
5
+ mode: string;
6
+ field: string;
7
+ values: Array<{
8
+ value: any;
9
+ count: number;
10
+ }>;
11
+ }
@@ -11,8 +11,12 @@ export interface IHubCatalog {
11
11
  * Collections within the Catalog
12
12
  */
13
13
  collections?: IHubCollection[];
14
+ /**
15
+ * Schema Version
16
+ */
17
+ schemaVersion: number;
14
18
  }
15
- export interface ICatalogScope extends Record<EntityType, IQuery> {
19
+ export interface ICatalogScope extends Partial<Record<EntityType, IQuery>> {
16
20
  }
17
21
  export interface IHubCollection {
18
22
  /**
@@ -39,6 +43,11 @@ export interface IHubCollection {
39
43
  * Default sort direction for the Collection
40
44
  */
41
45
  sortDirection?: "asc" | "desc";
46
+ /**
47
+ * What entity is this query targeting. This is used internally to
48
+ * ensure we query the correct API
49
+ */
50
+ targetEntity: EntityType;
42
51
  }
43
52
  export declare type EntityType = "item" | "group" | "user" | "groupMember" | "event";
44
53
  export interface IQuery {
@@ -1,4 +1,5 @@
1
1
  import { IFacet } from "./IFacet";
2
+ import { IHubAggregation } from "./IHubAggregation";
2
3
  /**
3
4
  * Defines a generic search response interface with parameterized result type
4
5
  * for different types of searches
@@ -13,5 +14,6 @@ export interface IHubSearchResponse<T> {
13
14
  results: T[];
14
15
  hasNext: boolean;
15
16
  next: (params?: any) => Promise<IHubSearchResponse<T>>;
17
+ aggregations?: IHubAggregation[];
16
18
  facets?: IFacet[];
17
19
  }
@@ -2,6 +2,7 @@ export * from "./ICatalog";
2
2
  export * from "./ICollection";
3
3
  export * from "./IFacet";
4
4
  export * from "./IFacetOption";
5
+ export * from "./IHubAggregation";
5
6
  export * from "./IHubApiSearchRequest";
6
7
  export * from "./IHubSearchOptions";
7
8
  export * from "./IHubSearchResult";
@@ -1,5 +1,5 @@
1
1
  /* @preserve
2
- * @esri/hub-common - v9.43.3 - Fri Jun 24 2022 18:21:01 GMT+0000 (Coordinated Universal Time)
2
+ * @esri/hub-common - v9.45.0 - Tue Jun 28 2022 18:49:00 GMT+0000 (Coordinated Universal Time)
3
3
  * Copyright (c) 2022 Environmental Systems Research Institute, Inc.
4
4
  * Apache-2.0
5
5
  */
@@ -14948,29 +14948,30 @@
14948
14948
  * @param original
14949
14949
  */
14950
14950
  function convertCatalog(original) {
14951
- var filterGroup = {
14952
- filterType: "item",
14953
- operation: "OR",
14954
- filters: [],
14955
- };
14956
- var groups = getProp(original, "groups");
14957
- if (Array.isArray(groups) && groups.length) {
14958
- filterGroup.filters.push({
14959
- filterType: "item",
14960
- group: groups,
14961
- });
14962
- }
14963
- else if (typeof groups === "string") {
14964
- filterGroup.filters.push({
14965
- filterType: "item",
14966
- group: [groups],
14967
- });
14968
- }
14969
14951
  var catalog = {
14952
+ schemaVersion: 1,
14970
14953
  title: "Default Catalog",
14971
- scope: [filterGroup],
14954
+ scopes: {
14955
+ item: {
14956
+ targetEntity: "item",
14957
+ filters: [],
14958
+ },
14959
+ },
14972
14960
  collections: [],
14973
14961
  };
14962
+ var rawGroups = getProp(original, "groups");
14963
+ var groups = [];
14964
+ if (Array.isArray(rawGroups) && rawGroups.length) {
14965
+ groups = rawGroups;
14966
+ }
14967
+ else if (typeof rawGroups === "string") {
14968
+ groups = [rawGroups];
14969
+ }
14970
+ if (groups.length) {
14971
+ catalog.scopes.item.filters.push({
14972
+ predicates: [{ group: groups }],
14973
+ });
14974
+ }
14974
14975
  return catalog;
14975
14976
  }
14976
14977
 
@@ -18066,6 +18067,28 @@
18066
18067
  }
18067
18068
  }
18068
18069
 
18070
+ /**
18071
+ * @private
18072
+ * Convert a portal aggregation structure into the HubAggregations structure
18073
+ * @param searchResults
18074
+ * @returns
18075
+ */
18076
+ function convertPortalAggregations(searchResults) {
18077
+ var _a;
18078
+ if ((_a = searchResults.aggregations) === null || _a === void 0 ? void 0 : _a.counts) {
18079
+ return searchResults.aggregations.counts.map(function (entry) {
18080
+ return {
18081
+ mode: "terms",
18082
+ field: entry.fieldName,
18083
+ values: entry.fieldValues,
18084
+ };
18085
+ });
18086
+ }
18087
+ else {
18088
+ return [];
18089
+ }
18090
+ }
18091
+
18069
18092
  /**
18070
18093
  * @private
18071
18094
  * DEPRECATED
@@ -18176,7 +18199,7 @@
18176
18199
  */
18177
18200
  function searchPortal$2(searchOptions) {
18178
18201
  return __awaiter(this, void 0, void 0, function () {
18179
- var resp, fn, results, facets;
18202
+ var resp, fn, results, facets, aggregations;
18180
18203
  return __generator(this, function (_a) {
18181
18204
  switch (_a.label) {
18182
18205
  case 0: return [4 /*yield*/, searchItems(searchOptions)];
@@ -18189,11 +18212,13 @@
18189
18212
  case 2:
18190
18213
  results = _a.sent();
18191
18214
  facets = convertPortalItemResponseToFacets(resp);
18215
+ aggregations = convertPortalAggregations(resp);
18192
18216
  // Construct the return
18193
18217
  return [2 /*return*/, {
18194
18218
  total: resp.total,
18195
18219
  results: results,
18196
18220
  facets: facets,
18221
+ aggregations: aggregations,
18197
18222
  hasNext: resp.nextStart > -1,
18198
18223
  next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal$2),
18199
18224
  }];
@@ -19046,6 +19071,15 @@
19046
19071
  });
19047
19072
  });
19048
19073
  }
19074
+ /**
19075
+ * Main entrypoint for searching via Hub
19076
+ *
19077
+ * Default's to search ArcGIS Portal but can delegate
19078
+ * to Hub API when it's available.
19079
+ * @param query
19080
+ * @param options
19081
+ * @returns
19082
+ */
19049
19083
  function hubSearchQuery(query, options) {
19050
19084
  return __awaiter(this, void 0, void 0, function () {
19051
19085
  var filterType, apiType, fnHash, fn;