@esri/hub-common 9.45.5 → 9.45.6
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/search/_internal/portalSearchGroups.js +1 -1
- package/dist/es2017/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchItems.js +1 -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/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/esm/search/_internal/portalSearchGroups.js +1 -1
- package/dist/esm/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchItems.js +1 -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/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/node/search/_internal/portalSearchGroups.js +2 -2
- package/dist/node/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/node/search/_internal/portalSearchItems.js +2 -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/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/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/umd/common.umd.js +37 -13
- package/dist/umd/common.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/es2017/search/ifilter-utils.js.map +0 -1
- package/dist/esm/search/ifilter-utils.js.map +0 -1
- package/dist/node/search/ifilter-utils.js.map +0 -1
|
@@ -2,24 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.serializeQueryForPortal = void 0;
|
|
4
4
|
const ipredicate_utils_1 = require("./_internal/ipredicate-utils");
|
|
5
|
+
/**
|
|
6
|
+
* Serialize IQuery into ISearchOptions for ArcGIS Portal
|
|
7
|
+
* @param query
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
5
10
|
function serializeQueryForPortal(query) {
|
|
6
11
|
const filterSearchOptions = query.filters.map(serializeFilter);
|
|
7
|
-
|
|
12
|
+
// remove any empty entries
|
|
13
|
+
const nonEmptyOptions = filterSearchOptions.filter(removeEmptyEntries);
|
|
14
|
+
const result = mergeSearchOptions(nonEmptyOptions, "AND");
|
|
8
15
|
return result;
|
|
9
16
|
}
|
|
10
17
|
exports.serializeQueryForPortal = serializeQueryForPortal;
|
|
18
|
+
/**
|
|
19
|
+
* Predicate to remove things from array
|
|
20
|
+
* @param e
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
function removeEmptyEntries(e) {
|
|
24
|
+
return !(typeof e === "undefined" || e === null || e === "");
|
|
25
|
+
}
|
|
11
26
|
function mergeSearchOptions(options, operation) {
|
|
12
27
|
const result = options.reduce((acc, entry) => {
|
|
13
28
|
// walk the props
|
|
14
29
|
Object.entries(entry).forEach(([key, value]) => {
|
|
15
|
-
// if prop exists
|
|
16
|
-
if (acc[key]) {
|
|
30
|
+
// if prop exists and is not empty string
|
|
31
|
+
if (acc[key] && value !== "") {
|
|
17
32
|
// combine via operation
|
|
18
33
|
acc[key] = `${acc[key]} ${operation} ${value}`;
|
|
19
34
|
}
|
|
20
35
|
else {
|
|
21
|
-
// just copy the value
|
|
22
|
-
|
|
36
|
+
// just copy the value if it's not empty string
|
|
37
|
+
if (value !== "") {
|
|
38
|
+
acc[key] = value;
|
|
39
|
+
}
|
|
23
40
|
}
|
|
24
41
|
});
|
|
25
42
|
return acc;
|
|
@@ -34,7 +51,9 @@ function mergeSearchOptions(options, operation) {
|
|
|
34
51
|
function serializeFilter(filter) {
|
|
35
52
|
const operation = filter.operation || "AND";
|
|
36
53
|
const predicates = filter.predicates.map(ipredicate_utils_1.expandPredicate);
|
|
37
|
-
const predicateSearchOptions = predicates
|
|
54
|
+
const predicateSearchOptions = predicates
|
|
55
|
+
.map(serializePredicate)
|
|
56
|
+
.filter((e) => e !== undefined && e !== null);
|
|
38
57
|
// combine these searchOptions
|
|
39
58
|
const searchOptions = mergeSearchOptions(predicateSearchOptions, operation);
|
|
40
59
|
// wrap in parens if we have more than one predicate
|
|
@@ -104,7 +123,7 @@ function serializePredicate(predicate) {
|
|
|
104
123
|
// not attempt to ensure the properties are used in the correct combinations
|
|
105
124
|
if (portalAllowList.includes(key)) {
|
|
106
125
|
const so = { q: "" };
|
|
107
|
-
if (!specialProps.includes(key)) {
|
|
126
|
+
if (!specialProps.includes(key) && key !== "term") {
|
|
108
127
|
qCount++;
|
|
109
128
|
so.q = serializeMatchOptions(key, value);
|
|
110
129
|
}
|
|
@@ -126,13 +145,18 @@ function serializePredicate(predicate) {
|
|
|
126
145
|
return so;
|
|
127
146
|
}
|
|
128
147
|
})
|
|
129
|
-
.filter(
|
|
148
|
+
.filter(removeEmptyEntries);
|
|
130
149
|
// merge up all the searchOptions
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
150
|
+
if (opts.length) {
|
|
151
|
+
const searchOptions = mergeSearchOptions(opts, "AND");
|
|
152
|
+
if (qCount > 1) {
|
|
153
|
+
searchOptions.q = `(${searchOptions.q})`;
|
|
154
|
+
}
|
|
155
|
+
return searchOptions;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
return null;
|
|
134
159
|
}
|
|
135
|
-
return searchOptions;
|
|
136
160
|
}
|
|
137
161
|
/**
|
|
138
162
|
* Serialize MatchOptions into portal syntax
|
|
@@ -187,4 +211,4 @@ function serializeStringOrArray(join, key, value) {
|
|
|
187
211
|
}
|
|
188
212
|
return q;
|
|
189
213
|
}
|
|
190
|
-
//# sourceMappingURL=
|
|
214
|
+
//# sourceMappingURL=serializeQueryForPortal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializeQueryForPortal.js","sourceRoot":"","sources":["../../../src/search/serializeQueryForPortal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { ISearchOptions } from "@esri/arcgis-rest-portal";
|
|
2
2
|
import { IQuery } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Serialize IQuery into ISearchOptions for ArcGIS Portal
|
|
5
|
+
* @param query
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
3
8
|
export declare function serializeQueryForPortal(query: IQuery): ISearchOptions;
|
|
@@ -2,8 +2,17 @@
|
|
|
2
2
|
* Structure for Search Aggregations in ArcGIS Hub
|
|
3
3
|
*/
|
|
4
4
|
export interface IHubAggregation {
|
|
5
|
+
/**
|
|
6
|
+
* What type of aggregation is returned
|
|
7
|
+
*/
|
|
5
8
|
mode: string;
|
|
9
|
+
/**
|
|
10
|
+
* Field the aggregation was creatd for
|
|
11
|
+
*/
|
|
6
12
|
field: string;
|
|
13
|
+
/**
|
|
14
|
+
* Array of the field values and counts
|
|
15
|
+
*/
|
|
7
16
|
values: Array<{
|
|
8
17
|
value: any;
|
|
9
18
|
count: number;
|
|
@@ -16,11 +16,11 @@ export interface IHubSearchOptions {
|
|
|
16
16
|
*/
|
|
17
17
|
aggLimit?: number;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Specify API to call. Defaults to ArcGIS Online Portal API
|
|
20
20
|
*/
|
|
21
21
|
api?: NamedApis | IApiDefinition;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* DEPRECATE in favor of requestOptions
|
|
24
24
|
*/
|
|
25
25
|
authentication?: UserSession;
|
|
26
26
|
/**
|
|
@@ -30,15 +30,16 @@ export interface IHubSearchOptions {
|
|
|
30
30
|
* hubSearch
|
|
31
31
|
*/
|
|
32
32
|
requestOptions?: IHubRequestOptions;
|
|
33
|
+
/**
|
|
34
|
+
* Bounding box for the search (NOT IMPLEMENTED)
|
|
35
|
+
*/
|
|
33
36
|
bbox?: string;
|
|
34
37
|
/**
|
|
35
|
-
* Objects or fields to include
|
|
36
|
-
* e.g. `server.layers AS serverLayers`
|
|
38
|
+
* Objects or fields to include e.g. `server.layers AS serverLayers`
|
|
37
39
|
*/
|
|
38
40
|
include?: string[];
|
|
39
41
|
/**
|
|
40
|
-
*
|
|
41
|
-
* Deprecated in favor of `include`
|
|
42
|
+
* DEPRECATED: Use `include` instead
|
|
42
43
|
*/
|
|
43
44
|
enrichments?: Enrichments[];
|
|
44
45
|
/**
|
|
@@ -46,7 +47,7 @@ export interface IHubSearchOptions {
|
|
|
46
47
|
*/
|
|
47
48
|
num?: number;
|
|
48
49
|
/**
|
|
49
|
-
*
|
|
50
|
+
* LEGACY. Use `start` and `num` instead
|
|
50
51
|
*/
|
|
51
52
|
page?: string;
|
|
52
53
|
/**
|
|
@@ -58,10 +59,19 @@ export interface IHubSearchOptions {
|
|
|
58
59
|
*/
|
|
59
60
|
sortOrder?: "desc" | "asc";
|
|
60
61
|
/**
|
|
61
|
-
*
|
|
62
|
+
* The result number of the first entry in the result set response. The start parameter, along with the num parameter, can be used to paginate the search results.
|
|
62
63
|
*/
|
|
63
64
|
start?: number;
|
|
65
|
+
/**
|
|
66
|
+
* DEPRECATED
|
|
67
|
+
*/
|
|
64
68
|
aggregations?: string[];
|
|
69
|
+
/**
|
|
70
|
+
* DEPRECATED
|
|
71
|
+
*/
|
|
65
72
|
site?: IModel;
|
|
73
|
+
/**
|
|
74
|
+
* DEPRECATED
|
|
75
|
+
*/
|
|
66
76
|
fields?: string;
|
|
67
77
|
}
|
|
@@ -10,10 +10,28 @@ import { IHubAggregation } from "./IHubAggregation";
|
|
|
10
10
|
* next - invokable function for obtaining next page of results
|
|
11
11
|
*/
|
|
12
12
|
export interface IHubSearchResponse<T> {
|
|
13
|
+
/**
|
|
14
|
+
* Total number of matches for the query
|
|
15
|
+
*/
|
|
13
16
|
total: number;
|
|
17
|
+
/**
|
|
18
|
+
* Array if results
|
|
19
|
+
*/
|
|
14
20
|
results: T[];
|
|
21
|
+
/**
|
|
22
|
+
* Can more results be fetched?
|
|
23
|
+
*/
|
|
15
24
|
hasNext: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Function that fetches the next page of results
|
|
27
|
+
*/
|
|
16
28
|
next: (params?: any) => Promise<IHubSearchResponse<T>>;
|
|
29
|
+
/**
|
|
30
|
+
* Array of requested aggregations
|
|
31
|
+
*/
|
|
17
32
|
aggregations?: IHubAggregation[];
|
|
33
|
+
/**
|
|
34
|
+
* DEPRECATED - hub.js no longer computes facets; consumers need to construct them from aggregations
|
|
35
|
+
*/
|
|
18
36
|
facets?: IFacet[];
|
|
19
37
|
}
|
package/dist/umd/common.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @preserve
|
|
2
|
-
* @esri/hub-common - v9.45.
|
|
2
|
+
* @esri/hub-common - v9.45.5 - Thu Jul 07 2022 20:50:46 GMT+0000 (Coordinated Universal Time)
|
|
3
3
|
* Copyright (c) 2022 Environmental Systems Research Institute, Inc.
|
|
4
4
|
* Apache-2.0
|
|
5
5
|
*/
|
|
@@ -15042,24 +15042,41 @@
|
|
|
15042
15042
|
return result;
|
|
15043
15043
|
}
|
|
15044
15044
|
|
|
15045
|
+
/**
|
|
15046
|
+
* Serialize IQuery into ISearchOptions for ArcGIS Portal
|
|
15047
|
+
* @param query
|
|
15048
|
+
* @returns
|
|
15049
|
+
*/
|
|
15045
15050
|
function serializeQueryForPortal(query) {
|
|
15046
15051
|
var filterSearchOptions = query.filters.map(serializeFilter);
|
|
15047
|
-
|
|
15052
|
+
// remove any empty entries
|
|
15053
|
+
var nonEmptyOptions = filterSearchOptions.filter(removeEmptyEntries);
|
|
15054
|
+
var result = mergeSearchOptions(nonEmptyOptions, "AND");
|
|
15048
15055
|
return result;
|
|
15049
15056
|
}
|
|
15057
|
+
/**
|
|
15058
|
+
* Predicate to remove things from array
|
|
15059
|
+
* @param e
|
|
15060
|
+
* @returns
|
|
15061
|
+
*/
|
|
15062
|
+
function removeEmptyEntries(e) {
|
|
15063
|
+
return !(typeof e === "undefined" || e === null || e === "");
|
|
15064
|
+
}
|
|
15050
15065
|
function mergeSearchOptions(options, operation) {
|
|
15051
15066
|
var result = options.reduce(function (acc, entry) {
|
|
15052
15067
|
// walk the props
|
|
15053
15068
|
Object.entries(entry).forEach(function (_a) {
|
|
15054
15069
|
var key = _a[0], value = _a[1];
|
|
15055
|
-
// if prop exists
|
|
15056
|
-
if (acc[key]) {
|
|
15070
|
+
// if prop exists and is not empty string
|
|
15071
|
+
if (acc[key] && value !== "") {
|
|
15057
15072
|
// combine via operation
|
|
15058
15073
|
acc[key] = acc[key] + " " + operation + " " + value;
|
|
15059
15074
|
}
|
|
15060
15075
|
else {
|
|
15061
|
-
// just copy the value
|
|
15062
|
-
|
|
15076
|
+
// just copy the value if it's not empty string
|
|
15077
|
+
if (value !== "") {
|
|
15078
|
+
acc[key] = value;
|
|
15079
|
+
}
|
|
15063
15080
|
}
|
|
15064
15081
|
});
|
|
15065
15082
|
return acc;
|
|
@@ -15074,7 +15091,9 @@
|
|
|
15074
15091
|
function serializeFilter(filter) {
|
|
15075
15092
|
var operation = filter.operation || "AND";
|
|
15076
15093
|
var predicates = filter.predicates.map(expandPredicate);
|
|
15077
|
-
var predicateSearchOptions = predicates
|
|
15094
|
+
var predicateSearchOptions = predicates
|
|
15095
|
+
.map(serializePredicate)
|
|
15096
|
+
.filter(function (e) { return e !== undefined && e !== null; });
|
|
15078
15097
|
// combine these searchOptions
|
|
15079
15098
|
var searchOptions = mergeSearchOptions(predicateSearchOptions, operation);
|
|
15080
15099
|
// wrap in parens if we have more than one predicate
|
|
@@ -15142,7 +15161,7 @@
|
|
|
15142
15161
|
// not attempt to ensure the properties are used in the correct combinations
|
|
15143
15162
|
if (portalAllowList.includes(key)) {
|
|
15144
15163
|
var so = { q: "" };
|
|
15145
|
-
if (!specialProps.includes(key)) {
|
|
15164
|
+
if (!specialProps.includes(key) && key !== "term") {
|
|
15146
15165
|
qCount++;
|
|
15147
15166
|
so.q = serializeMatchOptions(key, value);
|
|
15148
15167
|
}
|
|
@@ -15164,13 +15183,18 @@
|
|
|
15164
15183
|
return so;
|
|
15165
15184
|
}
|
|
15166
15185
|
})
|
|
15167
|
-
.filter(
|
|
15186
|
+
.filter(removeEmptyEntries);
|
|
15168
15187
|
// merge up all the searchOptions
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
|
|
15188
|
+
if (opts.length) {
|
|
15189
|
+
var searchOptions = mergeSearchOptions(opts, "AND");
|
|
15190
|
+
if (qCount > 1) {
|
|
15191
|
+
searchOptions.q = "(" + searchOptions.q + ")";
|
|
15192
|
+
}
|
|
15193
|
+
return searchOptions;
|
|
15194
|
+
}
|
|
15195
|
+
else {
|
|
15196
|
+
return null;
|
|
15172
15197
|
}
|
|
15173
|
-
return searchOptions;
|
|
15174
15198
|
}
|
|
15175
15199
|
/**
|
|
15176
15200
|
* Serialize MatchOptions into portal syntax
|