@esri/hub-common 9.45.5 → 9.46.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.
- package/dist/es2017/projects/HubProjectManager.js +3 -3
- package/dist/es2017/projects/HubProjectManager.js.map +1 -1
- package/dist/es2017/projects/HubProjects.js +23 -13
- package/dist/es2017/projects/HubProjects.js.map +1 -1
- package/dist/es2017/search/_internal/createQueryFromString.js +22 -0
- package/dist/es2017/search/_internal/createQueryFromString.js.map +1 -0
- package/dist/es2017/search/_internal/hubSearchItems.js +1 -0
- package/dist/es2017/search/_internal/hubSearchItems.js.map +1 -1
- package/dist/es2017/search/_internal/index.js +2 -1
- package/dist/es2017/search/_internal/index.js.map +1 -1
- package/dist/es2017/search/_internal/ipredicate-utils.js +6 -0
- package/dist/es2017/search/_internal/ipredicate-utils.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchGroups.js +1 -1
- package/dist/es2017/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchItems.js +9 -1
- package/dist/es2017/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchUsers.js +1 -1
- package/dist/es2017/search/_internal/portalSearchUsers.js.map +1 -1
- package/dist/es2017/search/_internal/searchEntities.js +73 -0
- package/dist/es2017/search/_internal/searchEntities.js.map +1 -0
- package/dist/es2017/search/_internal/state.js +8 -0
- package/dist/es2017/search/_internal/state.js.map +1 -1
- package/dist/es2017/search/_searchContent.js +1 -0
- package/dist/es2017/search/_searchContent.js.map +1 -1
- package/dist/es2017/search/_searchGroups.js +1 -0
- package/dist/es2017/search/_searchGroups.js.map +1 -1
- package/dist/es2017/search/_searchUsers.js +1 -0
- package/dist/es2017/search/_searchUsers.js.map +1 -1
- package/dist/es2017/search/index.js +1 -1
- package/dist/es2017/search/index.js.map +1 -1
- package/dist/es2017/search/{ifilter-utils.js → serializeQueryForPortal.js} +37 -13
- package/dist/es2017/search/serializeQueryForPortal.js.map +1 -0
- package/dist/es2017/sites/HubSiteManager.js +2 -2
- package/dist/es2017/sites/HubSiteManager.js.map +1 -1
- package/dist/es2017/sites/HubSites.js +23 -12
- package/dist/es2017/sites/HubSites.js.map +1 -1
- package/dist/esm/projects/HubProjectManager.js +3 -3
- package/dist/esm/projects/HubProjectManager.js.map +1 -1
- package/dist/esm/projects/HubProjects.js +23 -12
- package/dist/esm/projects/HubProjects.js.map +1 -1
- package/dist/esm/search/_internal/createQueryFromString.js +22 -0
- package/dist/esm/search/_internal/createQueryFromString.js.map +1 -0
- package/dist/esm/search/_internal/hubSearchItems.js +1 -0
- package/dist/esm/search/_internal/hubSearchItems.js.map +1 -1
- package/dist/esm/search/_internal/index.js +2 -1
- package/dist/esm/search/_internal/index.js.map +1 -1
- package/dist/esm/search/_internal/ipredicate-utils.js +6 -0
- package/dist/esm/search/_internal/ipredicate-utils.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchGroups.js +1 -1
- package/dist/esm/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchItems.js +9 -1
- package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchUsers.js +1 -1
- package/dist/esm/search/_internal/portalSearchUsers.js.map +1 -1
- package/dist/esm/search/_internal/{searchContentEntities.js → searchEntities.js} +21 -39
- package/dist/esm/search/_internal/searchEntities.js.map +1 -0
- package/dist/esm/search/_internal/state.js +8 -0
- package/dist/esm/search/_internal/state.js.map +1 -1
- package/dist/esm/search/_searchContent.js +1 -0
- package/dist/esm/search/_searchContent.js.map +1 -1
- package/dist/esm/search/_searchGroups.js +1 -0
- package/dist/esm/search/_searchGroups.js.map +1 -1
- package/dist/esm/search/_searchUsers.js +1 -0
- package/dist/esm/search/_searchUsers.js.map +1 -1
- package/dist/esm/search/index.js +1 -1
- package/dist/esm/search/index.js.map +1 -1
- package/dist/esm/search/{ifilter-utils.js → serializeQueryForPortal.js} +37 -13
- package/dist/esm/search/serializeQueryForPortal.js.map +1 -0
- package/dist/esm/sites/HubSiteManager.js +2 -2
- package/dist/esm/sites/HubSiteManager.js.map +1 -1
- package/dist/esm/sites/HubSites.js +23 -11
- package/dist/esm/sites/HubSites.js.map +1 -1
- package/dist/node/projects/HubProjectManager.js +3 -3
- package/dist/node/projects/HubProjectManager.js.map +1 -1
- package/dist/node/projects/HubProjects.js +32 -22
- package/dist/node/projects/HubProjects.js.map +1 -1
- package/dist/node/search/_internal/createQueryFromString.js +26 -0
- package/dist/node/search/_internal/createQueryFromString.js.map +1 -0
- package/dist/node/search/_internal/hubSearchItems.js +1 -0
- package/dist/node/search/_internal/hubSearchItems.js.map +1 -1
- package/dist/node/search/_internal/index.js +2 -1
- package/dist/node/search/_internal/index.js.map +1 -1
- package/dist/node/search/_internal/ipredicate-utils.js +6 -0
- package/dist/node/search/_internal/ipredicate-utils.js.map +1 -1
- package/dist/node/search/_internal/portalSearchGroups.js +2 -2
- package/dist/node/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/node/search/_internal/portalSearchItems.js +10 -2
- package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/node/search/_internal/portalSearchUsers.js +2 -2
- package/dist/node/search/_internal/portalSearchUsers.js.map +1 -1
- package/dist/node/search/_internal/searchEntities.js +78 -0
- package/dist/node/search/_internal/searchEntities.js.map +1 -0
- package/dist/node/search/_internal/state.js +8 -0
- package/dist/node/search/_internal/state.js.map +1 -1
- package/dist/node/search/_searchContent.js +1 -0
- package/dist/node/search/_searchContent.js.map +1 -1
- package/dist/node/search/_searchGroups.js +1 -0
- package/dist/node/search/_searchGroups.js.map +1 -1
- package/dist/node/search/_searchUsers.js +1 -0
- package/dist/node/search/_searchUsers.js.map +1 -1
- package/dist/node/search/index.js +1 -1
- package/dist/node/search/index.js.map +1 -1
- package/dist/node/search/{ifilter-utils.js → serializeQueryForPortal.js} +37 -13
- package/dist/node/search/serializeQueryForPortal.js.map +1 -0
- package/dist/node/sites/HubSiteManager.js +2 -2
- package/dist/node/sites/HubSiteManager.js.map +1 -1
- package/dist/node/sites/HubSites.js +52 -41
- package/dist/node/sites/HubSites.js.map +1 -1
- package/dist/types/core/types/IHubEntityManager.d.ts +3 -4
- package/dist/types/projects/HubProjectManager.d.ts +3 -3
- package/dist/types/projects/HubProjects.d.ts +4 -4
- package/dist/types/search/_internal/createQueryFromString.d.ts +10 -0
- package/dist/types/search/_internal/hubSearchItems.d.ts +1 -0
- package/dist/types/search/_internal/index.d.ts +2 -1
- package/dist/types/search/_internal/ipredicate-utils.d.ts +6 -0
- package/dist/types/search/_internal/searchEntities.d.ts +23 -0
- package/dist/types/search/_internal/state.d.ts +8 -0
- package/dist/types/search/_searchContent.d.ts +1 -0
- package/dist/types/search/_searchGroups.d.ts +1 -0
- package/dist/types/search/_searchUsers.d.ts +1 -0
- package/dist/types/search/index.d.ts +1 -1
- package/dist/types/search/{ifilter-utils.d.ts → serializeQueryForPortal.d.ts} +5 -0
- package/dist/types/search/types/IHubAggregation.d.ts +9 -0
- package/dist/types/search/types/IHubSearchOptions.d.ts +18 -8
- package/dist/types/search/types/IHubSearchResponse.d.ts +18 -0
- package/dist/types/sites/HubSiteManager.d.ts +2 -2
- package/dist/types/sites/HubSites.d.ts +2 -2
- package/dist/umd/common.umd.js +169 -95
- package/dist/umd/common.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/es2017/search/_internal/searchContentEntities.js +0 -89
- package/dist/es2017/search/_internal/searchContentEntities.js.map +0 -1
- package/dist/es2017/search/ifilter-utils.js.map +0 -1
- package/dist/esm/search/_internal/searchContentEntities.js.map +0 -1
- package/dist/esm/search/ifilter-utils.js.map +0 -1
- package/dist/node/search/_internal/searchContentEntities.js +0 -94
- package/dist/node/search/_internal/searchContentEntities.js.map +0 -1
- package/dist/node/search/ifilter-utils.js.map +0 -1
- package/dist/types/search/_internal/searchContentEntities.d.ts +0 -32
package/dist/umd/common.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @preserve
|
|
2
|
-
* @esri/hub-common - v9.
|
|
2
|
+
* @esri/hub-common - v9.46.0 - Fri Jul 15 2022 18:16:25 GMT+0000 (Coordinated Universal Time)
|
|
3
3
|
* Copyright (c) 2022 Environmental Systems Research Institute, Inc.
|
|
4
4
|
* Apache-2.0
|
|
5
5
|
*/
|
|
@@ -14473,6 +14473,7 @@
|
|
|
14473
14473
|
|
|
14474
14474
|
// TODO: Remove with _searchContent
|
|
14475
14475
|
/**
|
|
14476
|
+
* @private
|
|
14476
14477
|
* Search for content via the Portal or Hub API
|
|
14477
14478
|
* @param filter
|
|
14478
14479
|
* @param options
|
|
@@ -14584,6 +14585,7 @@
|
|
|
14584
14585
|
|
|
14585
14586
|
// TODO: Remove with _searchContent
|
|
14586
14587
|
/**
|
|
14588
|
+
* @private
|
|
14587
14589
|
* Search Groups using Filter<"group">
|
|
14588
14590
|
*
|
|
14589
14591
|
* Currently just returns ISearchResult<IGroup>
|
|
@@ -14668,6 +14670,7 @@
|
|
|
14668
14670
|
|
|
14669
14671
|
// TODO: Remove with _searchContent
|
|
14670
14672
|
/**
|
|
14673
|
+
* @private
|
|
14671
14674
|
* Search for Users via the Portal API.
|
|
14672
14675
|
*
|
|
14673
14676
|
* **Note** Authentication is required
|
|
@@ -14754,6 +14757,7 @@
|
|
|
14754
14757
|
}
|
|
14755
14758
|
|
|
14756
14759
|
/**
|
|
14760
|
+
* @private
|
|
14757
14761
|
* Apply the sortState to SortOptions
|
|
14758
14762
|
*
|
|
14759
14763
|
* @param sortOptions
|
|
@@ -14771,6 +14775,7 @@
|
|
|
14771
14775
|
return updated;
|
|
14772
14776
|
}
|
|
14773
14777
|
/**
|
|
14778
|
+
* @private
|
|
14774
14779
|
* Apply FacetState to a Facet
|
|
14775
14780
|
* @param facet
|
|
14776
14781
|
* @param state
|
|
@@ -14789,6 +14794,7 @@
|
|
|
14789
14794
|
return updated;
|
|
14790
14795
|
}
|
|
14791
14796
|
/**
|
|
14797
|
+
* @private
|
|
14792
14798
|
* Apply the Facet State onto a single-select facet
|
|
14793
14799
|
*
|
|
14794
14800
|
* Intentionally mutates the facet.
|
|
@@ -14805,6 +14811,7 @@
|
|
|
14805
14811
|
return updated;
|
|
14806
14812
|
}
|
|
14807
14813
|
/**
|
|
14814
|
+
* @private
|
|
14808
14815
|
* Serialize single-select facet into IFacetState
|
|
14809
14816
|
* @param facet
|
|
14810
14817
|
* @returns
|
|
@@ -14821,6 +14828,7 @@
|
|
|
14821
14828
|
return state;
|
|
14822
14829
|
}
|
|
14823
14830
|
/**
|
|
14831
|
+
* @private
|
|
14824
14832
|
* Apply the Facet State onto a multi-select Facet
|
|
14825
14833
|
*
|
|
14826
14834
|
* Intentionally mutates the facet.
|
|
@@ -14839,6 +14847,7 @@
|
|
|
14839
14847
|
return updated;
|
|
14840
14848
|
}
|
|
14841
14849
|
/**
|
|
14850
|
+
* @private
|
|
14842
14851
|
* Serialize multi-select facet into IFacetState
|
|
14843
14852
|
* @param facet
|
|
14844
14853
|
* @returns
|
|
@@ -14856,6 +14865,7 @@
|
|
|
14856
14865
|
return state;
|
|
14857
14866
|
}
|
|
14858
14867
|
/**
|
|
14868
|
+
* @private
|
|
14859
14869
|
* Serialize the state of the SortOption into a key/value pair
|
|
14860
14870
|
*
|
|
14861
14871
|
* Called from the Sort component
|
|
@@ -14866,6 +14876,7 @@
|
|
|
14866
14876
|
return sort.label + "|" + sort.attribute + "|" + sort.order;
|
|
14867
14877
|
}
|
|
14868
14878
|
/**
|
|
14879
|
+
* @private
|
|
14869
14880
|
* Serialize the state of a facet into a key/value pair
|
|
14870
14881
|
*
|
|
14871
14882
|
* Called from the various facet components
|
|
@@ -15006,6 +15017,12 @@
|
|
|
15006
15017
|
}
|
|
15007
15018
|
}
|
|
15008
15019
|
|
|
15020
|
+
/**
|
|
15021
|
+
* @private
|
|
15022
|
+
* Expand a predicate
|
|
15023
|
+
* @param predicate
|
|
15024
|
+
* @returns
|
|
15025
|
+
*/
|
|
15009
15026
|
function expandPredicate(predicate) {
|
|
15010
15027
|
var result = {};
|
|
15011
15028
|
var dateProps = ["created", "modified", "lastlogin"];
|
|
@@ -15042,24 +15059,41 @@
|
|
|
15042
15059
|
return result;
|
|
15043
15060
|
}
|
|
15044
15061
|
|
|
15062
|
+
/**
|
|
15063
|
+
* Serialize IQuery into ISearchOptions for ArcGIS Portal
|
|
15064
|
+
* @param query
|
|
15065
|
+
* @returns
|
|
15066
|
+
*/
|
|
15045
15067
|
function serializeQueryForPortal(query) {
|
|
15046
15068
|
var filterSearchOptions = query.filters.map(serializeFilter);
|
|
15047
|
-
|
|
15069
|
+
// remove any empty entries
|
|
15070
|
+
var nonEmptyOptions = filterSearchOptions.filter(removeEmptyEntries);
|
|
15071
|
+
var result = mergeSearchOptions(nonEmptyOptions, "AND");
|
|
15048
15072
|
return result;
|
|
15049
15073
|
}
|
|
15074
|
+
/**
|
|
15075
|
+
* Predicate to remove things from array
|
|
15076
|
+
* @param e
|
|
15077
|
+
* @returns
|
|
15078
|
+
*/
|
|
15079
|
+
function removeEmptyEntries(e) {
|
|
15080
|
+
return !(typeof e === "undefined" || e === null || e === "");
|
|
15081
|
+
}
|
|
15050
15082
|
function mergeSearchOptions(options, operation) {
|
|
15051
15083
|
var result = options.reduce(function (acc, entry) {
|
|
15052
15084
|
// walk the props
|
|
15053
15085
|
Object.entries(entry).forEach(function (_a) {
|
|
15054
15086
|
var key = _a[0], value = _a[1];
|
|
15055
|
-
// if prop exists
|
|
15056
|
-
if (acc[key]) {
|
|
15087
|
+
// if prop exists and is not empty string
|
|
15088
|
+
if (acc[key] && value !== "") {
|
|
15057
15089
|
// combine via operation
|
|
15058
15090
|
acc[key] = acc[key] + " " + operation + " " + value;
|
|
15059
15091
|
}
|
|
15060
15092
|
else {
|
|
15061
|
-
// just copy the value
|
|
15062
|
-
|
|
15093
|
+
// just copy the value if it's not empty string
|
|
15094
|
+
if (value !== "") {
|
|
15095
|
+
acc[key] = value;
|
|
15096
|
+
}
|
|
15063
15097
|
}
|
|
15064
15098
|
});
|
|
15065
15099
|
return acc;
|
|
@@ -15074,7 +15108,9 @@
|
|
|
15074
15108
|
function serializeFilter(filter) {
|
|
15075
15109
|
var operation = filter.operation || "AND";
|
|
15076
15110
|
var predicates = filter.predicates.map(expandPredicate);
|
|
15077
|
-
var predicateSearchOptions = predicates
|
|
15111
|
+
var predicateSearchOptions = predicates
|
|
15112
|
+
.map(serializePredicate)
|
|
15113
|
+
.filter(function (e) { return e !== undefined && e !== null; });
|
|
15078
15114
|
// combine these searchOptions
|
|
15079
15115
|
var searchOptions = mergeSearchOptions(predicateSearchOptions, operation);
|
|
15080
15116
|
// wrap in parens if we have more than one predicate
|
|
@@ -15142,7 +15178,7 @@
|
|
|
15142
15178
|
// not attempt to ensure the properties are used in the correct combinations
|
|
15143
15179
|
if (portalAllowList.includes(key)) {
|
|
15144
15180
|
var so = { q: "" };
|
|
15145
|
-
if (!specialProps.includes(key)) {
|
|
15181
|
+
if (!specialProps.includes(key) && key !== "term") {
|
|
15146
15182
|
qCount++;
|
|
15147
15183
|
so.q = serializeMatchOptions(key, value);
|
|
15148
15184
|
}
|
|
@@ -15164,13 +15200,18 @@
|
|
|
15164
15200
|
return so;
|
|
15165
15201
|
}
|
|
15166
15202
|
})
|
|
15167
|
-
.filter(
|
|
15203
|
+
.filter(removeEmptyEntries);
|
|
15168
15204
|
// merge up all the searchOptions
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
|
|
15205
|
+
if (opts.length) {
|
|
15206
|
+
var searchOptions = mergeSearchOptions(opts, "AND");
|
|
15207
|
+
if (qCount > 1) {
|
|
15208
|
+
searchOptions.q = "(" + searchOptions.q + ")";
|
|
15209
|
+
}
|
|
15210
|
+
return searchOptions;
|
|
15211
|
+
}
|
|
15212
|
+
else {
|
|
15213
|
+
return null;
|
|
15172
15214
|
}
|
|
15173
|
-
return searchOptions;
|
|
15174
15215
|
}
|
|
15175
15216
|
/**
|
|
15176
15217
|
* Serialize MatchOptions into portal syntax
|
|
@@ -15265,44 +15306,51 @@
|
|
|
15265
15306
|
var HubError$1 = HubError;
|
|
15266
15307
|
|
|
15267
15308
|
/**
|
|
15268
|
-
*
|
|
15269
|
-
*
|
|
15270
|
-
*
|
|
15271
|
-
*
|
|
15272
|
-
|
|
15273
|
-
|
|
15274
|
-
|
|
15275
|
-
|
|
15309
|
+
* @private
|
|
15310
|
+
* Convert a portal aggregation structure into the HubAggregations structure
|
|
15311
|
+
* @param searchResults
|
|
15312
|
+
* @returns
|
|
15313
|
+
*/
|
|
15314
|
+
function convertPortalAggregations(searchResults) {
|
|
15315
|
+
var _a;
|
|
15316
|
+
if ((_a = searchResults.aggregations) === null || _a === void 0 ? void 0 : _a.counts) {
|
|
15317
|
+
return searchResults.aggregations.counts.map(function (entry) {
|
|
15318
|
+
return {
|
|
15319
|
+
mode: "terms",
|
|
15320
|
+
field: entry.fieldName,
|
|
15321
|
+
values: entry.fieldValues,
|
|
15322
|
+
};
|
|
15323
|
+
});
|
|
15324
|
+
}
|
|
15325
|
+
else {
|
|
15326
|
+
return [];
|
|
15327
|
+
}
|
|
15328
|
+
}
|
|
15329
|
+
|
|
15330
|
+
/**
|
|
15331
|
+
* @private
|
|
15332
|
+
* Execute a search and convert to a specific entity
|
|
15333
|
+
* @param query
|
|
15276
15334
|
* @param convertFn
|
|
15277
15335
|
* @param options
|
|
15278
15336
|
* @returns
|
|
15279
15337
|
*/
|
|
15280
|
-
function
|
|
15281
|
-
var _a
|
|
15282
|
-
//
|
|
15283
|
-
var
|
|
15284
|
-
var searchOptions = serializeContentFilterForPortal(expanded);
|
|
15285
|
-
// DEPRECATION
|
|
15286
|
-
/* istanbul ignore next */
|
|
15287
|
-
if ((_a = options.aggregations) === null || _a === void 0 ? void 0 : _a.length) {
|
|
15288
|
-
// tslint:disable-next-line:no-console
|
|
15289
|
-
console.warn("IHubSearchOptions.aggregations is deprecated. Please use .aggFields instead.");
|
|
15290
|
-
searchOptions.countFields = options.aggregations.join(",");
|
|
15291
|
-
searchOptions.countSize = options.aggLimit || 10;
|
|
15292
|
-
}
|
|
15338
|
+
function searchEntities(query, convertFn, options) {
|
|
15339
|
+
var _a;
|
|
15340
|
+
// serialize query to searchOptions
|
|
15341
|
+
var searchOptions = serializeQueryForPortal(query);
|
|
15293
15342
|
// Aggregations
|
|
15294
|
-
if ((
|
|
15343
|
+
if ((_a = options.aggFields) === null || _a === void 0 ? void 0 : _a.length) {
|
|
15295
15344
|
searchOptions.countFields = options.aggFields.join(",");
|
|
15296
15345
|
searchOptions.countSize = options.aggLimit || 10;
|
|
15297
15346
|
}
|
|
15298
15347
|
// properties to copy from IHubSearchOptions to the ISearchOptions
|
|
15299
15348
|
var props = [
|
|
15300
|
-
"authentication",
|
|
15301
15349
|
"num",
|
|
15302
15350
|
"sortField",
|
|
15303
15351
|
"sortOrder",
|
|
15304
|
-
"site",
|
|
15305
15352
|
"start",
|
|
15353
|
+
"requestOptions",
|
|
15306
15354
|
];
|
|
15307
15355
|
// Include "start" here
|
|
15308
15356
|
// copy the props over
|
|
@@ -15312,8 +15360,7 @@
|
|
|
15312
15360
|
}
|
|
15313
15361
|
});
|
|
15314
15362
|
// create the entitySearchFn
|
|
15315
|
-
var searchFn =
|
|
15316
|
-
// execute the search
|
|
15363
|
+
var searchFn = createEntitySearchFn(convertFn);
|
|
15317
15364
|
// Add ArcGIS API
|
|
15318
15365
|
if (options.api && !options.authentication) {
|
|
15319
15366
|
var expandedApi = expandApi(options.api);
|
|
@@ -15322,20 +15369,17 @@
|
|
|
15322
15369
|
return searchFn(searchOptions);
|
|
15323
15370
|
}
|
|
15324
15371
|
/**
|
|
15325
|
-
*
|
|
15326
|
-
* a hub entity specific conversion function. This
|
|
15327
|
-
* allows the `.next()` function to use the function on
|
|
15328
|
-
* subsequent calls
|
|
15372
|
+
* @private
|
|
15329
15373
|
* @param convertFn
|
|
15330
15374
|
* @returns
|
|
15331
15375
|
*/
|
|
15332
|
-
function
|
|
15376
|
+
function createEntitySearchFn(convertFn) {
|
|
15333
15377
|
// Return a function that does the search, with a closure over the
|
|
15334
15378
|
// conversion function. Naming this function is important as it's
|
|
15335
15379
|
// referenced in the `next` section below
|
|
15336
|
-
return function
|
|
15380
|
+
return function executeSearch(searchOptions) {
|
|
15337
15381
|
return __awaiter(this, void 0, void 0, function () {
|
|
15338
|
-
var response, entities,
|
|
15382
|
+
var response, entities, aggregations;
|
|
15339
15383
|
return __generator(this, function (_a) {
|
|
15340
15384
|
switch (_a.label) {
|
|
15341
15385
|
case 0: return [4 /*yield*/, searchItems(searchOptions)];
|
|
@@ -15346,13 +15390,13 @@
|
|
|
15346
15390
|
}))];
|
|
15347
15391
|
case 2:
|
|
15348
15392
|
entities = _a.sent();
|
|
15349
|
-
|
|
15393
|
+
aggregations = convertPortalAggregations(response);
|
|
15350
15394
|
return [2 /*return*/, {
|
|
15351
15395
|
total: response.total,
|
|
15352
15396
|
results: entities,
|
|
15353
|
-
|
|
15397
|
+
aggregations: aggregations,
|
|
15354
15398
|
hasNext: response.nextStart > -1,
|
|
15355
|
-
next: getNextFunction(searchOptions, response.nextStart, response.total,
|
|
15399
|
+
next: getNextFunction(searchOptions, response.nextStart, response.total, executeSearch),
|
|
15356
15400
|
}];
|
|
15357
15401
|
}
|
|
15358
15402
|
});
|
|
@@ -15963,24 +16007,34 @@
|
|
|
15963
16007
|
/**
|
|
15964
16008
|
* Search for Projects, and get IHubProject results
|
|
15965
16009
|
*
|
|
15966
|
-
* Different from `
|
|
16010
|
+
* Different from `hubSearch` in that this returns the IHubProjects
|
|
15967
16011
|
*
|
|
15968
16012
|
* @param filter
|
|
15969
16013
|
* @param options
|
|
15970
16014
|
* @returns
|
|
15971
16015
|
*/
|
|
15972
|
-
function searchProjects(
|
|
16016
|
+
function searchProjects(query, options) {
|
|
15973
16017
|
return __awaiter(this, void 0, void 0, function () {
|
|
15974
|
-
var
|
|
16018
|
+
var qry, scopingFilters;
|
|
15975
16019
|
return __generator(this, function (_a) {
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
16020
|
+
if (typeof query === "string") {
|
|
16021
|
+
qry = createQueryFromString(query, "term", "item");
|
|
16022
|
+
}
|
|
16023
|
+
else {
|
|
16024
|
+
qry = cloneObject$1(query);
|
|
16025
|
+
}
|
|
16026
|
+
scopingFilters = [
|
|
16027
|
+
{
|
|
16028
|
+
predicates: [
|
|
16029
|
+
{
|
|
16030
|
+
type: "Hub Project",
|
|
16031
|
+
},
|
|
16032
|
+
],
|
|
15980
16033
|
},
|
|
15981
|
-
|
|
15982
|
-
|
|
15983
|
-
|
|
16034
|
+
];
|
|
16035
|
+
// add filters from the passed in query
|
|
16036
|
+
qry.filters = __spreadArrays(scopingFilters, qry.filters);
|
|
16037
|
+
return [2 /*return*/, searchEntities(qry, convertItemToProject, options)];
|
|
15984
16038
|
});
|
|
15985
16039
|
});
|
|
15986
16040
|
}
|
|
@@ -16256,17 +16310,17 @@
|
|
|
16256
16310
|
/**
|
|
16257
16311
|
* Search for Projects
|
|
16258
16312
|
*
|
|
16259
|
-
* @param
|
|
16313
|
+
* @param query
|
|
16260
16314
|
* @param options
|
|
16261
16315
|
*/
|
|
16262
|
-
HubProjectManager.prototype.search = function (
|
|
16316
|
+
HubProjectManager.prototype.search = function (query, options) {
|
|
16263
16317
|
return __awaiter(this, void 0, void 0, function () {
|
|
16264
16318
|
return __generator(this, function (_a) {
|
|
16265
16319
|
// if we were not passed auth, and we have a session, use it
|
|
16266
16320
|
if (!options.authentication && this.context.session) {
|
|
16267
16321
|
options.authentication = this.context.session;
|
|
16268
16322
|
}
|
|
16269
|
-
return [2 /*return*/, searchProjects(
|
|
16323
|
+
return [2 /*return*/, searchProjects(query, options)];
|
|
16270
16324
|
});
|
|
16271
16325
|
});
|
|
16272
16326
|
};
|
|
@@ -16909,6 +16963,28 @@
|
|
|
16909
16963
|
});
|
|
16910
16964
|
}
|
|
16911
16965
|
|
|
16966
|
+
/**
|
|
16967
|
+
* @private
|
|
16968
|
+
* Construct a query from a string
|
|
16969
|
+
* @param value
|
|
16970
|
+
* @param predicateKey
|
|
16971
|
+
* @param targetEntity
|
|
16972
|
+
* @returns
|
|
16973
|
+
*/
|
|
16974
|
+
function createQueryFromString(value, predicateKey, targetEntity) {
|
|
16975
|
+
var predicate = {};
|
|
16976
|
+
predicate[predicateKey] = value;
|
|
16977
|
+
var qry = {
|
|
16978
|
+
targetEntity: targetEntity,
|
|
16979
|
+
filters: [
|
|
16980
|
+
{
|
|
16981
|
+
predicates: [predicate],
|
|
16982
|
+
},
|
|
16983
|
+
],
|
|
16984
|
+
};
|
|
16985
|
+
return qry;
|
|
16986
|
+
}
|
|
16987
|
+
|
|
16912
16988
|
var HUB_SITE_ITEM_TYPE = "Hub Site Application";
|
|
16913
16989
|
var ENTERPRISE_SITE_ITEM_TYPE = "Site Application";
|
|
16914
16990
|
/**
|
|
@@ -17336,17 +17412,28 @@
|
|
|
17336
17412
|
* @param options
|
|
17337
17413
|
* @returns
|
|
17338
17414
|
*/
|
|
17339
|
-
function searchSites(
|
|
17415
|
+
function searchSites(query, options) {
|
|
17340
17416
|
return __awaiter(this, void 0, void 0, function () {
|
|
17341
|
-
var
|
|
17417
|
+
var qry, scopingFilters;
|
|
17342
17418
|
return __generator(this, function (_a) {
|
|
17343
|
-
|
|
17344
|
-
|
|
17345
|
-
|
|
17346
|
-
|
|
17347
|
-
|
|
17348
|
-
|
|
17349
|
-
|
|
17419
|
+
if (typeof query === "string") {
|
|
17420
|
+
qry = createQueryFromString(query, "term", "item");
|
|
17421
|
+
}
|
|
17422
|
+
else {
|
|
17423
|
+
qry = cloneObject$1(query);
|
|
17424
|
+
}
|
|
17425
|
+
scopingFilters = [
|
|
17426
|
+
{
|
|
17427
|
+
predicates: [
|
|
17428
|
+
{
|
|
17429
|
+
type: "Hub Project",
|
|
17430
|
+
},
|
|
17431
|
+
],
|
|
17432
|
+
},
|
|
17433
|
+
];
|
|
17434
|
+
// add filters from the passed in query
|
|
17435
|
+
qry.filters = __spreadArrays(scopingFilters, qry.filters);
|
|
17436
|
+
return [2 /*return*/, searchEntities(qry, convertItemToSite, options)];
|
|
17350
17437
|
});
|
|
17351
17438
|
});
|
|
17352
17439
|
}
|
|
@@ -17546,14 +17633,14 @@
|
|
|
17546
17633
|
* @param filter
|
|
17547
17634
|
* @param opts
|
|
17548
17635
|
*/
|
|
17549
|
-
HubSiteManager.prototype.search = function (
|
|
17636
|
+
HubSiteManager.prototype.search = function (query, options) {
|
|
17550
17637
|
return __awaiter(this, void 0, void 0, function () {
|
|
17551
17638
|
return __generator(this, function (_a) {
|
|
17552
17639
|
// if we were not passed auth, and we have a session, use it
|
|
17553
17640
|
if (!options.authentication && this.context.session) {
|
|
17554
17641
|
options.authentication = this.context.session;
|
|
17555
17642
|
}
|
|
17556
|
-
return [2 /*return*/, searchSites(
|
|
17643
|
+
return [2 /*return*/, searchSites(query, options)];
|
|
17557
17644
|
});
|
|
17558
17645
|
});
|
|
17559
17646
|
};
|
|
@@ -17875,28 +17962,6 @@
|
|
|
17875
17962
|
}
|
|
17876
17963
|
}
|
|
17877
17964
|
|
|
17878
|
-
/**
|
|
17879
|
-
* @private
|
|
17880
|
-
* Convert a portal aggregation structure into the HubAggregations structure
|
|
17881
|
-
* @param searchResults
|
|
17882
|
-
* @returns
|
|
17883
|
-
*/
|
|
17884
|
-
function convertPortalAggregations(searchResults) {
|
|
17885
|
-
var _a;
|
|
17886
|
-
if ((_a = searchResults.aggregations) === null || _a === void 0 ? void 0 : _a.counts) {
|
|
17887
|
-
return searchResults.aggregations.counts.map(function (entry) {
|
|
17888
|
-
return {
|
|
17889
|
-
mode: "terms",
|
|
17890
|
-
field: entry.fieldName,
|
|
17891
|
-
values: entry.fieldValues,
|
|
17892
|
-
};
|
|
17893
|
-
});
|
|
17894
|
-
}
|
|
17895
|
-
else {
|
|
17896
|
-
return [];
|
|
17897
|
-
}
|
|
17898
|
-
}
|
|
17899
|
-
|
|
17900
17965
|
/**
|
|
17901
17966
|
* @private
|
|
17902
17967
|
* Portal Search Implementation for Items
|
|
@@ -18195,6 +18260,7 @@
|
|
|
18195
18260
|
// iterate the filters
|
|
18196
18261
|
queryClone.filters = queryClone.filters.map(function (filter) {
|
|
18197
18262
|
// replace predicates with well-known types
|
|
18263
|
+
var replacedPredicates = false;
|
|
18198
18264
|
filter.predicates = filter.predicates.reduce(function (acc, predicate) {
|
|
18199
18265
|
// if the predicate has a well-known type
|
|
18200
18266
|
// we replace it with the set of predicates defined
|
|
@@ -18202,6 +18268,7 @@
|
|
|
18202
18268
|
if (isWellKnownTypeFilter(predicate.type)) {
|
|
18203
18269
|
var replacements = lookupTypePredicates(predicate.type);
|
|
18204
18270
|
acc = __spreadArrays(acc, replacements);
|
|
18271
|
+
replacedPredicates = true;
|
|
18205
18272
|
}
|
|
18206
18273
|
else {
|
|
18207
18274
|
// this predicate does not have a well-known type
|
|
@@ -18210,6 +18277,12 @@
|
|
|
18210
18277
|
}
|
|
18211
18278
|
return acc;
|
|
18212
18279
|
}, []);
|
|
18280
|
+
if (replacedPredicates) {
|
|
18281
|
+
// Any filter who's predicates were replaced with
|
|
18282
|
+
// well-known predicates, needs to use "OR" to ensure
|
|
18283
|
+
// correct query logic
|
|
18284
|
+
filter.operation = "OR";
|
|
18285
|
+
}
|
|
18213
18286
|
return filter;
|
|
18214
18287
|
});
|
|
18215
18288
|
return queryClone;
|
|
@@ -18256,6 +18329,7 @@
|
|
|
18256
18329
|
//
|
|
18257
18330
|
// Since Hub API is still in flux, there is no code coverage for this file
|
|
18258
18331
|
/**
|
|
18332
|
+
* @private
|
|
18259
18333
|
* Execute item search against the Hub API
|
|
18260
18334
|
* @param filter
|
|
18261
18335
|
* @param options
|