@searchstax-inc/searchstudio-ux-vue 4.2.34 → 4.2.50
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/CHANGELOG.md +13 -0
- package/README.md +46 -1
- package/dist/@searchstax-inc/components/SearchstaxAnswerWidget.vue.d.ts +8 -2
- package/dist/@searchstax-inc/components/SearchstaxExternalPromotionsWidget.vue.d.ts +2 -2
- package/dist/@searchstax-inc/components/SearchstaxFacetsWidget.vue.d.ts +34 -12
- package/dist/@searchstax-inc/components/SearchstaxLocationWidget.vue.d.ts +2 -2
- package/dist/@searchstax-inc/components/SearchstaxPaginationWidget.vue.d.ts +4 -4
- package/dist/@searchstax-inc/components/SearchstaxRelatedSearchesWidget.vue.d.ts +2 -2
- package/dist/@searchstax-inc/components/SearchstaxResultWidget.vue.d.ts +475 -269
- package/dist/@searchstax-inc/components/SearchstaxSearchFeedbackWidget.vue.d.ts +2 -2
- package/dist/@searchstax-inc/components/SearchstaxSortingWidget.vue.d.ts +2 -2
- package/dist/@searchstax-inc/components/icons/IconCommunity.vue.d.ts +2 -0
- package/dist/@searchstax-inc/components/icons/IconDocumentation.vue.d.ts +2 -0
- package/dist/@searchstax-inc/components/icons/IconEcosystem.vue.d.ts +2 -0
- package/dist/@searchstax-inc/components/icons/IconSupport.vue.d.ts +2 -0
- package/dist/@searchstax-inc/components/icons/IconTooling.vue.d.ts +2 -0
- package/dist/@searchstax-inc/components/templates/SearchstaxAnswerWidgetTemplate.vue.d.ts +24 -0
- package/dist/@searchstax-inc/components/templates/SearchstaxFacetsWidgetMobileTemplate.vue.d.ts +5 -5
- package/dist/@searchstax-inc/searchstudio-ux-vue.cjs +16 -16
- package/dist/@searchstax-inc/searchstudio-ux-vue.iife.js +18 -18
- package/dist/@searchstax-inc/searchstudio-ux-vue.mjs +1002 -841
- package/dist/@searchstax-inc/stores/searchstaxStore.d.ts +468 -265
- package/dist/App.vue.d.ts +2 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
3
|
All notable changes to the "searchstudio-ux-vue" project will be documented in this file.
|
|
4
|
+
## [4.2.50]
|
|
5
|
+
### Features
|
|
6
|
+
- Added conversation functionality for Vue and React
|
|
7
|
+
- Added support for grouped results
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
- Security fixes
|
|
11
|
+
|
|
12
|
+
## [4.2.36]
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
- Facets template now supports custom variables
|
|
15
|
+
- Unmapped fields now persist data types correctly
|
|
16
|
+
|
|
4
17
|
## [4.2.34]
|
|
5
18
|
### Bug Fixes
|
|
6
19
|
- Addressed some vulnerabilities
|
package/README.md
CHANGED
|
@@ -222,6 +222,51 @@ It receives the following props:
|
|
|
222
222
|
<button class="searchstax-answer-load-more-button" @click="showMore">Show More</button>
|
|
223
223
|
</div>
|
|
224
224
|
</div>
|
|
225
|
+
<div
|
|
226
|
+
v-if="!answerData.answerLoading && !answerData.showMoreButtonVisible && answerData.isConversation"
|
|
227
|
+
:class="{
|
|
228
|
+
'searchstax-conversation-container': true,
|
|
229
|
+
'searchstax-conversation-container-full-screen': answerData.isFullScreenConversation
|
|
230
|
+
}"
|
|
231
|
+
>
|
|
232
|
+
<div v-if="answerData.showConversationHeader" class="searchstax-conversation-full-screen-header">
|
|
233
|
+
<button
|
|
234
|
+
type="button"
|
|
235
|
+
class="searchstax-conversation-back-to-results"
|
|
236
|
+
@click="() => exitConversation?.()"
|
|
237
|
+
>
|
|
238
|
+
Back to results
|
|
239
|
+
</button>
|
|
240
|
+
<div class="searchstax-conversation-full-screen-title">Ask SearchStax</div>
|
|
241
|
+
</div>
|
|
242
|
+
<div
|
|
243
|
+
v-if="answerData.showConversationMessages && answerData.conversationMessages?.length"
|
|
244
|
+
class="searchstax-conversation-messages-container"
|
|
245
|
+
>
|
|
246
|
+
<div
|
|
247
|
+
v-for="(message, index) in answerData.conversationMessages"
|
|
248
|
+
:key="message.conversationMessageId ?? index"
|
|
249
|
+
:class="['searchstax-conversation-messages-container-message', message.messageClass]"
|
|
250
|
+
v-html="message.formattedMessage"
|
|
251
|
+
></div>
|
|
252
|
+
</div>
|
|
253
|
+
<div v-if="answerData.showConversationInput" class="searchstax-conversation-input-container">
|
|
254
|
+
<input
|
|
255
|
+
type="text"
|
|
256
|
+
id="searchstax-conversation-input"
|
|
257
|
+
class="searchstax-conversation-input"
|
|
258
|
+
placeholder="Ask a follow-up question"
|
|
259
|
+
:ref="(el) => setConversationInputRef?.(el as Element | null)"
|
|
260
|
+
@keydown="handleConversationInputKeydown"
|
|
261
|
+
/>
|
|
262
|
+
<button
|
|
263
|
+
type="button"
|
|
264
|
+
class="searchstax-conversation-search-icon searchstax-search-icon"
|
|
265
|
+
aria-label="Submit follow-up question"
|
|
266
|
+
@click="handleConversationSubmitClick"
|
|
267
|
+
></button>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
225
270
|
<div class="searchstax-answer-footer">
|
|
226
271
|
<div id="feedbackWidgetContainer"></div>
|
|
227
272
|
<div class="searchstax-lightweight-widget-separator-inline"></div>
|
|
@@ -1140,7 +1185,7 @@ It receives following props:
|
|
|
1140
1185
|
<div
|
|
1141
1186
|
class="searchstax-facets-pill searchstax-facets-pill-facets"
|
|
1142
1187
|
v-for="facet in selectedFacetsCheckboxes"
|
|
1143
|
-
:key="facet.value"
|
|
1188
|
+
:key="String(facet.value)"
|
|
1144
1189
|
@click="unselectFacet(facet)"
|
|
1145
1190
|
>
|
|
1146
1191
|
<div class="searchstax-facets-pill-label">{{ facet.value }} ({{ facet.count }})</div>
|
|
@@ -2,6 +2,8 @@ import { IFeedbackWidgetProperties } from '@searchstax-inc/searchstudio-ux-js';
|
|
|
2
2
|
interface Props {
|
|
3
3
|
showMoreAfterWordCount?: number;
|
|
4
4
|
feedbackwidget?: IFeedbackWidgetProperties;
|
|
5
|
+
isFullScreenConversation?: boolean;
|
|
6
|
+
emptyConversationMessageOverride?: string;
|
|
5
7
|
testString?: string;
|
|
6
8
|
}
|
|
7
9
|
declare var __VLS_4: {
|
|
@@ -11,6 +13,7 @@ declare var __VLS_4: {
|
|
|
11
13
|
isFullScreenConversation?: boolean;
|
|
12
14
|
showConversationHeader?: boolean;
|
|
13
15
|
showConversationMessages?: boolean;
|
|
16
|
+
showConversationInput?: boolean;
|
|
14
17
|
conversationMessages?: {
|
|
15
18
|
formattedMessage: string;
|
|
16
19
|
messageClass?: string;
|
|
@@ -41,12 +44,12 @@ declare var __VLS_4: {
|
|
|
41
44
|
unit: string | null;
|
|
42
45
|
unmappedFields: {
|
|
43
46
|
key: string;
|
|
44
|
-
value:
|
|
47
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
45
48
|
isImage?: boolean;
|
|
46
49
|
}[];
|
|
47
50
|
allFields: {
|
|
48
51
|
key: string;
|
|
49
|
-
value:
|
|
52
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
50
53
|
}[];
|
|
51
54
|
}[];
|
|
52
55
|
isLastPage: boolean;
|
|
@@ -101,6 +104,9 @@ declare var __VLS_4: {
|
|
|
101
104
|
locationError: boolean;
|
|
102
105
|
};
|
|
103
106
|
showMore: (event: Event) => void;
|
|
107
|
+
submitConversationQuestion: (question: string) => void;
|
|
108
|
+
exitConversation: () => void;
|
|
109
|
+
setConversationInputRef: (el: Element | null) => void;
|
|
104
110
|
};
|
|
105
111
|
type __VLS_Slots = {} & {
|
|
106
112
|
answer?: (props: typeof __VLS_4) => any;
|
|
@@ -30,12 +30,12 @@ declare var __VLS_4: {
|
|
|
30
30
|
unit: string | null;
|
|
31
31
|
unmappedFields: {
|
|
32
32
|
key: string;
|
|
33
|
-
value:
|
|
33
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
34
34
|
isImage?: boolean;
|
|
35
35
|
}[];
|
|
36
36
|
allFields: {
|
|
37
37
|
key: string;
|
|
38
|
-
value:
|
|
38
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
39
39
|
}[];
|
|
40
40
|
}[];
|
|
41
41
|
isLastPage: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IFacetValueData, IFacetData,
|
|
1
|
+
import { IFacetValueData, IFacetData, ISelectedFacetTemplateData } from '@searchstax-inc/searchstudio-ux-js';
|
|
2
2
|
interface Props {
|
|
3
3
|
facetingType: "and" | "or" | "showUnavailable" | "tabs";
|
|
4
4
|
itemsPerPageDesktop: number;
|
|
@@ -50,12 +50,12 @@ declare var __VLS_9: {
|
|
|
50
50
|
unit: string | null;
|
|
51
51
|
unmappedFields: {
|
|
52
52
|
key: string;
|
|
53
|
-
value:
|
|
53
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
54
54
|
isImage?: boolean;
|
|
55
55
|
}[];
|
|
56
56
|
allFields: {
|
|
57
57
|
key: string;
|
|
58
|
-
value:
|
|
58
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
59
59
|
}[];
|
|
60
60
|
}[];
|
|
61
61
|
isLastPage: boolean;
|
|
@@ -114,8 +114,8 @@ declare var __VLS_9: {
|
|
|
114
114
|
isChecked: (facetValue: IFacetValueData) => boolean;
|
|
115
115
|
selectFacet: (index: string, event: Event, data: IFacetValueData, isInput: boolean) => void;
|
|
116
116
|
showMoreLessDesktop: (e: Event, data: IFacetData) => void;
|
|
117
|
-
facetContainers:
|
|
118
|
-
onUpdateRefDesktop: (el: Element | any, facetValue: IFacetValueData) =>
|
|
117
|
+
facetContainers: Record<string, Element>;
|
|
118
|
+
onUpdateRefDesktop: (el: Element | any, facetValue: IFacetValueData) => Record<string, Element>;
|
|
119
119
|
onUpdateRef: (facets: {
|
|
120
120
|
facetValue: string;
|
|
121
121
|
element: Element;
|
|
@@ -164,12 +164,12 @@ declare var __VLS_9: {
|
|
|
164
164
|
unit: string | null;
|
|
165
165
|
unmappedFields: {
|
|
166
166
|
key: string;
|
|
167
|
-
value:
|
|
167
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
168
168
|
isImage?: boolean;
|
|
169
169
|
}[];
|
|
170
170
|
allFields: {
|
|
171
171
|
key: string;
|
|
172
|
-
value:
|
|
172
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
173
173
|
}[];
|
|
174
174
|
}[];
|
|
175
175
|
isLastPage: boolean;
|
|
@@ -223,23 +223,45 @@ declare var __VLS_9: {
|
|
|
223
223
|
shouldShowLocationDistanceDropdown: boolean;
|
|
224
224
|
locationError: boolean;
|
|
225
225
|
};
|
|
226
|
-
selectedFacetsCheckboxes: {
|
|
226
|
+
selectedFacetsCheckboxes: ({
|
|
227
|
+
[x: string]: unknown;
|
|
227
228
|
value: string;
|
|
228
229
|
type: "checkbox";
|
|
229
230
|
parentName: string;
|
|
230
231
|
count: number;
|
|
231
|
-
|
|
232
|
+
facet: {
|
|
233
|
+
[x: string]: unknown;
|
|
234
|
+
label: string;
|
|
235
|
+
name: string;
|
|
236
|
+
showingAllFacets?: boolean;
|
|
237
|
+
hasMoreFacets?: boolean;
|
|
238
|
+
};
|
|
239
|
+
} | {
|
|
240
|
+
[x: string]: unknown;
|
|
241
|
+
valueFrom: string;
|
|
242
|
+
type: "range";
|
|
243
|
+
valueTo: string;
|
|
244
|
+
parentName: string;
|
|
245
|
+
count: number;
|
|
246
|
+
facet: {
|
|
247
|
+
[x: string]: unknown;
|
|
248
|
+
label: string;
|
|
249
|
+
name: string;
|
|
250
|
+
showingAllFacets?: boolean;
|
|
251
|
+
hasMoreFacets?: boolean;
|
|
252
|
+
};
|
|
253
|
+
})[];
|
|
232
254
|
isNotDeactivated: (name: string) => boolean;
|
|
233
255
|
toggleFacetGroup: (name: string) => void;
|
|
234
256
|
isChecked: (facetValue: IFacetValueData) => boolean;
|
|
235
257
|
selectFacet: (index: string, event: Event, data: IFacetValueData, isInput: boolean) => void;
|
|
236
258
|
showMoreLessDesktop: (e: Event, data: IFacetData) => void;
|
|
237
|
-
facetContainers:
|
|
259
|
+
facetContainers: Record<string, Element>;
|
|
238
260
|
openOverlay: () => void;
|
|
239
|
-
unselectFacet: (facet:
|
|
261
|
+
unselectFacet: (facet: ISelectedFacetTemplateData) => void;
|
|
240
262
|
unselectAll: () => void;
|
|
241
263
|
closeOverlay: () => void;
|
|
242
|
-
onUpdateRefMobile: (el: Element | any, facetValue: IFacetValueData) =>
|
|
264
|
+
onUpdateRefMobile: (el: Element | any, facetValue: IFacetValueData) => Record<string, Element>;
|
|
243
265
|
onUpdateRef: (facets: {
|
|
244
266
|
facetValue: string;
|
|
245
267
|
element: Element;
|
|
@@ -34,12 +34,12 @@ declare var __VLS_4: {
|
|
|
34
34
|
unit: string | null;
|
|
35
35
|
unmappedFields: {
|
|
36
36
|
key: string;
|
|
37
|
-
value:
|
|
37
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
38
38
|
isImage?: boolean;
|
|
39
39
|
}[];
|
|
40
40
|
allFields: {
|
|
41
41
|
key: string;
|
|
42
|
-
value:
|
|
42
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
43
43
|
}[];
|
|
44
44
|
}[];
|
|
45
45
|
isLastPage: boolean;
|
|
@@ -25,12 +25,12 @@ declare var __VLS_4: {
|
|
|
25
25
|
unit: string | null;
|
|
26
26
|
unmappedFields: {
|
|
27
27
|
key: string;
|
|
28
|
-
value:
|
|
28
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
29
29
|
isImage?: boolean;
|
|
30
30
|
}[];
|
|
31
31
|
allFields: {
|
|
32
32
|
key: string;
|
|
33
|
-
value:
|
|
33
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
34
34
|
}[];
|
|
35
35
|
}[];
|
|
36
36
|
isLastPage: boolean;
|
|
@@ -113,12 +113,12 @@ declare var __VLS_4: {
|
|
|
113
113
|
unit: string | null;
|
|
114
114
|
unmappedFields: {
|
|
115
115
|
key: string;
|
|
116
|
-
value:
|
|
116
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
117
117
|
isImage?: boolean;
|
|
118
118
|
}[];
|
|
119
119
|
allFields: {
|
|
120
120
|
key: string;
|
|
121
|
-
value:
|
|
121
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
122
122
|
}[];
|
|
123
123
|
}[];
|
|
124
124
|
isLastPage: boolean;
|
|
@@ -35,12 +35,12 @@ declare var __VLS_4: {
|
|
|
35
35
|
unit: string | null;
|
|
36
36
|
unmappedFields: {
|
|
37
37
|
key: string;
|
|
38
|
-
value:
|
|
38
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
39
39
|
isImage?: boolean;
|
|
40
40
|
}[];
|
|
41
41
|
allFields: {
|
|
42
42
|
key: string;
|
|
43
|
-
value:
|
|
43
|
+
value: import('@searchstax-inc/searchstudio-ux-js').ISearchstaxFieldValue;
|
|
44
44
|
}[];
|
|
45
45
|
}[];
|
|
46
46
|
isLastPage: boolean;
|