@esri/hub-common 9.32.1 → 9.33.0
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/filter-utils.js +149 -0
- package/dist/es2017/search/filter-utils.js.map +1 -0
- package/dist/es2017/search/index.js +1 -0
- package/dist/es2017/search/index.js.map +1 -1
- package/dist/es2017/search/types/IHubSearchResponse.js +1 -0
- package/dist/es2017/search/types/IHubSearchResponse.js.map +1 -0
- package/dist/es2017/search/types/index.js +1 -0
- package/dist/es2017/search/types/index.js.map +1 -1
- package/dist/es2017/search/utils.js +5 -1
- package/dist/es2017/search/utils.js.map +1 -1
- package/dist/esm/search/filter-utils.js +152 -0
- package/dist/esm/search/filter-utils.js.map +1 -0
- package/dist/esm/search/index.js +1 -0
- package/dist/esm/search/index.js.map +1 -1
- package/dist/esm/search/types/IHubSearchResponse.js +1 -0
- package/dist/esm/search/types/IHubSearchResponse.js.map +1 -0
- package/dist/esm/search/types/index.js +1 -0
- package/dist/esm/search/types/index.js.map +1 -1
- package/dist/esm/search/utils.js +5 -1
- package/dist/esm/search/utils.js.map +1 -1
- package/dist/node/search/filter-utils.js +154 -0
- package/dist/node/search/filter-utils.js.map +1 -0
- package/dist/node/search/index.js +1 -0
- package/dist/node/search/index.js.map +1 -1
- package/dist/node/search/types/IHubSearchResponse.js +3 -0
- package/dist/node/search/types/IHubSearchResponse.js.map +1 -0
- package/dist/node/search/types/index.js +1 -0
- package/dist/node/search/types/index.js.map +1 -1
- package/dist/node/search/utils.js +5 -1
- package/dist/node/search/utils.js.map +1 -1
- package/dist/types/search/filter-utils.d.ts +18 -0
- package/dist/types/search/index.d.ts +1 -0
- package/dist/types/search/types/IHubSearchResponse.d.ts +17 -0
- package/dist/types/search/types/index.d.ts +1 -0
- package/dist/types/search/types/types.d.ts +7 -0
- package/dist/types/search/utils.d.ts +1 -0
- package/dist/umd/common.umd.js +172 -18
- package/dist/umd/common.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeFilterGroupsForPortal = exports.expandFilter = void 0;
|
|
4
|
+
const objects_1 = require("../objects");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
/**
|
|
8
|
+
* Expand a Filter into it's more expressive structure so it can be
|
|
9
|
+
* serialized deterministically.
|
|
10
|
+
*
|
|
11
|
+
* Props with type `string | string[] | MatchOptions` expand into `IMatchOptions`
|
|
12
|
+
* Props relative-dates are expanded into formal date-ranges
|
|
13
|
+
* @param filter
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
function expandFilter(filter) {
|
|
17
|
+
const result = {};
|
|
18
|
+
const dateProps = ["created", "modified", "lastlogin"];
|
|
19
|
+
const copyProps = ["filterType", "term", "searchUserAccess"];
|
|
20
|
+
const nonMatchOptionsFields = [...dateProps, ...copyProps];
|
|
21
|
+
// Do the conversion
|
|
22
|
+
Object.entries(filter).forEach(([key, value]) => {
|
|
23
|
+
// Handle MatchOptions fields
|
|
24
|
+
if (!nonMatchOptionsFields.includes(key)) {
|
|
25
|
+
// setProp side-steps typescript complaining
|
|
26
|
+
objects_1.setProp(key, utils_1.valueToMatchOptions(value), result);
|
|
27
|
+
}
|
|
28
|
+
// Handle Date fields
|
|
29
|
+
if (dateProps.includes(key)) {
|
|
30
|
+
const dateFieldValue = util_1.cloneObject(objects_1.getProp(filter, key));
|
|
31
|
+
if (objects_1.getProp(filter, `${key}.type`) === "relative-date") {
|
|
32
|
+
objects_1.setProp(key, utils_1.relativeDateToDateRange(dateFieldValue), result);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
objects_1.setProp(key, dateFieldValue, result);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Handle fields that are just copied forward
|
|
39
|
+
if (copyProps.includes(key) && filter.hasOwnProperty(key)) {
|
|
40
|
+
objects_1.setProp(key, value, result);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
exports.expandFilter = expandFilter;
|
|
46
|
+
/**
|
|
47
|
+
* Serialize a FilterGroup of any type for Portal
|
|
48
|
+
* @param filterGroups
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
function serializeFilterGroupsForPortal(filterGroups) {
|
|
52
|
+
const result = {
|
|
53
|
+
q: "",
|
|
54
|
+
filter: "",
|
|
55
|
+
};
|
|
56
|
+
result.q = filterGroups.map(serializeGroup).join(" AND ");
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
exports.serializeFilterGroupsForPortal = serializeFilterGroupsForPortal;
|
|
60
|
+
/**
|
|
61
|
+
* Serialize the filters in a FitlerGroup into a Portal Query
|
|
62
|
+
* @param group
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
function serializeGroup(group) {
|
|
66
|
+
const operation = group.operation || "AND";
|
|
67
|
+
const filters = group.filters.map(expandFilter);
|
|
68
|
+
return filters.map(serializeFilter).join(` ${operation} `);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Serialize a Filter into a Portal Query
|
|
72
|
+
* @param filter
|
|
73
|
+
* @returns
|
|
74
|
+
*/
|
|
75
|
+
function serializeFilter(filter) {
|
|
76
|
+
const dateProps = ["created", "modified"];
|
|
77
|
+
const specialProps = ["filterType", "searchUserAccess", "term", ...dateProps];
|
|
78
|
+
// TODO: Look at using reduce vs .map and remove the `.filter`
|
|
79
|
+
const stringFilters = Object.entries(filter)
|
|
80
|
+
.map(([key, value]) => {
|
|
81
|
+
if (!specialProps.includes(key)) {
|
|
82
|
+
return serializeMatchOptions(key, value);
|
|
83
|
+
}
|
|
84
|
+
if (dateProps.includes(key)) {
|
|
85
|
+
return serializeDateRange(key, value);
|
|
86
|
+
}
|
|
87
|
+
if (key === "term") {
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
.filter((e) => e !== undefined);
|
|
92
|
+
// eslint-disable-next-line unicorn/prefer-ternary
|
|
93
|
+
if (stringFilters.length > 1) {
|
|
94
|
+
return `(${stringFilters.join(" AND ")})`;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
return stringFilters[0];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Serialize MatchOptions into portal syntax
|
|
102
|
+
* @param key
|
|
103
|
+
* @param value
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
function serializeMatchOptions(key, value) {
|
|
107
|
+
let result = "";
|
|
108
|
+
if (value.any) {
|
|
109
|
+
result = `${serializeStringOrArray("OR", key, value.any)}`;
|
|
110
|
+
}
|
|
111
|
+
if (value.all) {
|
|
112
|
+
result =
|
|
113
|
+
(result ? result + " AND " : "") +
|
|
114
|
+
`${serializeStringOrArray("AND", key, value.all)}`;
|
|
115
|
+
}
|
|
116
|
+
if (value.not) {
|
|
117
|
+
// negate the entries if they are not
|
|
118
|
+
result =
|
|
119
|
+
(result ? result + " AND " : "") +
|
|
120
|
+
`${serializeStringOrArray("OR", `-${key}`, value.not)}`;
|
|
121
|
+
}
|
|
122
|
+
// TODO HANDLE EXACT
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Serialize a date-range into Portal syntax
|
|
127
|
+
* @param key
|
|
128
|
+
* @param range
|
|
129
|
+
* @returns
|
|
130
|
+
*/
|
|
131
|
+
function serializeDateRange(key, range) {
|
|
132
|
+
return `${key}:[${range.from} TO ${range.to}]`;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Serialize a `string` or `string[]` into a string
|
|
136
|
+
* @param join
|
|
137
|
+
* @param key
|
|
138
|
+
* @param value
|
|
139
|
+
* @returns
|
|
140
|
+
*/
|
|
141
|
+
function serializeStringOrArray(join, key, value) {
|
|
142
|
+
let q = "";
|
|
143
|
+
if (Array.isArray(value)) {
|
|
144
|
+
q = `${key}:"${value.join(`" ${join} ${key}:"`)}"`;
|
|
145
|
+
if (value.length > 1) {
|
|
146
|
+
q = `(${q})`;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
q = `${key}:"${value}"`;
|
|
151
|
+
}
|
|
152
|
+
return q;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=filter-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,5 @@ tslib_1.__exportStar(require("./_searchUsers"), exports);
|
|
|
12
12
|
tslib_1.__exportStar(require("./types"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./collectionState"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./convertCatalog"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./filter-utils"), exports);
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,0DAAgC;AAChC,wDAA8B;AAC9B,uDAA6B;AAC7B,kDAAwB;AACxB,2DAAiC;AACjC,0DAAgC;AAChC,yDAA+B;AAC/B,kDAAwB;AACxB,4DAAkC;AAClC,2DAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,0DAAgC;AAChC,wDAA8B;AAC9B,uDAA6B;AAC7B,kDAAwB;AACxB,2DAAiC;AACjC,0DAAgC;AAChC,yDAA+B;AAC/B,kDAAwB;AACxB,4DAAkC;AAClC,2DAAiC;AACjC,yDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IHubSearchResponse.js","sourceRoot":"","sources":["../../../../src/search/types/IHubSearchResponse.ts"],"names":[],"mappings":""}
|
|
@@ -8,5 +8,6 @@ tslib_1.__exportStar(require("./IFacetOption"), exports);
|
|
|
8
8
|
tslib_1.__exportStar(require("./IHubApiSearchRequest"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./IHubSearchOptions"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./IHubSearchResult"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./IHubSearchResponse"), exports);
|
|
11
12
|
tslib_1.__exportStar(require("./types"), exports);
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -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,kDAAwB"}
|
|
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"}
|
|
@@ -233,6 +233,7 @@ exports.mergeSearchOptions = mergeSearchOptions;
|
|
|
233
233
|
/**
|
|
234
234
|
* @private
|
|
235
235
|
* Serialize a `MatchOptions` into `q` or `filter` on an `ISearchOptions`
|
|
236
|
+
* DEPRECATED: Serialization should be handled in filter-utils.ts
|
|
236
237
|
* @param key
|
|
237
238
|
* @param opts
|
|
238
239
|
* @returns
|
|
@@ -333,7 +334,10 @@ exports.serializeDateRange = serializeDateRange;
|
|
|
333
334
|
function serializeStringOrArray(join, key, value) {
|
|
334
335
|
let q = "";
|
|
335
336
|
if (Array.isArray(value)) {
|
|
336
|
-
q =
|
|
337
|
+
q = `${key}:"${value.join(`" ${join} ${key}:"`)}"`;
|
|
338
|
+
if (value.length > 1) {
|
|
339
|
+
q = `(${q})`;
|
|
340
|
+
}
|
|
337
341
|
}
|
|
338
342
|
else {
|
|
339
343
|
q = `${key}:"${value}"`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/search/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/search/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ISearchOptions } from "@esri/arcgis-rest-portal";
|
|
2
|
+
import { IFilterGroup, FilterType } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Expand a Filter into it's more expressive structure so it can be
|
|
5
|
+
* serialized deterministically.
|
|
6
|
+
*
|
|
7
|
+
* Props with type `string | string[] | MatchOptions` expand into `IMatchOptions`
|
|
8
|
+
* Props relative-dates are expanded into formal date-ranges
|
|
9
|
+
* @param filter
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export declare function expandFilter<T>(filter: T): T;
|
|
13
|
+
/**
|
|
14
|
+
* Serialize a FilterGroup of any type for Portal
|
|
15
|
+
* @param filterGroups
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export declare function serializeFilterGroupsForPortal(filterGroups: Array<IFilterGroup<FilterType>>): ISearchOptions;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IFacet } from "./IFacet";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a generic search response interface with parameterized result type
|
|
4
|
+
* for different types of searches
|
|
5
|
+
*
|
|
6
|
+
* total - total number of results
|
|
7
|
+
* results - potentially paginated list of results
|
|
8
|
+
* hasNext - boolean flag for if there are any more pages ofresults
|
|
9
|
+
* next - invokable function for obtaining next page of results
|
|
10
|
+
*/
|
|
11
|
+
export interface IHubSearchResponse<T> {
|
|
12
|
+
total: number;
|
|
13
|
+
results: T[];
|
|
14
|
+
hasNext: boolean;
|
|
15
|
+
next: (params?: any) => Promise<IHubSearchResponse<T>>;
|
|
16
|
+
facets?: IFacet[];
|
|
17
|
+
}
|
|
@@ -24,6 +24,10 @@ import { IFacet } from "./IFacet";
|
|
|
24
24
|
export declare type Filter<T extends FilterType> = IFilterTypeMap[T] & {
|
|
25
25
|
filterType: T;
|
|
26
26
|
};
|
|
27
|
+
export interface IFilterGroup<T extends FilterType> {
|
|
28
|
+
operation?: "AND" | "OR";
|
|
29
|
+
filters: Array<Filter<T>>;
|
|
30
|
+
}
|
|
27
31
|
/**
|
|
28
32
|
* Groups of filters with an operation specifying how the
|
|
29
33
|
* filters should be connected when serialized
|
|
@@ -38,6 +42,9 @@ export interface IFilterGroup<T extends FilterType> {
|
|
|
38
42
|
*/
|
|
39
43
|
export interface IFilterTypeMap {
|
|
40
44
|
item: IItemFilter;
|
|
45
|
+
/**
|
|
46
|
+
* DEPRECATED use item
|
|
47
|
+
*/
|
|
41
48
|
content: IContentFilterDefinition;
|
|
42
49
|
user: IUserFilterDefinition;
|
|
43
50
|
group: IGroupFilterDefinition;
|
|
@@ -69,6 +69,7 @@ export declare function mergeSearchOptions(so1: ISearchOptions, so2: ISearchOpti
|
|
|
69
69
|
/**
|
|
70
70
|
* @private
|
|
71
71
|
* Serialize a `MatchOptions` into `q` or `filter` on an `ISearchOptions`
|
|
72
|
+
* DEPRECATED: Serialization should be handled in filter-utils.ts
|
|
72
73
|
* @param key
|
|
73
74
|
* @param opts
|
|
74
75
|
* @returns
|
package/dist/umd/common.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @preserve
|
|
2
|
-
* @esri/hub-common - v9.32.
|
|
2
|
+
* @esri/hub-common - v9.32.1 - Thu May 19 2022 17:14:39 GMT+0000 (Coordinated Universal Time)
|
|
3
3
|
* Copyright (c) 2022 Environmental Systems Research Institute, Inc.
|
|
4
4
|
* Apache-2.0
|
|
5
5
|
*/
|
|
@@ -13141,11 +13141,12 @@
|
|
|
13141
13141
|
/**
|
|
13142
13142
|
* @private
|
|
13143
13143
|
* Serialize a `MatchOptions` into `q` or `filter` on an `ISearchOptions`
|
|
13144
|
+
* DEPRECATED: Serialization should be handled in filter-utils.ts
|
|
13144
13145
|
* @param key
|
|
13145
13146
|
* @param opts
|
|
13146
13147
|
* @returns
|
|
13147
13148
|
*/
|
|
13148
|
-
function serializeMatchOptions(key, opts) {
|
|
13149
|
+
function serializeMatchOptions$1(key, opts) {
|
|
13149
13150
|
var result = {
|
|
13150
13151
|
q: "",
|
|
13151
13152
|
filter: "",
|
|
@@ -13170,7 +13171,7 @@
|
|
|
13170
13171
|
var groupFilterableFields = ["title", "typekeywords", "owner"];
|
|
13171
13172
|
var filterableFields = __spreadArrays(userFilterableFields, itemFilterableFields, groupFilterableFields);
|
|
13172
13173
|
if (filterableFields.includes(key)) {
|
|
13173
|
-
result.filter = serializeStringOrArray("AND", key, opts.exact);
|
|
13174
|
+
result.filter = serializeStringOrArray$1("AND", key, opts.exact);
|
|
13174
13175
|
}
|
|
13175
13176
|
else {
|
|
13176
13177
|
// Treat it the same as .all
|
|
@@ -13196,18 +13197,18 @@
|
|
|
13196
13197
|
}
|
|
13197
13198
|
// Handle the other props
|
|
13198
13199
|
if (opts.any) {
|
|
13199
|
-
result.q = serializeStringOrArray("OR", key, opts.any);
|
|
13200
|
+
result.q = serializeStringOrArray$1("OR", key, opts.any);
|
|
13200
13201
|
}
|
|
13201
13202
|
if (opts.all) {
|
|
13202
13203
|
result.q =
|
|
13203
13204
|
(result.q ? result.q + " AND " : "") +
|
|
13204
|
-
serializeStringOrArray("AND", key, opts.all);
|
|
13205
|
+
serializeStringOrArray$1("AND", key, opts.all);
|
|
13205
13206
|
}
|
|
13206
13207
|
if (opts.not) {
|
|
13207
13208
|
// negate the entries if they are not
|
|
13208
13209
|
result.q =
|
|
13209
13210
|
(result.q ? result.q + " AND " : "") +
|
|
13210
|
-
serializeStringOrArray("OR", "-" + key, opts.not);
|
|
13211
|
+
serializeStringOrArray$1("OR", "-" + key, opts.not);
|
|
13211
13212
|
}
|
|
13212
13213
|
return result;
|
|
13213
13214
|
}
|
|
@@ -13218,7 +13219,7 @@
|
|
|
13218
13219
|
* @param range
|
|
13219
13220
|
* @returns
|
|
13220
13221
|
*/
|
|
13221
|
-
function serializeDateRange(key, range) {
|
|
13222
|
+
function serializeDateRange$1(key, range) {
|
|
13222
13223
|
return {
|
|
13223
13224
|
q: key + ":[" + range.from + " TO " + range.to + "]",
|
|
13224
13225
|
filter: "",
|
|
@@ -13232,10 +13233,13 @@
|
|
|
13232
13233
|
* @param value
|
|
13233
13234
|
* @returns
|
|
13234
13235
|
*/
|
|
13235
|
-
function serializeStringOrArray(join, key, value) {
|
|
13236
|
+
function serializeStringOrArray$1(join, key, value) {
|
|
13236
13237
|
var q = "";
|
|
13237
13238
|
if (Array.isArray(value)) {
|
|
13238
|
-
q =
|
|
13239
|
+
q = key + ":\"" + value.join("\" " + join + " " + key + ":\"") + "\"";
|
|
13240
|
+
if (value.length > 1) {
|
|
13241
|
+
q = "(" + q + ")";
|
|
13242
|
+
}
|
|
13239
13243
|
}
|
|
13240
13244
|
else {
|
|
13241
13245
|
q = key + ":\"" + value + "\"";
|
|
@@ -13716,11 +13720,11 @@
|
|
|
13716
13720
|
var key = _a[0], value = _a[1];
|
|
13717
13721
|
// MatchOptions may go into either q or filter
|
|
13718
13722
|
if (!specialProps.includes(key)) {
|
|
13719
|
-
result = mergeSearchOptions(result, serializeMatchOptions(key, value), "AND");
|
|
13723
|
+
result = mergeSearchOptions(result, serializeMatchOptions$1(key, value), "AND");
|
|
13720
13724
|
}
|
|
13721
13725
|
// Dates only go into q
|
|
13722
13726
|
if (dateProps.includes(key)) {
|
|
13723
|
-
result = mergeSearchOptions(result, serializeDateRange(key, value), "AND");
|
|
13727
|
+
result = mergeSearchOptions(result, serializeDateRange$1(key, value), "AND");
|
|
13724
13728
|
}
|
|
13725
13729
|
});
|
|
13726
13730
|
return result;
|
|
@@ -15966,11 +15970,11 @@
|
|
|
15966
15970
|
var key = _a[0], value = _a[1];
|
|
15967
15971
|
// MatchOptions fields
|
|
15968
15972
|
if (!specialProps.includes(key)) {
|
|
15969
|
-
result = mergeSearchOptions(result, serializeMatchOptions(key, value), "AND");
|
|
15973
|
+
result = mergeSearchOptions(result, serializeMatchOptions$1(key, value), "AND");
|
|
15970
15974
|
}
|
|
15971
15975
|
// Dates only go into q
|
|
15972
15976
|
if (dateProps.includes(key)) {
|
|
15973
|
-
result = mergeSearchOptions(result, serializeDateRange(key, value), "AND");
|
|
15977
|
+
result = mergeSearchOptions(result, serializeDateRange$1(key, value), "AND");
|
|
15974
15978
|
}
|
|
15975
15979
|
});
|
|
15976
15980
|
// searchUserAccess is also a top-level property
|
|
@@ -16099,11 +16103,11 @@
|
|
|
16099
16103
|
var key = _a[0], value = _a[1];
|
|
16100
16104
|
// MatchOptions fields
|
|
16101
16105
|
if (!specialProps.includes(key)) {
|
|
16102
|
-
result = mergeSearchOptions(result, serializeMatchOptions(key, value), "AND");
|
|
16106
|
+
result = mergeSearchOptions(result, serializeMatchOptions$1(key, value), "AND");
|
|
16103
16107
|
}
|
|
16104
16108
|
// Dates only go into q
|
|
16105
16109
|
if (dateProps.includes(key)) {
|
|
16106
|
-
result = mergeSearchOptions(result, serializeDateRange(key, value), "AND");
|
|
16110
|
+
result = mergeSearchOptions(result, serializeDateRange$1(key, value), "AND");
|
|
16107
16111
|
}
|
|
16108
16112
|
});
|
|
16109
16113
|
// disabled is also a top-level property
|
|
@@ -16604,6 +16608,154 @@
|
|
|
16604
16608
|
return catalog;
|
|
16605
16609
|
}
|
|
16606
16610
|
|
|
16611
|
+
/**
|
|
16612
|
+
* Expand a Filter into it's more expressive structure so it can be
|
|
16613
|
+
* serialized deterministically.
|
|
16614
|
+
*
|
|
16615
|
+
* Props with type `string | string[] | MatchOptions` expand into `IMatchOptions`
|
|
16616
|
+
* Props relative-dates are expanded into formal date-ranges
|
|
16617
|
+
* @param filter
|
|
16618
|
+
* @returns
|
|
16619
|
+
*/
|
|
16620
|
+
function expandFilter(filter) {
|
|
16621
|
+
var result = {};
|
|
16622
|
+
var dateProps = ["created", "modified", "lastlogin"];
|
|
16623
|
+
var copyProps = ["filterType", "term", "searchUserAccess"];
|
|
16624
|
+
var nonMatchOptionsFields = __spreadArrays(dateProps, copyProps);
|
|
16625
|
+
// Do the conversion
|
|
16626
|
+
Object.entries(filter).forEach(function (_a) {
|
|
16627
|
+
var key = _a[0], value = _a[1];
|
|
16628
|
+
// Handle MatchOptions fields
|
|
16629
|
+
if (!nonMatchOptionsFields.includes(key)) {
|
|
16630
|
+
// setProp side-steps typescript complaining
|
|
16631
|
+
setProp(key, valueToMatchOptions(value), result);
|
|
16632
|
+
}
|
|
16633
|
+
// Handle Date fields
|
|
16634
|
+
if (dateProps.includes(key)) {
|
|
16635
|
+
var dateFieldValue = cloneObject$1(getProp(filter, key));
|
|
16636
|
+
if (getProp(filter, key + ".type") === "relative-date") {
|
|
16637
|
+
setProp(key, relativeDateToDateRange(dateFieldValue), result);
|
|
16638
|
+
}
|
|
16639
|
+
else {
|
|
16640
|
+
setProp(key, dateFieldValue, result);
|
|
16641
|
+
}
|
|
16642
|
+
}
|
|
16643
|
+
// Handle fields that are just copied forward
|
|
16644
|
+
if (copyProps.includes(key) && filter.hasOwnProperty(key)) {
|
|
16645
|
+
setProp(key, value, result);
|
|
16646
|
+
}
|
|
16647
|
+
});
|
|
16648
|
+
return result;
|
|
16649
|
+
}
|
|
16650
|
+
/**
|
|
16651
|
+
* Serialize a FilterGroup of any type for Portal
|
|
16652
|
+
* @param filterGroups
|
|
16653
|
+
* @returns
|
|
16654
|
+
*/
|
|
16655
|
+
function serializeFilterGroupsForPortal(filterGroups) {
|
|
16656
|
+
var result = {
|
|
16657
|
+
q: "",
|
|
16658
|
+
filter: "",
|
|
16659
|
+
};
|
|
16660
|
+
result.q = filterGroups.map(serializeGroup).join(" AND ");
|
|
16661
|
+
return result;
|
|
16662
|
+
}
|
|
16663
|
+
/**
|
|
16664
|
+
* Serialize the filters in a FitlerGroup into a Portal Query
|
|
16665
|
+
* @param group
|
|
16666
|
+
* @returns
|
|
16667
|
+
*/
|
|
16668
|
+
function serializeGroup(group) {
|
|
16669
|
+
var operation = group.operation || "AND";
|
|
16670
|
+
var filters = group.filters.map(expandFilter);
|
|
16671
|
+
return filters.map(serializeFilter).join(" " + operation + " ");
|
|
16672
|
+
}
|
|
16673
|
+
/**
|
|
16674
|
+
* Serialize a Filter into a Portal Query
|
|
16675
|
+
* @param filter
|
|
16676
|
+
* @returns
|
|
16677
|
+
*/
|
|
16678
|
+
function serializeFilter(filter) {
|
|
16679
|
+
var dateProps = ["created", "modified"];
|
|
16680
|
+
var specialProps = __spreadArrays(["filterType", "searchUserAccess", "term"], dateProps);
|
|
16681
|
+
// TODO: Look at using reduce vs .map and remove the `.filter`
|
|
16682
|
+
var stringFilters = Object.entries(filter)
|
|
16683
|
+
.map(function (_a) {
|
|
16684
|
+
var key = _a[0], value = _a[1];
|
|
16685
|
+
if (!specialProps.includes(key)) {
|
|
16686
|
+
return serializeMatchOptions(key, value);
|
|
16687
|
+
}
|
|
16688
|
+
if (dateProps.includes(key)) {
|
|
16689
|
+
return serializeDateRange(key, value);
|
|
16690
|
+
}
|
|
16691
|
+
if (key === "term") {
|
|
16692
|
+
return value;
|
|
16693
|
+
}
|
|
16694
|
+
})
|
|
16695
|
+
.filter(function (e) { return e !== undefined; });
|
|
16696
|
+
// eslint-disable-next-line unicorn/prefer-ternary
|
|
16697
|
+
if (stringFilters.length > 1) {
|
|
16698
|
+
return "(" + stringFilters.join(" AND ") + ")";
|
|
16699
|
+
}
|
|
16700
|
+
else {
|
|
16701
|
+
return stringFilters[0];
|
|
16702
|
+
}
|
|
16703
|
+
}
|
|
16704
|
+
/**
|
|
16705
|
+
* Serialize MatchOptions into portal syntax
|
|
16706
|
+
* @param key
|
|
16707
|
+
* @param value
|
|
16708
|
+
* @returns
|
|
16709
|
+
*/
|
|
16710
|
+
function serializeMatchOptions(key, value) {
|
|
16711
|
+
var result = "";
|
|
16712
|
+
if (value.any) {
|
|
16713
|
+
result = "" + serializeStringOrArray("OR", key, value.any);
|
|
16714
|
+
}
|
|
16715
|
+
if (value.all) {
|
|
16716
|
+
result =
|
|
16717
|
+
(result ? result + " AND " : "") +
|
|
16718
|
+
("" + serializeStringOrArray("AND", key, value.all));
|
|
16719
|
+
}
|
|
16720
|
+
if (value.not) {
|
|
16721
|
+
// negate the entries if they are not
|
|
16722
|
+
result =
|
|
16723
|
+
(result ? result + " AND " : "") +
|
|
16724
|
+
("" + serializeStringOrArray("OR", "-" + key, value.not));
|
|
16725
|
+
}
|
|
16726
|
+
// TODO HANDLE EXACT
|
|
16727
|
+
return result;
|
|
16728
|
+
}
|
|
16729
|
+
/**
|
|
16730
|
+
* Serialize a date-range into Portal syntax
|
|
16731
|
+
* @param key
|
|
16732
|
+
* @param range
|
|
16733
|
+
* @returns
|
|
16734
|
+
*/
|
|
16735
|
+
function serializeDateRange(key, range) {
|
|
16736
|
+
return key + ":[" + range.from + " TO " + range.to + "]";
|
|
16737
|
+
}
|
|
16738
|
+
/**
|
|
16739
|
+
* Serialize a `string` or `string[]` into a string
|
|
16740
|
+
* @param join
|
|
16741
|
+
* @param key
|
|
16742
|
+
* @param value
|
|
16743
|
+
* @returns
|
|
16744
|
+
*/
|
|
16745
|
+
function serializeStringOrArray(join, key, value) {
|
|
16746
|
+
var q = "";
|
|
16747
|
+
if (Array.isArray(value)) {
|
|
16748
|
+
q = key + ":\"" + value.join("\" " + join + " " + key + ":\"") + "\"";
|
|
16749
|
+
if (value.length > 1) {
|
|
16750
|
+
q = "(" + q + ")";
|
|
16751
|
+
}
|
|
16752
|
+
}
|
|
16753
|
+
else {
|
|
16754
|
+
q = key + ":\"" + value + "\"";
|
|
16755
|
+
}
|
|
16756
|
+
return q;
|
|
16757
|
+
}
|
|
16758
|
+
|
|
16607
16759
|
/**
|
|
16608
16760
|
* Add telemetry config object
|
|
16609
16761
|
* @private
|
|
@@ -18487,6 +18639,7 @@
|
|
|
18487
18639
|
exports.expandApi = expandApi;
|
|
18488
18640
|
exports.expandApis = expandApis;
|
|
18489
18641
|
exports.expandContentFilter = expandContentFilter;
|
|
18642
|
+
exports.expandFilter = expandFilter;
|
|
18490
18643
|
exports.expandGroupFilter = expandGroupFilter;
|
|
18491
18644
|
exports.expandTypeField = expandTypeField;
|
|
18492
18645
|
exports.expandUserFilter = expandUserFilter;
|
|
@@ -18629,12 +18782,13 @@
|
|
|
18629
18782
|
exports.searchSites = searchSites;
|
|
18630
18783
|
exports.serializeCollectionState = serializeCollectionState;
|
|
18631
18784
|
exports.serializeContentFilterForPortal = serializeContentFilterForPortal;
|
|
18632
|
-
exports.serializeDateRange = serializeDateRange;
|
|
18785
|
+
exports.serializeDateRange = serializeDateRange$1;
|
|
18786
|
+
exports.serializeFilterGroupsForPortal = serializeFilterGroupsForPortal;
|
|
18633
18787
|
exports.serializeGroupFilterForPortal = serializeGroupFilterForPortal;
|
|
18634
|
-
exports.serializeMatchOptions = serializeMatchOptions;
|
|
18788
|
+
exports.serializeMatchOptions = serializeMatchOptions$1;
|
|
18635
18789
|
exports.serializeModel = serializeModel;
|
|
18636
18790
|
exports.serializeSpatialReference = serializeSpatialReference;
|
|
18637
|
-
exports.serializeStringOrArray = serializeStringOrArray;
|
|
18791
|
+
exports.serializeStringOrArray = serializeStringOrArray$1;
|
|
18638
18792
|
exports.serializeUserFilterForPortal = serializeUserFilterForPortal;
|
|
18639
18793
|
exports.setContentHubId = setContentHubId;
|
|
18640
18794
|
exports.setContentSiteUrls = setContentSiteUrls;
|