@esri/hub-common 9.41.0 → 9.41.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.
@@ -13,7 +13,13 @@ import { relativeDateToDateRange, valueToMatchOptions } from "./utils";
13
13
  export function expandFilter(filter) {
14
14
  const result = {};
15
15
  const dateProps = ["created", "modified", "lastlogin"];
16
- const copyProps = ["filterType", "term", "searchUserAccess", "isopendata"];
16
+ const copyProps = [
17
+ "filterType",
18
+ "term",
19
+ "searchUserAccess",
20
+ "isopendata",
21
+ "searchUserName",
22
+ ];
17
23
  const nonMatchOptionsFields = [...dateProps, ...copyProps];
18
24
  // Do the conversion
19
25
  Object.entries(filter).forEach(([key, value]) => {
@@ -45,27 +51,26 @@ export function expandFilter(filter) {
45
51
  * @returns
46
52
  */
47
53
  export function serializeFilterGroupsForPortal(filterGroups) {
48
- const result = {
49
- q: "",
50
- filter: "",
51
- };
52
- result.q = filterGroups.map(serializeGroup).join(" AND ");
54
+ const groupSearchOptions = filterGroups.map(serializeGroup);
55
+ const result = mergeSearchOptions(groupSearchOptions, "AND");
53
56
  return result;
54
57
  }
55
58
  /**
56
59
  * Serialize the filters in a FitlerGroup into a Portal Query
57
- * @param group
60
+ * @param filterGroup
58
61
  * @returns
59
62
  */
60
- function serializeGroup(group) {
61
- const operation = group.operation || "AND";
62
- const filters = group.filters.map(expandFilter);
63
- let q = filters.map(serializeFilter).join(` ${operation} `);
64
- // Wrap in parens if there is more than one filter
63
+ function serializeGroup(filterGroup) {
64
+ const operation = filterGroup.operation || "AND";
65
+ const filters = filterGroup.filters.map(expandFilter);
66
+ const filterSearchOptions = filters.map(serializeFilter);
67
+ // combine these searchOptions
68
+ const groupSearchOptions = mergeSearchOptions(filterSearchOptions, operation);
69
+ //
65
70
  if (filters.length > 1) {
66
- q = `(${q})`;
71
+ groupSearchOptions.q = `(${groupSearchOptions.q})`;
67
72
  }
68
- return q;
73
+ return groupSearchOptions;
69
74
  }
70
75
  /**
71
76
  * Serialize a Filter into a Portal Query
@@ -75,37 +80,65 @@ function serializeGroup(group) {
75
80
  function serializeFilter(filter) {
76
81
  const dateProps = ["created", "modified"];
77
82
  const boolProps = ["isopendata"];
83
+ const passThroughProps = ["searchUserAccess", "searchUserName"];
78
84
  const specialProps = [
79
85
  "filterType",
80
- "searchUserAccess",
81
86
  "term",
82
87
  ...dateProps,
83
88
  ...boolProps,
89
+ ...passThroughProps,
84
90
  ];
91
+ let qCount = 0;
85
92
  // TODO: Look at using reduce vs .map and remove the `.filter`
86
- const stringFilters = Object.entries(filter)
93
+ const opts = Object.entries(filter)
87
94
  .map(([key, value]) => {
95
+ const so = { q: "" };
88
96
  if (!specialProps.includes(key)) {
89
- return serializeMatchOptions(key, value);
97
+ qCount++;
98
+ so.q = serializeMatchOptions(key, value);
90
99
  }
91
100
  if (dateProps.includes(key)) {
92
- return serializeDateRange(key, value);
101
+ qCount++;
102
+ so.q = serializeDateRange(key, value);
93
103
  }
94
104
  if (boolProps.includes(key)) {
95
- return `${key}:${value}`;
105
+ qCount++;
106
+ so.q = `${key}:${value}`;
107
+ }
108
+ if (passThroughProps.includes(key)) {
109
+ so[key] = value;
96
110
  }
97
111
  if (key === "term") {
98
- return value;
112
+ qCount++;
113
+ so.q = value;
99
114
  }
115
+ return so;
100
116
  })
101
117
  .filter((e) => e !== undefined);
102
- // eslint-disable-next-line unicorn/prefer-ternary
103
- if (stringFilters.length > 1) {
104
- return `(${stringFilters.join(" AND ")})`;
105
- }
106
- else {
107
- return stringFilters[0];
118
+ // merge up all the searchOptions
119
+ const searchOptions = mergeSearchOptions(opts, "AND");
120
+ if (qCount > 1) {
121
+ searchOptions.q = `(${searchOptions.q})`;
108
122
  }
123
+ return searchOptions;
124
+ }
125
+ function mergeSearchOptions(options, operation) {
126
+ const result = options.reduce((acc, entry) => {
127
+ // walk the props
128
+ Object.entries(entry).forEach(([key, value]) => {
129
+ // if prop exists
130
+ if (acc[key]) {
131
+ // combine via operation
132
+ acc[key] = `${acc[key]} ${operation} ${value}`;
133
+ }
134
+ else {
135
+ // just copy the value
136
+ acc[key] = value;
137
+ }
138
+ });
139
+ return acc;
140
+ }, { q: "" });
141
+ return result;
109
142
  }
110
143
  /**
111
144
  * Serialize MatchOptions into portal syntax
@@ -1 +1 @@
1
- {"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQtC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAI,MAAS;IACvC,MAAM,MAAM,GAAG,EAAmB,CAAC;IACnC,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAC3E,MAAM,qBAAqB,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;IAC3D,oBAAoB;IACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxC,4CAA4C;YAC5C,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;SAClD;QACD,qBAAqB;QACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,eAAe,EAAE;gBACtD,OAAO,CAAC,GAAG,EAAE,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;aAC/D;iBAAM;gBACL,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;aACtC;SACF;QACD,6CAA6C;QAC7C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACzD,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,YAA6C;IAE7C,MAAM,MAAM,GAAG;QACb,CAAC,EAAE,EAAE;QACL,MAAM,EAAE,EAAE;KACO,CAAC;IAEpB,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAA+B;IACrD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;IAC5D,kDAAkD;IAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;KACd;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AACD;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAA0B;IACjD,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,kBAAkB;QAClB,MAAM;QACN,GAAG,SAAS;QACZ,GAAG,SAAS;KACb,CAAC;IACF,8DAA8D;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC/B,OAAO,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,kBAAkB,CAAC,GAAG,EAAE,KAAsC,CAAC,CAAC;SACxE;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;SAC1B;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAClC,kDAAkD;IAClD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;KAC3C;SAAM;QACL,OAAO,aAAa,CAAC,CAAC,CAAW,CAAC;KACnC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,KAAoB;IAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;KAC5D;IACD,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,MAAM;YACJ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;KACtD;IACD,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,qCAAqC;QACrC,MAAM;YACJ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;KAC3D;IACD,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,KAAyB;IAChE,OAAO,GAAG,GAAG,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,GAAG,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC7B,IAAkB,EAClB,GAAW,EACX,KAAwB;IAExB,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,CAAC,GAAG,GAAG,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;SACd;KACF;SAAM;QACL,CAAC,GAAG,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC;KACzB;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,13 @@ import { relativeDateToDateRange, valueToMatchOptions } from "./utils";
14
14
  export function expandFilter(filter) {
15
15
  var result = {};
16
16
  var dateProps = ["created", "modified", "lastlogin"];
17
- var copyProps = ["filterType", "term", "searchUserAccess", "isopendata"];
17
+ var copyProps = [
18
+ "filterType",
19
+ "term",
20
+ "searchUserAccess",
21
+ "isopendata",
22
+ "searchUserName",
23
+ ];
18
24
  var nonMatchOptionsFields = __spreadArrays(dateProps, copyProps);
19
25
  // Do the conversion
20
26
  Object.entries(filter).forEach(function (_a) {
@@ -47,27 +53,26 @@ export function expandFilter(filter) {
47
53
  * @returns
48
54
  */
49
55
  export function serializeFilterGroupsForPortal(filterGroups) {
50
- var result = {
51
- q: "",
52
- filter: "",
53
- };
54
- result.q = filterGroups.map(serializeGroup).join(" AND ");
56
+ var groupSearchOptions = filterGroups.map(serializeGroup);
57
+ var result = mergeSearchOptions(groupSearchOptions, "AND");
55
58
  return result;
56
59
  }
57
60
  /**
58
61
  * Serialize the filters in a FitlerGroup into a Portal Query
59
- * @param group
62
+ * @param filterGroup
60
63
  * @returns
61
64
  */
62
- function serializeGroup(group) {
63
- var operation = group.operation || "AND";
64
- var filters = group.filters.map(expandFilter);
65
- var q = filters.map(serializeFilter).join(" " + operation + " ");
66
- // Wrap in parens if there is more than one filter
65
+ function serializeGroup(filterGroup) {
66
+ var operation = filterGroup.operation || "AND";
67
+ var filters = filterGroup.filters.map(expandFilter);
68
+ var filterSearchOptions = filters.map(serializeFilter);
69
+ // combine these searchOptions
70
+ var groupSearchOptions = mergeSearchOptions(filterSearchOptions, operation);
71
+ //
67
72
  if (filters.length > 1) {
68
- q = "(" + q + ")";
73
+ groupSearchOptions.q = "(" + groupSearchOptions.q + ")";
69
74
  }
70
- return q;
75
+ return groupSearchOptions;
71
76
  }
72
77
  /**
73
78
  * Serialize a Filter into a Portal Query
@@ -77,36 +82,64 @@ function serializeGroup(group) {
77
82
  function serializeFilter(filter) {
78
83
  var dateProps = ["created", "modified"];
79
84
  var boolProps = ["isopendata"];
85
+ var passThroughProps = ["searchUserAccess", "searchUserName"];
80
86
  var specialProps = __spreadArrays([
81
87
  "filterType",
82
- "searchUserAccess",
83
88
  "term"
84
- ], dateProps, boolProps);
89
+ ], dateProps, boolProps, passThroughProps);
90
+ var qCount = 0;
85
91
  // TODO: Look at using reduce vs .map and remove the `.filter`
86
- var stringFilters = Object.entries(filter)
92
+ var opts = Object.entries(filter)
87
93
  .map(function (_a) {
88
94
  var key = _a[0], value = _a[1];
95
+ var so = { q: "" };
89
96
  if (!specialProps.includes(key)) {
90
- return serializeMatchOptions(key, value);
97
+ qCount++;
98
+ so.q = serializeMatchOptions(key, value);
91
99
  }
92
100
  if (dateProps.includes(key)) {
93
- return serializeDateRange(key, value);
101
+ qCount++;
102
+ so.q = serializeDateRange(key, value);
94
103
  }
95
104
  if (boolProps.includes(key)) {
96
- return key + ":" + value;
105
+ qCount++;
106
+ so.q = key + ":" + value;
107
+ }
108
+ if (passThroughProps.includes(key)) {
109
+ so[key] = value;
97
110
  }
98
111
  if (key === "term") {
99
- return value;
112
+ qCount++;
113
+ so.q = value;
100
114
  }
115
+ return so;
101
116
  })
102
117
  .filter(function (e) { return e !== undefined; });
103
- // eslint-disable-next-line unicorn/prefer-ternary
104
- if (stringFilters.length > 1) {
105
- return "(" + stringFilters.join(" AND ") + ")";
106
- }
107
- else {
108
- return stringFilters[0];
118
+ // merge up all the searchOptions
119
+ var searchOptions = mergeSearchOptions(opts, "AND");
120
+ if (qCount > 1) {
121
+ searchOptions.q = "(" + searchOptions.q + ")";
109
122
  }
123
+ return searchOptions;
124
+ }
125
+ function mergeSearchOptions(options, operation) {
126
+ var result = options.reduce(function (acc, entry) {
127
+ // walk the props
128
+ Object.entries(entry).forEach(function (_a) {
129
+ var key = _a[0], value = _a[1];
130
+ // if prop exists
131
+ if (acc[key]) {
132
+ // combine via operation
133
+ acc[key] = acc[key] + " " + operation + " " + value;
134
+ }
135
+ else {
136
+ // just copy the value
137
+ acc[key] = value;
138
+ }
139
+ });
140
+ return acc;
141
+ }, { q: "" });
142
+ return result;
110
143
  }
111
144
  /**
112
145
  * Serialize MatchOptions into portal syntax
@@ -1 +1 @@
1
- {"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQtC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAI,MAAS;IACvC,IAAM,MAAM,GAAG,EAAmB,CAAC;IACnC,IAAM,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACvD,IAAM,SAAS,GAAG;QAChB,YAAY;QACZ,MAAM;QACN,kBAAkB;QAClB,YAAY;QACZ,gBAAgB;KACjB,CAAC;IACF,IAAM,qBAAqB,kBAAO,SAAS,EAAK,SAAS,CAAC,CAAC;IAC3D,oBAAoB;IACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;YAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QACzC,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxC,4CAA4C;YAC5C,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;SAClD;QACD,qBAAqB;QACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,EAAK,GAAG,UAAO,CAAC,KAAK,eAAe,EAAE;gBACtD,OAAO,CAAC,GAAG,EAAE,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;aAC/D;iBAAM;gBACL,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;aACtC;SACF;QACD,6CAA6C;QAC7C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACzD,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,YAA6C;IAE7C,IAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE5D,IAAM,MAAM,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,WAAqC;IAC3D,IAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,KAAK,CAAC;IACjD,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtD,IAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACzD,8BAA8B;IAC9B,IAAM,kBAAkB,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAC9E,EAAE;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,kBAAkB,CAAC,CAAC,GAAG,MAAI,kBAAkB,CAAC,CAAC,MAAG,CAAC;KACpD;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AACD;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAA0B;IACjD,IAAM,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1C,IAAM,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,IAAM,gBAAgB,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAChE,IAAM,YAAY;QAChB,YAAY;QACZ,MAAM;OACH,SAAS,EACT,SAAS,EACT,gBAAgB,CACpB,CAAC;IACF,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,8DAA8D;IAC9D,IAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAChC,GAAG,CAAC,UAAC,EAAY;YAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QACf,IAAM,EAAE,GAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,EAAE,CAAC;YACT,EAAE,CAAC,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,EAAE,CAAC;YACT,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAsC,CAAC,CAAC;SACxE;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,EAAE,CAAC;YACT,EAAE,CAAC,CAAC,GAAM,GAAG,SAAI,KAAO,CAAC;SAC1B;QACD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAClC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACjB;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,MAAM,EAAE,CAAC;YACT,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;SACd;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;SACD,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,SAAS,EAAf,CAAe,CAAC,CAAC;IAElC,iCAAiC;IACjC,IAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtD,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,aAAa,CAAC,CAAC,GAAG,MAAI,aAAa,CAAC,CAAC,MAAG,CAAC;KAC1C;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAyB,EACzB,SAAuB;IAEvB,IAAM,MAAM,GAAmB,OAAO,CAAC,MAAM,CAC3C,UAAC,GAAG,EAAE,KAAK;QACT,iBAAiB;QACjB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACxC,iBAAiB;YACjB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;gBACZ,wBAAwB;gBACxB,GAAG,CAAC,GAAG,CAAC,GAAM,GAAG,CAAC,GAAG,CAAC,SAAI,SAAS,SAAI,KAAO,CAAC;aAChD;iBAAM;gBACL,sBAAsB;gBACtB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CAAC,EAAE,EAAE,EAAE,CACV,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,KAAoB;IAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,KAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAG,CAAC;KAC5D;IACD,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,MAAM;YACJ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChC,KAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAG,CAAA,CAAC;KACtD;IACD,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,qCAAqC;QACrC,MAAM;YACJ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChC,KAAG,sBAAsB,CAAC,IAAI,EAAE,MAAI,GAAK,EAAE,KAAK,CAAC,GAAG,CAAG,CAAA,CAAC;KAC3D;IACD,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,KAAyB;IAChE,OAAU,GAAG,UAAK,KAAK,CAAC,IAAI,YAAO,KAAK,CAAC,EAAE,MAAG,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC7B,IAAkB,EAClB,GAAW,EACX,KAAwB;IAExB,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,CAAC,GAAM,GAAG,WAAK,KAAK,CAAC,IAAI,CAAC,QAAK,IAAI,SAAI,GAAG,QAAI,CAAC,OAAG,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,CAAC,GAAG,MAAI,CAAC,MAAG,CAAC;SACd;KACF;SAAM;QACL,CAAC,GAAM,GAAG,WAAK,KAAK,OAAG,CAAC;KACzB;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -16,7 +16,13 @@ const utils_1 = require("./utils");
16
16
  function expandFilter(filter) {
17
17
  const result = {};
18
18
  const dateProps = ["created", "modified", "lastlogin"];
19
- const copyProps = ["filterType", "term", "searchUserAccess", "isopendata"];
19
+ const copyProps = [
20
+ "filterType",
21
+ "term",
22
+ "searchUserAccess",
23
+ "isopendata",
24
+ "searchUserName",
25
+ ];
20
26
  const nonMatchOptionsFields = [...dateProps, ...copyProps];
21
27
  // Do the conversion
22
28
  Object.entries(filter).forEach(([key, value]) => {
@@ -49,28 +55,27 @@ exports.expandFilter = expandFilter;
49
55
  * @returns
50
56
  */
51
57
  function serializeFilterGroupsForPortal(filterGroups) {
52
- const result = {
53
- q: "",
54
- filter: "",
55
- };
56
- result.q = filterGroups.map(serializeGroup).join(" AND ");
58
+ const groupSearchOptions = filterGroups.map(serializeGroup);
59
+ const result = mergeSearchOptions(groupSearchOptions, "AND");
57
60
  return result;
58
61
  }
59
62
  exports.serializeFilterGroupsForPortal = serializeFilterGroupsForPortal;
60
63
  /**
61
64
  * Serialize the filters in a FitlerGroup into a Portal Query
62
- * @param group
65
+ * @param filterGroup
63
66
  * @returns
64
67
  */
65
- function serializeGroup(group) {
66
- const operation = group.operation || "AND";
67
- const filters = group.filters.map(expandFilter);
68
- let q = filters.map(serializeFilter).join(` ${operation} `);
69
- // Wrap in parens if there is more than one filter
68
+ function serializeGroup(filterGroup) {
69
+ const operation = filterGroup.operation || "AND";
70
+ const filters = filterGroup.filters.map(expandFilter);
71
+ const filterSearchOptions = filters.map(serializeFilter);
72
+ // combine these searchOptions
73
+ const groupSearchOptions = mergeSearchOptions(filterSearchOptions, operation);
74
+ //
70
75
  if (filters.length > 1) {
71
- q = `(${q})`;
76
+ groupSearchOptions.q = `(${groupSearchOptions.q})`;
72
77
  }
73
- return q;
78
+ return groupSearchOptions;
74
79
  }
75
80
  /**
76
81
  * Serialize a Filter into a Portal Query
@@ -80,37 +85,65 @@ function serializeGroup(group) {
80
85
  function serializeFilter(filter) {
81
86
  const dateProps = ["created", "modified"];
82
87
  const boolProps = ["isopendata"];
88
+ const passThroughProps = ["searchUserAccess", "searchUserName"];
83
89
  const specialProps = [
84
90
  "filterType",
85
- "searchUserAccess",
86
91
  "term",
87
92
  ...dateProps,
88
93
  ...boolProps,
94
+ ...passThroughProps,
89
95
  ];
96
+ let qCount = 0;
90
97
  // TODO: Look at using reduce vs .map and remove the `.filter`
91
- const stringFilters = Object.entries(filter)
98
+ const opts = Object.entries(filter)
92
99
  .map(([key, value]) => {
100
+ const so = { q: "" };
93
101
  if (!specialProps.includes(key)) {
94
- return serializeMatchOptions(key, value);
102
+ qCount++;
103
+ so.q = serializeMatchOptions(key, value);
95
104
  }
96
105
  if (dateProps.includes(key)) {
97
- return serializeDateRange(key, value);
106
+ qCount++;
107
+ so.q = serializeDateRange(key, value);
98
108
  }
99
109
  if (boolProps.includes(key)) {
100
- return `${key}:${value}`;
110
+ qCount++;
111
+ so.q = `${key}:${value}`;
112
+ }
113
+ if (passThroughProps.includes(key)) {
114
+ so[key] = value;
101
115
  }
102
116
  if (key === "term") {
103
- return value;
117
+ qCount++;
118
+ so.q = value;
104
119
  }
120
+ return so;
105
121
  })
106
122
  .filter((e) => e !== undefined);
107
- // eslint-disable-next-line unicorn/prefer-ternary
108
- if (stringFilters.length > 1) {
109
- return `(${stringFilters.join(" AND ")})`;
110
- }
111
- else {
112
- return stringFilters[0];
123
+ // merge up all the searchOptions
124
+ const searchOptions = mergeSearchOptions(opts, "AND");
125
+ if (qCount > 1) {
126
+ searchOptions.q = `(${searchOptions.q})`;
113
127
  }
128
+ return searchOptions;
129
+ }
130
+ function mergeSearchOptions(options, operation) {
131
+ const result = options.reduce((acc, entry) => {
132
+ // walk the props
133
+ Object.entries(entry).forEach(([key, value]) => {
134
+ // if prop exists
135
+ if (acc[key]) {
136
+ // combine via operation
137
+ acc[key] = `${acc[key]} ${operation} ${value}`;
138
+ }
139
+ else {
140
+ // just copy the value
141
+ acc[key] = value;
142
+ }
143
+ });
144
+ return acc;
145
+ }, { q: "" });
146
+ return result;
114
147
  }
115
148
  /**
116
149
  * Serialize MatchOptions into portal syntax
@@ -1 +1 @@
1
- {"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"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"}
@@ -161,6 +161,7 @@ export interface IGroupFilterDefinition {
161
161
  orgid?: string | string[] | IMatchOptions;
162
162
  owner?: string | string[] | IMatchOptions;
163
163
  searchUserAccess?: "groupMember";
164
+ searchUserName?: string;
164
165
  tags?: string | string[] | IMatchOptions;
165
166
  term?: string;
166
167
  title?: string | string[] | IMatchOptions;