@fluid-topics/ft-search-context 1.3.14 → 1.3.16
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.
|
@@ -27,7 +27,7 @@ export class FtSearchStateManager {
|
|
|
27
27
|
this.buildSearchRequest = (state) => {
|
|
28
28
|
return {
|
|
29
29
|
...state.request,
|
|
30
|
-
facets: this.facetIds.map(id => ({ id })),
|
|
30
|
+
facets: this.facetIds.map((id) => ({ id })),
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
this.suggestDebouncer = new Debouncer(300);
|
|
@@ -63,11 +63,11 @@ export class FtSearchStateManager {
|
|
|
63
63
|
}
|
|
64
64
|
setContentLocale(contentLocale) {
|
|
65
65
|
var _a;
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
const locales = (_a = this.store.getState().locales) !== null && _a !== void 0 ? _a : [];
|
|
67
|
+
const previousContentLocale = this.store.getState().request.contentLocale;
|
|
68
68
|
if (contentLocale != previousContentLocale) {
|
|
69
69
|
if (locales.length > 0) {
|
|
70
|
-
const isKnown = (locale) => locales.some(l => l.lang == locale);
|
|
70
|
+
const isKnown = (locale) => locales.some((l) => l.lang == locale);
|
|
71
71
|
if (!isKnown(contentLocale)) {
|
|
72
72
|
contentLocale = isKnown(previousContentLocale) ? previousContentLocale : locales[0].lang;
|
|
73
73
|
}
|
|
@@ -92,7 +92,7 @@ export class FtSearchStateManager {
|
|
|
92
92
|
this.store.actions.setPageNumber(1);
|
|
93
93
|
}
|
|
94
94
|
setFilters(filters) {
|
|
95
|
-
const cleanFilters = filters.filter(f => !f.valueFilter || f.valueFilter.values.length > 0);
|
|
95
|
+
const cleanFilters = filters.filter((f) => !f.valueFilter || f.valueFilter.values.length > 0);
|
|
96
96
|
this.store.actions.setRequestFilters(cleanFilters);
|
|
97
97
|
this.store.actions.setPageNumber(1);
|
|
98
98
|
}
|
|
@@ -124,7 +124,7 @@ export class FtSearchStateManager {
|
|
|
124
124
|
this.facetIds = [...this.facetIds, id];
|
|
125
125
|
}
|
|
126
126
|
replaceFacet(oldId, newId) {
|
|
127
|
-
|
|
127
|
+
const facetIds = this.facetIds.filter((id) => id != oldId);
|
|
128
128
|
if (newId) {
|
|
129
129
|
facetIds.push(newId);
|
|
130
130
|
}
|
|
@@ -135,14 +135,14 @@ export class FtSearchStateManager {
|
|
|
135
135
|
const request = this.store.getState().request;
|
|
136
136
|
return [
|
|
137
137
|
...new Set([
|
|
138
|
-
...request.facets.map(f => f.id),
|
|
139
|
-
...((_a = request.metadataFilters) !== null && _a !== void 0 ? _a : []).map(f => f.key),
|
|
140
|
-
])
|
|
138
|
+
...request.facets.map((f) => f.id),
|
|
139
|
+
...((_a = request.metadataFilters) !== null && _a !== void 0 ? _a : []).map((f) => f.key),
|
|
140
|
+
]),
|
|
141
141
|
];
|
|
142
142
|
}
|
|
143
143
|
set facetIds(ids) {
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
const uniqIds = [...new Set(ids)];
|
|
145
|
+
const facetsConf = uniqIds.map((id) => ({ id: id }));
|
|
146
146
|
this.store.actions.setRequestFacets(facetsConf);
|
|
147
147
|
}
|
|
148
148
|
/** @deprecated */
|
|
@@ -150,65 +150,65 @@ export class FtSearchStateManager {
|
|
|
150
150
|
this.setValueFilter(key, values);
|
|
151
151
|
}
|
|
152
152
|
setValueFilter(key, values) {
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
const existingFilters = this.store.getState().request.metadataFilters;
|
|
154
|
+
const newFilter = {
|
|
155
155
|
key: key,
|
|
156
156
|
valueFilter: {
|
|
157
157
|
values: values,
|
|
158
158
|
negative: false,
|
|
159
159
|
},
|
|
160
160
|
};
|
|
161
|
-
|
|
162
|
-
...existingFilters.filter(f => !f.valueFilter),
|
|
163
|
-
...existingFilters.filter(f => f.valueFilter && f.key !== newFilter.key),
|
|
164
|
-
newFilter
|
|
161
|
+
const filters = [
|
|
162
|
+
...existingFilters.filter((f) => !f.valueFilter),
|
|
163
|
+
...existingFilters.filter((f) => f.valueFilter && f.key !== newFilter.key),
|
|
164
|
+
newFilter,
|
|
165
165
|
];
|
|
166
166
|
this.setFilters(filters);
|
|
167
167
|
}
|
|
168
168
|
setDateFilter(key, dateType) {
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
const existingFilters = this.store.getState().request.metadataFilters;
|
|
170
|
+
const newFilter = {
|
|
171
171
|
key: key,
|
|
172
172
|
dateFilter: {
|
|
173
|
-
type: dateType
|
|
173
|
+
type: dateType,
|
|
174
174
|
},
|
|
175
175
|
};
|
|
176
|
-
|
|
177
|
-
...existingFilters.filter(f => !f.dateFilter),
|
|
178
|
-
...existingFilters.filter(f => f.dateFilter && f.key !== newFilter.key),
|
|
179
|
-
newFilter
|
|
176
|
+
const filters = [
|
|
177
|
+
...existingFilters.filter((f) => !f.dateFilter),
|
|
178
|
+
...existingFilters.filter((f) => f.dateFilter && f.key !== newFilter.key),
|
|
179
|
+
newFilter,
|
|
180
180
|
];
|
|
181
181
|
this.setFilters(filters);
|
|
182
182
|
}
|
|
183
183
|
removeDateFilter(key) {
|
|
184
|
-
|
|
184
|
+
const existingFilters = this.store.getState().request.metadataFilters;
|
|
185
185
|
const filters = [
|
|
186
|
-
...existingFilters.filter(f => !f.dateFilter),
|
|
187
|
-
...existingFilters.filter(f => f.dateFilter && f.key !== key),
|
|
186
|
+
...existingFilters.filter((f) => !f.dateFilter),
|
|
187
|
+
...existingFilters.filter((f) => f.dateFilter && f.key !== key),
|
|
188
188
|
];
|
|
189
189
|
this.setFilters(filters);
|
|
190
190
|
}
|
|
191
191
|
setRangeFilter(key, from, to) {
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
const existingFilters = this.store.getState().request.metadataFilters;
|
|
193
|
+
const newFilter = {
|
|
194
194
|
key: key,
|
|
195
195
|
rangeFilter: {
|
|
196
196
|
from: from,
|
|
197
|
-
to: to
|
|
197
|
+
to: to,
|
|
198
198
|
},
|
|
199
199
|
};
|
|
200
|
-
|
|
201
|
-
...existingFilters.filter(f => !f.rangeFilter),
|
|
202
|
-
...existingFilters.filter(f => f.rangeFilter && f.key !== newFilter.key),
|
|
203
|
-
newFilter
|
|
200
|
+
const filters = [
|
|
201
|
+
...existingFilters.filter((f) => !f.rangeFilter),
|
|
202
|
+
...existingFilters.filter((f) => f.rangeFilter && f.key !== newFilter.key),
|
|
203
|
+
newFilter,
|
|
204
204
|
];
|
|
205
205
|
this.setFilters(filters);
|
|
206
206
|
}
|
|
207
207
|
removeRangeFilter(key) {
|
|
208
|
-
|
|
208
|
+
const existingFilters = this.store.getState().request.metadataFilters;
|
|
209
209
|
const filters = [
|
|
210
|
-
...existingFilters.filter(f => !f.rangeFilter),
|
|
211
|
-
...existingFilters.filter(f => f.rangeFilter && f.key !== key),
|
|
210
|
+
...existingFilters.filter((f) => !f.rangeFilter),
|
|
211
|
+
...existingFilters.filter((f) => f.rangeFilter && f.key !== key),
|
|
212
212
|
];
|
|
213
213
|
this.setFilters(filters);
|
|
214
214
|
}
|
|
@@ -218,7 +218,7 @@ export class FtSearchStateManager {
|
|
|
218
218
|
setRequest(request) {
|
|
219
219
|
this.store.actions.setRequest({
|
|
220
220
|
...request,
|
|
221
|
-
facets: this.store.getState().request.facets
|
|
221
|
+
facets: this.store.getState().request.facets,
|
|
222
222
|
});
|
|
223
223
|
this.store.actions.liveQuery(request.query);
|
|
224
224
|
this.store.actions.setPageNumber(1);
|
|
@@ -245,19 +245,21 @@ export class FtSearchStateManager {
|
|
|
245
245
|
this.store.actions.paging(undefined);
|
|
246
246
|
if (this.ignoreEmptyQuery && request.query.length == 0) {
|
|
247
247
|
this.store.actions.results(undefined);
|
|
248
|
+
this.store.actions.announcements(undefined);
|
|
248
249
|
this.store.actions.facets(undefined);
|
|
249
250
|
this.store.actions.spellcheck(undefined);
|
|
250
251
|
}
|
|
251
252
|
else {
|
|
252
253
|
this.cancelableSearch = cancelable(this.service.launchSearch(request));
|
|
253
254
|
const results = await this.cancelableSearch;
|
|
255
|
+
this.store.actions.announcements(results.announcements);
|
|
254
256
|
if (results.paging.currentPage <= 1) {
|
|
255
257
|
this.store.actions.results(results.results);
|
|
256
258
|
this.store.actions.facets(results.facets);
|
|
257
259
|
this.store.actions.spellcheck(results.spellcheck);
|
|
258
260
|
}
|
|
259
261
|
else {
|
|
260
|
-
|
|
262
|
+
const newResults = ((_b = this.store.getState().results) !== null && _b !== void 0 ? _b : []).concat(results.results);
|
|
261
263
|
this.store.actions.results(newResults);
|
|
262
264
|
// Focus on first new result
|
|
263
265
|
this.store.commands.clear(/^focus-result-/);
|
|
@@ -278,7 +280,7 @@ export class FtSearchStateManager {
|
|
|
278
280
|
try {
|
|
279
281
|
(_a = this.cancelableSuggest) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
280
282
|
this.cancelableSuggest = cancelable(this.service.launchSuggest(request));
|
|
281
|
-
|
|
283
|
+
const results = await this.cancelableSuggest;
|
|
282
284
|
this.store.actions.suggestResults(results.suggestions);
|
|
283
285
|
}
|
|
284
286
|
catch (e) {
|
|
@@ -293,6 +295,7 @@ export class FtSearchStateManager {
|
|
|
293
295
|
clearResults() {
|
|
294
296
|
this.store.actions.paging(undefined);
|
|
295
297
|
this.store.actions.results(undefined);
|
|
298
|
+
this.store.actions.announcements(undefined);
|
|
296
299
|
this.store.actions.facets(undefined);
|
|
297
300
|
this.store.actions.spellcheck(undefined);
|
|
298
301
|
}
|
package/build/store/model.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { FtSearchFacet, FtSearchLocale, FtSearchResultCluster, FtSearchResultsPageInfo, FtSpellcheck, FtSuggestResult } from "@fluid-topics/public-api";
|
|
1
|
+
import { FtSearchFacet, FtSearchLocale, FtSearchResultAnnouncement, FtSearchResultCluster, FtSearchResultsPageInfo, FtSpellcheck, FtSuggestResult } from "@fluid-topics/public-api";
|
|
2
2
|
import { EnrichedFtSearchRequest } from "@fluid-topics/ft-wc-utils";
|
|
3
3
|
export interface FtSearchPageState {
|
|
4
4
|
locales: Array<FtSearchLocale> | undefined;
|
|
5
5
|
request: EnrichedFtSearchRequest;
|
|
6
6
|
results: Array<FtSearchResultCluster> | undefined;
|
|
7
|
+
announcements: Array<FtSearchResultAnnouncement> | undefined;
|
|
7
8
|
facets: Array<FtSearchFacet> | undefined;
|
|
8
9
|
paging: FtSearchResultsPageInfo | undefined;
|
|
9
10
|
spellcheck: FtSpellcheck | undefined;
|
package/build/store/redux.js
CHANGED
|
@@ -60,7 +60,8 @@ export const createSearchPageStore = (id) => FtReduxStore.get({
|
|
|
60
60
|
spellcheck: undefined,
|
|
61
61
|
locales: [],
|
|
62
62
|
results: undefined,
|
|
63
|
-
|
|
63
|
+
announcements: undefined,
|
|
64
|
+
suggestResults: undefined,
|
|
64
65
|
},
|
|
65
|
-
reducers: searchPageStateReducers
|
|
66
|
+
reducers: searchPageStateReducers,
|
|
66
67
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-topics/ft-search-context",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.16",
|
|
4
4
|
"description": "Context block for integrated search components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Lit"
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@fluid-topics/ft-app-context": "1.3.
|
|
23
|
-
"@fluid-topics/ft-wc-utils": "1.3.
|
|
22
|
+
"@fluid-topics/ft-app-context": "1.3.16",
|
|
23
|
+
"@fluid-topics/ft-wc-utils": "1.3.16",
|
|
24
24
|
"lit": "3.1.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@fluid-topics/public-api": "1.0.
|
|
27
|
+
"@fluid-topics/public-api": "1.0.101"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "092d409b397263ffef1f860386137eea8e5f7c2c"
|
|
30
30
|
}
|