@fluid-topics/ft-search-context 1.1.107 → 1.1.111
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/build/ft-search-context.d.ts +2 -3
- package/build/ft-search-context.js +0 -6
- package/build/ft-search-context.light.js +6 -6
- package/build/ft-search-context.min.js +17 -17
- package/build/ft-search-context.properties.d.ts +2 -2
- package/build/store/FtSearchStateManager.d.ts +7 -5
- package/build/store/FtSearchStateManager.js +66 -13
- package/build/store/redux.d.ts +2 -4
- package/build/store/redux.js +2 -5
- package/package.json +5 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FtMetadataFilter, FtSearchSortCriterion } from "@fluid-topics/public-api";
|
|
2
2
|
export interface FtSearchContextProperties {
|
|
3
3
|
query?: string;
|
|
4
4
|
contentLocale?: string;
|
|
5
|
-
filters?:
|
|
5
|
+
filters?: FtMetadataFilter[];
|
|
6
6
|
sort?: FtSearchSortCriterion[];
|
|
7
7
|
pageSize?: number;
|
|
8
8
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { FtSearchPageState } from "./model";
|
|
2
2
|
import { FtReduxStore } from "@fluid-topics/ft-wc-utils";
|
|
3
3
|
import { FtSearchPageStateReducers } from "./redux";
|
|
4
|
-
import {
|
|
4
|
+
import { FtDateFilterTypeKeys, FtMetadataFilter, FtPublicClusterSortCriterion, FtSearchRequest, FtSearchScope, FtSearchSortCriterion, FtVirtualField } from "@fluid-topics/public-api";
|
|
5
5
|
import { FtSearchService } from "./utils/FtSearchService";
|
|
6
|
-
import { FtPeriodFilter } from "@fluid-topics/public-api/dist/mjs/types/ft-common/public";
|
|
7
6
|
export declare const searchInDocumentTitlesOnlySelector: (s: FtSearchPageState) => boolean;
|
|
8
7
|
export declare class ClearAllFiltersEvent extends Event {
|
|
9
8
|
static eventName: string;
|
|
@@ -23,24 +22,27 @@ export declare class FtSearchStateManager {
|
|
|
23
22
|
setPageSize(pageSize: number): void;
|
|
24
23
|
setPageNumber(pageNumber: number): void;
|
|
25
24
|
setSort(sort: FtSearchSortCriterion[]): void;
|
|
26
|
-
setFilters(filters:
|
|
25
|
+
setFilters(filters: FtMetadataFilter[]): void;
|
|
27
26
|
setClusterSortCriterion(criterions: FtPublicClusterSortCriterion[]): void;
|
|
28
27
|
setSearchInDocumentTitlesOnly(searchInDocumentTitleOnly: boolean): void;
|
|
29
28
|
setVirtualField(virtualField: FtVirtualField): void;
|
|
30
29
|
get searchInDocumentTitlesOnly(): boolean;
|
|
31
|
-
get periodFilter(): FtPeriodFilter | undefined;
|
|
32
30
|
clearAllFilters(): void;
|
|
33
31
|
addFacet(id: string): void;
|
|
34
32
|
replaceFacet(oldId: string, newId?: string): void;
|
|
35
33
|
private get facetIds();
|
|
36
34
|
private set facetIds(value);
|
|
37
35
|
setFilter(key: string, values: string[]): void;
|
|
36
|
+
setValueFilter(key: string, values: string[]): void;
|
|
37
|
+
setDateFilter(key: string, dateType: FtDateFilterTypeKeys): void;
|
|
38
|
+
removeDateFilter(key: string): void;
|
|
39
|
+
setRangeFilter(key: string, from: string, to: string): void;
|
|
40
|
+
removeRangeFilter(key: string): void;
|
|
38
41
|
setLiveQuery(query: string): void;
|
|
39
42
|
setRequest(request: FtSearchRequest): void;
|
|
40
43
|
setScope(scope: FtSearchScope): void;
|
|
41
44
|
setIgnoreEmptyQuery(ignoreEmptyQuery: boolean): void;
|
|
42
45
|
setOpenExternalDocumentInNewTab(openExternalDocumentInNewTab: boolean): void;
|
|
43
|
-
setPeriodFilter(periodFilter?: FtPeriodFilter): void;
|
|
44
46
|
private localesDebouncer;
|
|
45
47
|
updateLocales(): Promise<boolean>;
|
|
46
48
|
private searchDebouncer;
|
|
@@ -65,7 +65,7 @@ export class FtSearchStateManager {
|
|
|
65
65
|
this.launchSearch();
|
|
66
66
|
}
|
|
67
67
|
setFilters(filters) {
|
|
68
|
-
const cleanFilters = filters.filter(
|
|
68
|
+
const cleanFilters = filters.filter(f => !f.valueFilter || f.valueFilter.values.length > 0);
|
|
69
69
|
this.store.actions.setRequestFilters(cleanFilters);
|
|
70
70
|
this.store.actions.setPageNumber(1);
|
|
71
71
|
cleanFilters.forEach(f => {
|
|
@@ -97,9 +97,6 @@ export class FtSearchStateManager {
|
|
|
97
97
|
get searchInDocumentTitlesOnly() {
|
|
98
98
|
return searchInDocumentTitlesOnlySelector(this.store.getState());
|
|
99
99
|
}
|
|
100
|
-
get periodFilter() {
|
|
101
|
-
return this.store.getState().request.periodFilter;
|
|
102
|
-
}
|
|
103
100
|
// Used in GWT
|
|
104
101
|
clearAllFilters() {
|
|
105
102
|
this.setFilters([]);
|
|
@@ -125,10 +122,71 @@ export class FtSearchStateManager {
|
|
|
125
122
|
let facetsConf = uniqIds.map(id => ({ id: id }));
|
|
126
123
|
this.store.actions.setRequestFacets(facetsConf);
|
|
127
124
|
}
|
|
125
|
+
/* @deprecated */
|
|
128
126
|
setFilter(key, values) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
this.setValueFilter(key, values);
|
|
128
|
+
}
|
|
129
|
+
setValueFilter(key, values) {
|
|
130
|
+
let existingFilters = this.store.getState().request.metadataFilters;
|
|
131
|
+
let newFilter = {
|
|
132
|
+
key: key,
|
|
133
|
+
valueFilter: {
|
|
134
|
+
values: values,
|
|
135
|
+
negative: false,
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
let filters = [
|
|
139
|
+
...existingFilters.filter(f => !f.valueFilter),
|
|
140
|
+
...existingFilters.filter(f => f.valueFilter && f.key !== newFilter.key),
|
|
141
|
+
newFilter
|
|
142
|
+
];
|
|
143
|
+
this.setFilters(filters);
|
|
144
|
+
}
|
|
145
|
+
setDateFilter(key, dateType) {
|
|
146
|
+
let existingFilters = this.store.getState().request.metadataFilters;
|
|
147
|
+
let newFilter = {
|
|
148
|
+
key: key,
|
|
149
|
+
dateFilter: {
|
|
150
|
+
type: dateType
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
let filters = [
|
|
154
|
+
...existingFilters.filter(f => !f.dateFilter),
|
|
155
|
+
...existingFilters.filter(f => f.dateFilter && f.key !== newFilter.key),
|
|
156
|
+
newFilter
|
|
157
|
+
];
|
|
158
|
+
this.setFilters(filters);
|
|
159
|
+
}
|
|
160
|
+
removeDateFilter(key) {
|
|
161
|
+
let existingFilters = this.store.getState().request.metadataFilters;
|
|
162
|
+
const filters = [
|
|
163
|
+
...existingFilters.filter(f => !f.dateFilter),
|
|
164
|
+
...existingFilters.filter(f => f.dateFilter && f.key !== key),
|
|
165
|
+
];
|
|
166
|
+
this.setFilters(filters);
|
|
167
|
+
}
|
|
168
|
+
setRangeFilter(key, from, to) {
|
|
169
|
+
let existingFilters = this.store.getState().request.metadataFilters;
|
|
170
|
+
let newFilter = {
|
|
171
|
+
key: key,
|
|
172
|
+
rangeFilter: {
|
|
173
|
+
from: from,
|
|
174
|
+
to: to
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
let filters = [
|
|
178
|
+
...existingFilters.filter(f => !f.rangeFilter),
|
|
179
|
+
...existingFilters.filter(f => f.rangeFilter && f.key !== newFilter.key),
|
|
180
|
+
newFilter
|
|
181
|
+
];
|
|
182
|
+
this.setFilters(filters);
|
|
183
|
+
}
|
|
184
|
+
removeRangeFilter(key) {
|
|
185
|
+
let existingFilters = this.store.getState().request.metadataFilters;
|
|
186
|
+
const filters = [
|
|
187
|
+
...existingFilters.filter(f => !f.rangeFilter),
|
|
188
|
+
...existingFilters.filter(f => f.rangeFilter && f.key !== key),
|
|
189
|
+
];
|
|
132
190
|
this.setFilters(filters);
|
|
133
191
|
}
|
|
134
192
|
setLiveQuery(query) {
|
|
@@ -152,11 +210,6 @@ export class FtSearchStateManager {
|
|
|
152
210
|
setOpenExternalDocumentInNewTab(openExternalDocumentInNewTab) {
|
|
153
211
|
this.openExternalDocumentInNewTab = openExternalDocumentInNewTab;
|
|
154
212
|
}
|
|
155
|
-
setPeriodFilter(periodFilter) {
|
|
156
|
-
this.store.actions.setRequestPeriodFilter(periodFilter);
|
|
157
|
-
this.store.actions.setPageNumber(1);
|
|
158
|
-
this.launchSearch();
|
|
159
|
-
}
|
|
160
213
|
updateLocales() {
|
|
161
214
|
return this.localesDebouncer.run(async () => this.store.actions.setLocales((await this.service.getAvailableSearchLocales()).contentLocales));
|
|
162
215
|
}
|
|
@@ -205,7 +258,7 @@ export class FtSearchStateManager {
|
|
|
205
258
|
const searchRequest = searchState.request;
|
|
206
259
|
const request = {
|
|
207
260
|
input: searchState.liveQuery,
|
|
208
|
-
|
|
261
|
+
metadataFilters: searchRequest.metadataFilters,
|
|
209
262
|
sort: searchRequest.sort,
|
|
210
263
|
contentLocale: searchRequest.contentLocale,
|
|
211
264
|
scope: searchRequest.scope,
|
package/build/store/redux.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare const searchPageStateReducers: {
|
|
|
8
8
|
setPageSize: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["paging"]["perPage"]>) => void;
|
|
9
9
|
setPageNumber: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["paging"]["page"]>) => void;
|
|
10
10
|
setRequestSort: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["sort"]>) => void;
|
|
11
|
-
setRequestFilters: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["
|
|
11
|
+
setRequestFilters: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["metadataFilters"]>) => void;
|
|
12
12
|
setRequestFacets: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["facets"]>) => void;
|
|
13
13
|
setRequestVirtualField: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["virtualField"]>) => void;
|
|
14
14
|
setRequestScope: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["scope"]>) => void;
|
|
@@ -20,7 +20,6 @@ declare const searchPageStateReducers: {
|
|
|
20
20
|
setPaging: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["paging"]>) => void;
|
|
21
21
|
setLiveQuery: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["liveQuery"]>) => void;
|
|
22
22
|
setSuggestResults: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["suggestResults"]>) => void;
|
|
23
|
-
setRequestPeriodFilter: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["periodFilter"]>) => void;
|
|
24
23
|
};
|
|
25
24
|
export type FtSearchPageStateReducers = typeof searchPageStateReducers;
|
|
26
25
|
export declare const createSearchPageStore: (id: string) => FtReduxStore<FtSearchPageState, {
|
|
@@ -30,7 +29,7 @@ export declare const createSearchPageStore: (id: string) => FtReduxStore<FtSearc
|
|
|
30
29
|
setPageSize: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["paging"]["perPage"]>) => void;
|
|
31
30
|
setPageNumber: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["paging"]["page"]>) => void;
|
|
32
31
|
setRequestSort: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["sort"]>) => void;
|
|
33
|
-
setRequestFilters: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["
|
|
32
|
+
setRequestFilters: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["metadataFilters"]>) => void;
|
|
34
33
|
setRequestFacets: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["facets"]>) => void;
|
|
35
34
|
setRequestVirtualField: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["virtualField"]>) => void;
|
|
36
35
|
setRequestScope: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["scope"]>) => void;
|
|
@@ -42,6 +41,5 @@ export declare const createSearchPageStore: (id: string) => FtReduxStore<FtSearc
|
|
|
42
41
|
setPaging: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["paging"]>) => void;
|
|
43
42
|
setLiveQuery: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["liveQuery"]>) => void;
|
|
44
43
|
setSuggestResults: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["suggestResults"]>) => void;
|
|
45
|
-
setRequestPeriodFilter: (state: FtSearchPageState, action: PayloadAction<FtSearchPageState["request"]["periodFilter"]>) => void;
|
|
46
44
|
}, import("redux").AnyAction>;
|
|
47
45
|
export {};
|
package/build/store/redux.js
CHANGED
|
@@ -19,7 +19,7 @@ const searchPageStateReducers = {
|
|
|
19
19
|
state.request.sort = action.payload;
|
|
20
20
|
},
|
|
21
21
|
setRequestFilters: (state, action) => {
|
|
22
|
-
state.request.
|
|
22
|
+
state.request.metadataFilters = action.payload;
|
|
23
23
|
},
|
|
24
24
|
setRequestFacets: (state, action) => {
|
|
25
25
|
state.request.facets = action.payload;
|
|
@@ -55,9 +55,6 @@ const searchPageStateReducers = {
|
|
|
55
55
|
setSuggestResults: (state, action) => {
|
|
56
56
|
state.suggestResults = action.payload;
|
|
57
57
|
},
|
|
58
|
-
setRequestPeriodFilter: (state, action) => {
|
|
59
|
-
state.request.periodFilter = action.payload;
|
|
60
|
-
},
|
|
61
58
|
};
|
|
62
59
|
export const createSearchPageStore = (id) => FtReduxStore.get({
|
|
63
60
|
name: "ft-search-" + id,
|
|
@@ -65,7 +62,7 @@ export const createSearchPageStore = (id) => FtReduxStore.get({
|
|
|
65
62
|
request: {
|
|
66
63
|
query: "",
|
|
67
64
|
clusterSortCriterions: [],
|
|
68
|
-
|
|
65
|
+
metadataFilters: [],
|
|
69
66
|
facets: [],
|
|
70
67
|
sort: [],
|
|
71
68
|
paging: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-topics/ft-search-context",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.111",
|
|
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.1.
|
|
23
|
-
"@fluid-topics/ft-wc-utils": "1.1.
|
|
22
|
+
"@fluid-topics/ft-app-context": "1.1.111",
|
|
23
|
+
"@fluid-topics/ft-wc-utils": "1.1.111",
|
|
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.77"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "23129f0e44db11e1d2c0431cedc4dde05c3241ee"
|
|
30
30
|
}
|