@appbaseio/reactivesearch-vue 3.1.0-alpha → 3.1.0-alpha.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.
@@ -1191,7 +1191,7 @@
1191
1191
  geo: 'geo',
1192
1192
  suggestion: 'suggestion'
1193
1193
  };
1194
- var validProps = exports.validProps = ['type', 'componentType', 'aggregationField', 'aggregationSize', 'distinctField', 'distinctFieldConfig', 'index', 'aggregations', 'compoundClause', 'dataField', 'includeFields', 'excludeFields', 'size', 'from', 'sortBy', 'sortOptions', 'pagination', 'autoFocus', 'autosuggest', 'debounce', 'defaultValue', 'defaultSuggestions', 'fieldWeights', 'filterLabel', 'fuzziness', 'highlight', 'highlightConfig', 'highlightField', 'nestedField', 'placeholder', 'queryFormat', 'searchOperators', 'enableSynonyms', 'enableQuerySuggestions', 'queryString', 'categoryField', 'strictSelection', 'selectAllLabel', 'showCheckbox', 'showFilter', 'showSearch', 'showCount', 'showLoadMore', 'loadMoreLabel', 'showMissing', 'missingLabel', 'data', 'showRadio', 'multiSelect', 'includeNullValues', 'interval', 'showHistogram', 'snap', 'stepValue', 'range', 'showSlider', 'parseDate', 'calendarInterval', 'unit', 'enablePopularSuggestions', 'enableRecentSuggestions', 'popularSuggestionsConfig', 'recentSuggestionsConfig', 'indexSuggestionsConfig', 'featuredSuggestionsConfig', 'FAQSuggestionsConfig', 'documentSuggestionsConfig', 'enablePredictiveSuggestions', 'applyStopwords', 'customStopwords', 'enableIndexSuggestions', 'enableFeaturedSuggestions', 'enableFAQSuggestions', 'enableDocumentSuggestions', 'enableEndpointSuggestions', 'searchboxId', 'endpoint', 'enableAI', 'AIConfig'];
1194
+ var validProps = exports.validProps = ['type', 'componentType', 'aggregationField', 'aggregationSize', 'distinctField', 'distinctFieldConfig', 'index', 'aggregations', 'compoundClause', 'dataField', 'includeFields', 'excludeFields', 'size', 'from', 'sortBy', 'sortOptions', 'pagination', 'autoFocus', 'autosuggest', 'debounce', 'defaultValue', 'defaultSuggestions', 'fieldWeights', 'filterLabel', 'fuzziness', 'highlight', 'highlightConfig', 'highlightField', 'nestedField', 'placeholder', 'queryFormat', 'searchOperators', 'enableSynonyms', 'enableQuerySuggestions', 'queryString', 'categoryField', 'strictSelection', 'selectAllLabel', 'showCheckbox', 'showFilter', 'showSearch', 'showCount', 'showLoadMore', 'loadMoreLabel', 'showMissing', 'missingLabel', 'data', 'showRadio', 'multiSelect', 'includeNullValues', 'interval', 'showHistogram', 'snap', 'stepValue', 'range', 'showSlider', 'parseDate', 'calendarInterval', 'unit', 'enablePopularSuggestions', 'enableRecentSuggestions', 'popularSuggestionsConfig', 'recentSuggestionsConfig', 'indexSuggestionsConfig', 'featuredSuggestionsConfig', 'FAQSuggestionsConfig', 'documentSuggestionsConfig', 'enablePredictiveSuggestions', 'applyStopwords', 'customStopwords', 'enableIndexSuggestions', 'enableFeaturedSuggestions', 'enableFAQSuggestions', 'enableDocumentSuggestions', 'enableEndpointSuggestions', 'searchboxId', 'endpoint', 'enableAI', 'AIConfig', 'showDistinctSuggestions'];
1195
1195
  var CLEAR_ALL = exports.CLEAR_ALL = {
1196
1196
  NEVER: 'never',
1197
1197
  ALWAYS: 'always',
@@ -5449,14 +5449,18 @@
5449
5449
  };
5450
5450
  exports.transformRequestUsingEndpoint = transformRequestUsingEndpoint;
5451
5451
  var setObjectInLocalStorage = exports.setObjectInLocalStorage = function setObjectInLocalStorage(key, value) {
5452
- if (!key || !value) {
5453
- throw new Error('Key and value are required for setObject');
5454
- }
5455
- try {
5456
- var serializedValue = JSON.stringify(value);
5457
- localStorage.setItem(key, serializedValue);
5458
- } catch (error) {
5459
- console.error('Error saving object to localStorage:', error);
5452
+ if (typeof localStorage !== 'undefined') {
5453
+ if (!key || !value) {
5454
+ throw new Error('Key and value are required for setObject');
5455
+ }
5456
+ try {
5457
+ var serializedValue = JSON.stringify(value);
5458
+ localStorage.setItem(key, serializedValue);
5459
+ } catch (error) {
5460
+ console.error('Error saving object to localStorage:', error);
5461
+ }
5462
+ } else {
5463
+ console.warn('localstorage not available');
5460
5464
  }
5461
5465
  };
5462
5466
  var getObjectFromLocalStorage = exports.getObjectFromLocalStorage = function getObjectFromLocalStorage(key) {
@@ -5613,7 +5617,7 @@
5613
5617
  if (action.type === constants.SET_AI_RESPONSE) {
5614
5618
  (0, helper.setObjectInLocalStorage)('AISessions', _extends({}, (0, helper.getObjectFromLocalStorage)(constants$1.AI_LOCAL_CACHE_KEY) || {}, _defineProperty({}, action.component, _extends({}, state[action.component] || {}, action.payload))));
5615
5619
  return _extends({}, state, _defineProperty({}, action.component, _extends({}, state[action.component] ? state[action.component] : {}, {
5616
- response: _extends({}, state[action.component] ? state[action.component] && state[action.component].response : {}, action.payload),
5620
+ response: _extends({}, state[action.component] ? state[action.component].response : {}, action.payload),
5617
5621
  isLoading: false,
5618
5622
  error: null
5619
5623
  })));
@@ -6912,6 +6916,12 @@
6912
6916
  if (data.hasOwnProperty('hits')) {
6913
6917
  dispatch(updateHits(component, data, data.time || undefined));
6914
6918
  }
6919
+ if (data.hasOwnProperty('rawData')) {
6920
+ dispatch((0, misc.setRawData)(component, data.rawData));
6921
+ }
6922
+ if (data.hasOwnProperty('AI_RESPONSE')) {
6923
+ dispatch((0, misc.setAIResponse)(component, data.AI_RESPONSE));
6924
+ }
6915
6925
  };
6916
6926
  }
6917
6927
  });
@@ -24915,7 +24925,7 @@
24915
24925
  var InputWrapper = styled('span')(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteralLoose(["\n\tflex: 1;\n\tposition: relative;\n\theight: 42px;\n"])));
24916
24926
 
24917
24927
  var _templateObject$a;
24918
- var InputAddon = styled('span')(_templateObject$a || (_templateObject$a = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #fafafa;\n border: 1px solid #ccc;\n border-radius: 2px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-weight: 400;\n padding: 0 11px;\n position: relative;\n transition: all 0.3s;\n box-sizing: border-box;\n overflow: hidden;\n\n &:first-of-type {\n border-right: none;\n }\n &:last-of-type {\n border-left: none;\n }\n"])));
24928
+ var InputAddon = styled('span')(_templateObject$a || (_templateObject$a = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #fafafa;\n border: 1px solid transparent;\n border-radius: 6px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-weight: 400;\n padding: 0 11px;\n position: relative;\n transition: all 0.3s;\n box-sizing: border-box;\n overflow: hidden;\n\n &:first-of-type {\n border-right: none;\n }\n &:last-of-type {\n border-left: none;\n }\n"])));
24919
24929
  InputAddon.defaultProps = {
24920
24930
  className: 'input-addon'
24921
24931
  };
@@ -24987,9 +24997,9 @@
24987
24997
  };
24988
24998
  var suggestionsContainer = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n\tposition: relative;\n\t.cancel-icon {\n\t\tcursor: pointer;\n\t}\n"])));
24989
24999
  var noSuggestions = function noSuggestions(themePreset, theme) {
24990
- return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n\tdisplay: block;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n\tborder-top: none;\n\tbackground-color: #fff;\n\tfont-size: 0.9rem;\n\tz-index: 3;\n\tposition: absolute;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tmax-height: 260px;\n\toverflow-y: auto;\n\n\t&.small {\n\t\ttop: 30px;\n\t}\n\n\tli {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tpadding: 10px;\n\t\tuser-select: none;\n\n\t\t& > .trim {\n\t\t\tdisplay: -webkit-box;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tmax-height: 2.3rem;\n\t\t\tline-height: 1.2rem;\n\t\t\t-webkit-line-clamp: 2;\n\t\t\t-webkit-box-orient: vertical;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n\n\t", "\n"])), themePreset === 'dark' && theme && dark$1(theme));
25000
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n\tdisplay: block;\n\twidth: 100%;\n\tborder-top: none;\n\tbackground-color: #fff;\n\tfont-size: 0.9rem;\n\tz-index: 3;\n\tposition: absolute;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tmax-height: 260px;\n\toverflow-y: auto;\n border-radius: 6px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: rgb(0 0 0 / 20%) 0px 10px 15px;\n border-top: 1px solid #f2f0f0;\n\n\t&.small {\n\t\ttop: 30px;\n\t}\n\n\tli {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tpadding: 10px;\n\t\tuser-select: none;\n\n\t\t& > .trim {\n\t\t\tdisplay: -webkit-box;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tmax-height: 2.3rem;\n\t\t\tline-height: 1.2rem;\n\t\t\t-webkit-line-clamp: 2;\n\t\t\t-webkit-box-orient: vertical;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n\n\t", "\n"])), themePreset === 'dark' && theme && dark$1(theme));
24991
25001
  };
24992
- var TextArea = styled('textarea')(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n\t", ";\n\t", ";\n\n\t", ";\n\t", ";\n\t&::-webkit-search-decoration,\n\t&::-webkit-search-cancel-button,\n\t&::-webkit-search-results-button,\n\t&::-webkit-search-results-decoration {\n\t\tdisplay: none;\n\t}\n\tresize: none;\n\toverflow: hidden;\n\theight: 42px;\n\tpadding-left: 0;\n\tpadding-right: 0;\n"])), function (props) {
25002
+ var TextArea = styled('textarea')(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n\t", ";\n\t", ";\n\n\t", ";\n\t", ";\n\t&::-webkit-search-decoration,\n\t&::-webkit-search-cancel-button,\n\t&::-webkit-search-results-button,\n\t&::-webkit-search-results-decoration {\n\t\tdisplay: none;\n\t}\n\tresize: none;\n\toverflow: hidden;\n\theight: 42px;\n\tpadding-left: 0;\n\tpadding-right: 0;\n\tborder-color: transparent;\n\n"])), function (props) {
24993
25003
  return input(props.searchBox);
24994
25004
  }, function (_ref4) {
24995
25005
  var themePreset = _ref4.themePreset,
@@ -26569,7 +26579,7 @@
26569
26579
 
26570
26580
  var _templateObject$k, _templateObject2$8, _templateObject3$5, _templateObject4$2, _templateObject5$2, _templateObject6$1, _templateObject7$1, _templateObject8$1, _templateObject9$1, _templateObject10, _templateObject11;
26571
26581
  var Chatbox = styled('div')(_templateObject$k || (_templateObject$k = _taggedTemplateLiteralLoose(["\n\tposition: relative;\n\tmargin: 0 auto;\n\tpadding: 10px;\n\tbackground-color: #fafafa;\n\twidth: 100%;\n\tbox-shadow: rgb(0 0 0 / 20%) 0px 0px 6px;\n\tborder-radius: 6px;\n\tmargin-bottom: 20px;\n\tbackground-color: ", ";\n\n\t.--trigger-message-wrapper {\n\t\tcursor: pointer;\n\t}\n"])), function (props) {
26572
- return props.theme && props.theme.colors ? props.theme.colors.backgroundColor : '#fff';
26582
+ return props.theme && props.theme.colors && props.theme.colors.backgroundColor ? curriedLighten(0.1, props.theme.colors.backgroundColor) : '#fff';
26573
26583
  });
26574
26584
  var ChatContainer = styled('div')(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteralLoose(["\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tposition: relative;\n\t.--ai-answer-error-container {\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tbottom: 0px;\n\t\t", ";\n\t\tz-index: 1;\n\t\tleft: 50%;\n\t\ttransform: translateX(-50%);\n\t\twidth: 100%;\n\n\t\t.--default-error-element {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\talign-items: center;\n\t\t\tpadding: 10px;\n\t\t\tbackground-color: ", ";\n\t\t\tbox-shadow: 0 -5px 5px -2px\n\t\t\t\t", ";\n\n\t\t\tspan {\n\t\t\t\tmargin-bottom: 5px;\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t}\n\t\t}\n\t}\n\n\t", ";\n"])), function (props) {
26575
26585
  return props.showInput ? 'bottom: 48px;' : '';
@@ -26601,7 +26611,7 @@
26601
26611
  // eslint-disable-next-line no-nested-ternary
26602
26612
  props.isSender ? props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor : props.theme.colors.primaryTextColor) + ";\n\t\tborder-radius: 3px;\n\t\tfont-size: 85%;\n\t\tpadding: 0.2em 0.4em;\n\t\tmargin-top: 5px;\n\t\tdisplay: inline-block;\n\t\toverflow: auto;\n\t\twidth: fit-content;\n\t\tmax-width: 100%;\n\t}\n\ncode[class*='language-'],\n\tpre[class*='language-'] {\n\t\tcolor: " + (
26603
26613
  // eslint-disable-next-line no-nested-ternary
26604
- props.isSender ? props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor : props.theme.colors.primaryTextColor) + ";\n\t\ttext-shadow: none;\n\t}\n\n\tul,\n\tol {\n\t\tlist-style-position: inside;\n\t\tpadding-left: 10px;\n\n\t}\n\n\tli{\n\t\tdisplay: list-item;\n\t\tcursor: default;\n\t\tpadding: initial;\n\n\t\t&:hover{\n\t\t\tbackground-color: initial;\n\t\t}\n\t}\n\tp {\n\t\tmargin: inherit;\n\t}\n";
26614
+ props.isSender ? props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor : props.theme.colors.primaryTextColor) + ";\n\t\ttext-shadow: none;\n\t}\n\n\tul,\n\tol {\n\t\tlist-style-position: inside;\n\t\tpadding-left: 10px;\n\n\t}\n\n\tli{\n\t\tdisplay: list-item;\n\t\tcursor: default;\n\t\tpadding: initial;\n\n\t\t&:hover{\n\t\t\tbackground-color: initial;\n\t\t}\n\t}\n\tp {\n\t\tmargin: inherit;\n\t}\n\n\t" + (props.themePreset === 'dark' && "a{\n\t\tcolor: cornflowerblue\n\t\t}") + ";\n";
26605
26615
  };
26606
26616
  var messageBGColor = function messageBGColor(props) {
26607
26617
  var finalBGColor;
@@ -26630,16 +26640,10 @@
26630
26640
  return resetCSS(props);
26631
26641
  });
26632
26642
  var MessageInputContainer = styled('form')(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteralLoose(["\n\tdisplay: flex;\n\tpadding-top: 12px;\n\talign-items: stretch;\n\tmargin-top: 10px;\n\t.ai-enter-button-wrapper {\n\t\talign-self: baseline;\n\t\theight: 41px;\n\t}\n"])));
26633
- var MessageInput = styled(TextArea)(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteralLoose(["\n\twidth: 100%;\n\tborder-radius: 5px;\n\tborder: 1px solid #ccc;\n\tbackground-color: ", ";\n\tcolor: ", ";\n\n\t::placeholder {\n\t\tcolor: ", ";\n\t}\n\n\t:-ms-input-placeholder {\n\t\tcolor: ", ";\n\t}\n\n\t::-ms-input-placeholder {\n\t\tcolor: ", ";\n\t}\n\t", "\n\tpadding-left: 35px;\n"])), function (props) {
26643
+ var MessageInput = styled(TextArea)(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteralLoose(["\n\twidth: 100%;\n\tborder-radius: 5px;\n\tborder: 1px solid #ccc;\n\tbackground-color: ", ";\n\tcolor: ", ";\n\n\t", "\n\tpadding-left: 35px;\n"])), function (props) {
26634
26644
  return props.themePreset === 'dark' ? props.theme.colors.borderColor : '#fff';
26635
26645
  }, function (props) {
26636
26646
  return props.themePreset === 'dark' ? props.theme.colors.titleColor : props.theme.colors.textColor;
26637
- }, function (props) {
26638
- return props.theme.colors.textColor;
26639
- }, function (props) {
26640
- return props.theme.colors.textColor;
26641
- }, function (props) {
26642
- return props.theme.colors.textColor;
26643
26647
  }, function (_ref) {
26644
26648
  var enterButton = _ref.enterButton;
26645
26649
  return enterButton && "\n\t\t border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\t";
@@ -26920,7 +26924,8 @@
26920
26924
  showFeedbackComponent: false,
26921
26925
  feedbackState: null,
26922
26926
  faqAnswer: '',
26923
- faqQuestion: ''
26927
+ faqQuestion: '',
26928
+ initialHits: null
26924
26929
  };
26925
26930
  this.internalComponent = props.componentId + "__internal";
26926
26931
  return this.__state;
@@ -26977,7 +26982,7 @@
26977
26982
  if (Array.isArray(this.suggestions) && this.suggestions.length) {
26978
26983
  suggestionsArray = [].concat(withClickIds(this.suggestions));
26979
26984
  }
26980
- if (this.renderTriggerMessage() && this.currentValue && !this.isLoading) {
26985
+ if (this.renderTriggerMessage() && this.currentValue) {
26981
26986
  suggestionsArray.unshift({
26982
26987
  label: this.renderTriggerMessage(),
26983
26988
  value: 'AI_TRIGGER_MESSAGE',
@@ -27127,9 +27132,47 @@
27127
27132
  AIUIConfig: types.AIUIConfig
27128
27133
  },
27129
27134
  mounted: function mounted() {
27135
+ var _this2 = this;
27130
27136
  this.listenForFocusShortcuts();
27137
+ var dropdownEle = this.$refs[_dropdownULRef];
27138
+ if (dropdownEle) {
27139
+ var handleScroll = function handleScroll() {
27140
+ var scrollTop = dropdownEle.scrollTop;
27141
+ _this2.lastScrollTop = scrollTop;
27142
+ if (scrollTop < _this2.lastScrollTop) {
27143
+ // User is scrolling up
27144
+ clearInterval(_this2.scrollTimerRef);
27145
+ _this2.isUserScrolling = true;
27146
+ }
27147
+ // Update lastScrollTop with the current scroll position
27148
+ _this2.lastScrollTop = scrollTop;
27149
+ };
27150
+ dropdownEle.addEventListener('scroll', handleScroll);
27151
+ }
27152
+ },
27153
+ updated: function updated() {
27154
+ if (this.$props.mode === constants_5$1.SELECT && this.$options.isTagsMode === true) {
27155
+ this.$options.isTagsMode = false;
27156
+ this.selectedTags = [];
27157
+ } else if (this.$props.mode === constants_5$1.TAG && this.$options.isTagsMode === false) {
27158
+ this.$options.isTagsMode = true;
27159
+ }
27131
27160
  },
27132
27161
  watch: {
27162
+ AIResponse: function AIResponse(newVal) {
27163
+ if (newVal) {
27164
+ if (this.$props.AIUIConfig && this.$props.AIUIConfig.showSourceDocuments && newVal.response && newVal.response.answer && Array.isArray(newVal.response.answer.documentIds)) {
27165
+ this.sourceDocIds = newVal.response.answer.documentIds;
27166
+ var localCache = helper_2(constants_8$1) && helper_2(constants_8$1)[this.$props.componentId];
27167
+ if (localCache && localCache.meta && localCache.meta.hits && localCache.meta.hits.hits) {
27168
+ this.initialHits = localCache.meta.hits.hits;
27169
+ }
27170
+ if (!this.showAIScreenFooter) {
27171
+ this.showAIScreenFooter = true;
27172
+ }
27173
+ }
27174
+ }
27175
+ },
27133
27176
  dataField: function dataField(newVal, oldVal) {
27134
27177
  if (!isEqual$4(newVal, oldVal)) {
27135
27178
  this.triggerCustomQuery(this.$data.currentValue);
@@ -27204,6 +27247,9 @@
27204
27247
  loading: this.isLoading,
27205
27248
  error: this.isError
27206
27249
  });
27250
+ if (newVal && newVal.hits && newVal.hits.hits) {
27251
+ this.initialHits = newVal.hits.hits;
27252
+ }
27207
27253
  },
27208
27254
  aggregationData: function aggregationData(newVal) {
27209
27255
  this.$emit('on-data', {
@@ -27238,9 +27284,10 @@
27238
27284
  }
27239
27285
  },
27240
27286
  isAITyping: function isAITyping(newVal, oldVal) {
27241
- var _this2 = this;
27287
+ var _this3 = this;
27242
27288
  var scrollAIContainer = function scrollAIContainer() {
27243
- var dropdownEle = _this2.$refs[_dropdownULRef];
27289
+ if (_this3.isUserScrolling) return;
27290
+ var dropdownEle = _this3.$refs[_dropdownULRef];
27244
27291
  if (dropdownEle) {
27245
27292
  dropdownEle.scrollTo({
27246
27293
  top: dropdownEle.scrollHeight,
@@ -27249,6 +27296,7 @@
27249
27296
  }
27250
27297
  };
27251
27298
  if (!newVal && oldVal) {
27299
+ clearInterval(this.scrollTimerRef);
27252
27300
  this.showAIScreenFooter = true;
27253
27301
  if (this.$props.AIUIConfig && typeof this.$props.AIUIConfig.showFeedback === 'boolean' ? this.$props.AIUIConfig.showFeedback : true) {
27254
27302
  this.showFeedbackComponent = true;
@@ -27257,7 +27305,7 @@
27257
27305
  scrollAIContainer();
27258
27306
  }, 500);
27259
27307
  } else if (newVal) {
27260
- this.scrollTimerRef = setTimeout(function () {
27308
+ this.scrollTimerRef = setInterval(function () {
27261
27309
  scrollAIContainer();
27262
27310
  }, 2000);
27263
27311
  }
@@ -27274,7 +27322,7 @@
27274
27322
  }
27275
27323
  },
27276
27324
  currentValue: function currentValue() {
27277
- this.handleTextAreaHeightChange();
27325
+ this.$nextTick(this.handleTextAreaHeightChange);
27278
27326
  }
27279
27327
  },
27280
27328
  methods: {
@@ -27349,7 +27397,7 @@
27349
27397
  }
27350
27398
  },
27351
27399
  setValue: function setValue(value, isDefaultValue, props, cause, toggleIsOpen, categoryValue, shouldExecuteQuery) {
27352
- var _this3 = this;
27400
+ var _this4 = this;
27353
27401
  if (isDefaultValue === void 0) {
27354
27402
  isDefaultValue = false;
27355
27403
  }
@@ -27366,65 +27414,65 @@
27366
27414
  shouldExecuteQuery = true;
27367
27415
  }
27368
27416
  var performUpdate = function performUpdate() {
27369
- if (_this3.$options.isTagsMode && isEqual$4(value, _this3.selectedTags)) {
27417
+ if (_this4.$options.isTagsMode && isEqual$4(value, _this4.selectedTags)) {
27370
27418
  return;
27371
27419
  }
27372
- if (_this3.$options.isTagsMode && cause === lib_7.SUGGESTION_SELECT) {
27373
- if (Array.isArray(_this3.selectedTags) && _this3.selectedTags.length) {
27420
+ if (_this4.$options.isTagsMode && cause === lib_7.SUGGESTION_SELECT) {
27421
+ if (Array.isArray(_this4.selectedTags) && _this4.selectedTags.length) {
27374
27422
  // check if value already present in selectedTags
27375
- if (typeof value === 'string' && _this3.selectedTags.includes(value)) {
27376
- _this3.isOpen = false;
27423
+ if (typeof value === 'string' && _this4.selectedTags.includes(value)) {
27424
+ _this4.isOpen = false;
27377
27425
  return;
27378
27426
  }
27379
- _this3.selectedTags = [].concat(_this3.selectedTags);
27427
+ _this4.selectedTags = [].concat(_this4.selectedTags);
27380
27428
  if (typeof value === 'string' && !!value) {
27381
- _this3.selectedTags.push(value);
27382
- } else if (Array.isArray(value) && !isEqual$4(_this3.selectedTags, value)) {
27383
- _this3.selectedTags = value;
27429
+ _this4.selectedTags.push(value);
27430
+ } else if (Array.isArray(value) && !isEqual$4(_this4.selectedTags, value)) {
27431
+ _this4.selectedTags = value;
27384
27432
  }
27385
27433
  } else if (value) {
27386
- _this3.selectedTags = typeof value !== 'string' ? value : [].concat(value);
27434
+ _this4.selectedTags = typeof value !== 'string' ? value : [].concat(value);
27387
27435
  }
27388
- _this3.currentValue = '';
27436
+ _this4.currentValue = '';
27389
27437
  } else {
27390
- _this3.currentValue = decodeHtml(value);
27438
+ _this4.currentValue = decodeHtml(value);
27391
27439
  }
27392
27440
  var queryHandlerValue = value;
27393
- if (_this3.$options.isTagsMode && cause === lib_7.SUGGESTION_SELECT) {
27394
- queryHandlerValue = Array.isArray(_this3.selectedTags) && _this3.selectedTags.length ? _this3.selectedTags : undefined;
27441
+ if (_this4.$options.isTagsMode && cause === lib_7.SUGGESTION_SELECT) {
27442
+ queryHandlerValue = Array.isArray(_this4.selectedTags) && _this4.selectedTags.length ? _this4.selectedTags : undefined;
27395
27443
  }
27396
- if ((_this3.faqAnswer || _this3.faqQuestion) && value === '') {
27444
+ if ((_this4.faqAnswer || _this4.faqQuestion) && value === '') {
27397
27445
  // Empty the previous state
27398
- _this3.faqAnswer = '';
27399
- _this3.faqQuestion = '';
27400
- _this3.showAIScreen = false;
27446
+ _this4.faqAnswer = '';
27447
+ _this4.faqQuestion = '';
27448
+ _this4.showAIScreen = false;
27401
27449
  }
27402
27450
  if (isDefaultValue) {
27403
- if (_this3.$props.autosuggest) {
27451
+ if (_this4.$props.autosuggest) {
27404
27452
  if (toggleIsOpen) {
27405
- _this3.isOpen = false;
27453
+ _this4.isOpen = false;
27406
27454
  }
27407
- if (typeof _this3.currentValue === 'string') _this3.triggerDefaultQuery(_this3.currentValue, props.enableAI && _this3.currentTriggerMode === constants_9$1.QUESTION && _this3.currentValue.endsWith('?') ? {
27455
+ if (typeof _this4.currentValue === 'string') _this4.triggerDefaultQuery(_this4.currentValue, props.enableAI && _this4.currentTriggerMode === constants_9$1.QUESTION && _this4.currentValue.endsWith('?') ? {
27408
27456
  enableAI: true
27409
27457
  } : {}, shouldExecuteQuery);
27410
27458
  } // in case of strict selection only SUGGESTION_SELECT should be able
27411
27459
  // to set the query otherwise the value should reset
27412
27460
  if (props.strictSelection) {
27413
- if (cause === lib_7.SUGGESTION_SELECT || (_this3.$options.isTagsMode ? _this3.selectedTags.length === 0 : value === '')) {
27414
- _this3.triggerCustomQuery(queryHandlerValue, _this3.$options.isTagsMode ? undefined : categoryValue, shouldExecuteQuery);
27461
+ if (cause === lib_7.SUGGESTION_SELECT || (_this4.$options.isTagsMode ? _this4.selectedTags.length === 0 : value === '')) {
27462
+ _this4.triggerCustomQuery(queryHandlerValue, _this4.$options.isTagsMode ? undefined : categoryValue, shouldExecuteQuery);
27415
27463
  } else {
27416
- _this3.setValue('', true);
27464
+ _this4.setValue('', true);
27417
27465
  }
27418
27466
  } else if (props.value === undefined || cause === lib_7.SUGGESTION_SELECT || cause === lib_7.CLEAR_VALUE) {
27419
- _this3.showAIScreen = false;
27420
- _this3.triggerCustomQuery(queryHandlerValue, _this3.$options.isTagsMode ? undefined : categoryValue, shouldExecuteQuery);
27467
+ _this4.showAIScreen = false;
27468
+ _this4.triggerCustomQuery(queryHandlerValue, _this4.$options.isTagsMode ? undefined : categoryValue, shouldExecuteQuery);
27421
27469
  }
27422
27470
  } else {
27423
27471
  // debounce for handling text while typing
27424
- _this3.handleTextChange(value, cause);
27472
+ _this4.handleTextChange(value, cause);
27425
27473
  }
27426
- _this3.$emit('valueChange', value);
27427
- _this3.$emit('value-change', value);
27474
+ _this4.$emit('valueChange', value);
27475
+ _this4.$emit('value-change', value);
27428
27476
  };
27429
27477
  checkValueChange(props.componentId, value, props.beforeValueChange, performUpdate);
27430
27478
  },
@@ -27573,7 +27621,7 @@
27573
27621
  this.$emit('key-down', event, this.triggerQuery);
27574
27622
  },
27575
27623
  onInputChange: function onInputChange(e) {
27576
- var _this4 = this;
27624
+ var _this5 = this;
27577
27625
  var inputValue = e.target.value;
27578
27626
  if (!this.$data.isOpen && this.$props.autosuggest) {
27579
27627
  this.isOpen = true;
@@ -27587,7 +27635,7 @@
27587
27635
  } else {
27588
27636
  this.$emit('change', inputValue, function (_ref3) {
27589
27637
  var isOpen = _ref3.isOpen;
27590
- return _this4.triggerQuery({
27638
+ return _this5.triggerQuery({
27591
27639
  defaultQuery: true,
27592
27640
  customQuery: true,
27593
27641
  value: inputValue,
@@ -27631,7 +27679,7 @@
27631
27679
  }
27632
27680
  },
27633
27681
  onSuggestionSelected: function onSuggestionSelected(suggestion) {
27634
- var _this5 = this;
27682
+ var _this6 = this;
27635
27683
  var value = this.$props.value;
27636
27684
  // The state of the suggestion is open by the time it reaches here. i.e. isOpen = true
27637
27685
  // handle when FAQ suggestion is clicked
@@ -27680,10 +27728,10 @@
27680
27728
  this.setValue(emitValue, true, this.$props, lib_7.SUGGESTION_SELECT, false, suggestion._category);
27681
27729
  this.$emit('change', emitValue, function (_ref4) {
27682
27730
  var isOpen = _ref4.isOpen;
27683
- return _this5.triggerQuery(_extends({
27731
+ return _this6.triggerQuery(_extends({
27684
27732
  isOpen: isOpen,
27685
27733
  value: emitValue
27686
- }, !_this5.$options.isTagsMode && {
27734
+ }, !_this6.$options.isTagsMode && {
27687
27735
  categoryValue: suggestion._category
27688
27736
  }));
27689
27737
  });
@@ -27723,7 +27771,7 @@
27723
27771
  return null;
27724
27772
  },
27725
27773
  renderErrorComponent: function renderErrorComponent(isAIError) {
27726
- var _this6 = this;
27774
+ var _this7 = this;
27727
27775
  if (isAIError === void 0) {
27728
27776
  isAIError = false;
27729
27777
  }
@@ -27750,7 +27798,7 @@
27750
27798
  "themePreset": this.themePreset
27751
27799
  }, {
27752
27800
  "default": function _default() {
27753
- return [isFunction(renderError) ? renderError(_this6.error) : renderError];
27801
+ return [isFunction(renderError) ? renderError(_this7.error) : renderError];
27754
27802
  }
27755
27803
  });
27756
27804
  }
@@ -27830,7 +27878,7 @@
27830
27878
  });
27831
27879
  },
27832
27880
  renderEnterButtonElement: function renderEnterButtonElement() {
27833
- var _this7 = this;
27881
+ var _this8 = this;
27834
27882
  var _this$$props2 = this.$props,
27835
27883
  enterButton = _this$$props2.enterButton,
27836
27884
  innerClass = _this$$props2.innerClass;
@@ -27838,12 +27886,12 @@
27838
27886
  if (enterButton) {
27839
27887
  var getEnterButtonMarkup = function getEnterButtonMarkup() {
27840
27888
  if (renderEnterButton) {
27841
- return renderEnterButton(_this7.enterButtonOnClick);
27889
+ return renderEnterButton(_this8.enterButtonOnClick);
27842
27890
  }
27843
27891
  return vue.createVNode(Button, {
27844
27892
  "class": "enter-btn " + getClassName$3(innerClass, 'enter-button'),
27845
27893
  "primary": true,
27846
- "onClick": _this7.enterButtonOnClick
27894
+ "onClick": _this8.enterButtonOnClick
27847
27895
  }, {
27848
27896
  "default": function _default() {
27849
27897
  return [vue.createTextVNode("Search")];
@@ -27869,7 +27917,7 @@
27869
27917
  return '/';
27870
27918
  },
27871
27919
  renderLeftIcons: function renderLeftIcons() {
27872
- var _this8 = this;
27920
+ var _this9 = this;
27873
27921
  var _slot3;
27874
27922
  var _this$$props3 = this.$props,
27875
27923
  iconPosition = _this$$props3.iconPosition,
@@ -27879,8 +27927,8 @@
27879
27927
  }, {
27880
27928
  "default": function _default() {
27881
27929
  return [iconPosition === 'left' && showIcon && vue.createVNode(IconWrapper, {
27882
- "onClick": _this8.handleSearchIconClick
27883
- }, _isSlot$5(_slot3 = _this8.renderIcon()) ? _slot3 : {
27930
+ "onClick": _this9.handleSearchIconClick
27931
+ }, _isSlot$5(_slot3 = _this9.renderIcon()) ? _slot3 : {
27884
27932
  "default": function _default() {
27885
27933
  return [_slot3];
27886
27934
  }
@@ -27889,7 +27937,7 @@
27889
27937
  })]);
27890
27938
  },
27891
27939
  renderRightIcons: function renderRightIcons() {
27892
- var _this9 = this;
27940
+ var _this10 = this;
27893
27941
  var _slot4, _slot5, _slot6;
27894
27942
  var _this$$props4 = this.$props,
27895
27943
  iconPosition = _this$$props4.iconPosition,
@@ -27906,29 +27954,29 @@
27906
27954
  }, {
27907
27955
  "default": function _default() {
27908
27956
  return [currentValue && showClear && vue.createVNode(IconWrapper, {
27909
- "onClick": _this9.clearValue,
27957
+ "onClick": _this10.clearValue,
27910
27958
  "showIcon": showIcon,
27911
27959
  "isClearIcon": true
27912
- }, _isSlot$5(_slot4 = _this9.renderCancelIcon()) ? _slot4 : {
27960
+ }, _isSlot$5(_slot4 = _this10.renderCancelIcon()) ? _slot4 : {
27913
27961
  "default": function _default() {
27914
27962
  return [_slot4];
27915
27963
  }
27916
27964
  }), showFocusShortcutsIcon && vue.createVNode(ButtonIconWrapper, {
27917
27965
  "onClick": function onClick(e) {
27918
- return _this9.focusSearchBox(e);
27966
+ return _this10.focusSearchBox(e);
27919
27967
  }
27920
- }, _isSlot$5(_slot5 = _this9.renderShortcut()) ? _slot5 : {
27968
+ }, _isSlot$5(_slot5 = _this10.renderShortcut()) ? _slot5 : {
27921
27969
  "default": function _default() {
27922
27970
  return [_slot5];
27923
27971
  }
27924
27972
  }), showVoiceSearch && vue.createVNode(Mic, {
27925
27973
  "getInstance": getMicInstance,
27926
27974
  "render": renderMic,
27927
- "handleResult": _this9.handleVoiceResults,
27975
+ "handleResult": _this10.handleVoiceResults,
27928
27976
  "className": getClassName$3(innerClass, 'mic') || null
27929
27977
  }, null), iconPosition === 'right' && showIcon && vue.createVNode(IconWrapper, {
27930
- "onClick": _this9.handleSearchIconClick
27931
- }, _isSlot$5(_slot6 = _this9.renderIcon()) ? _slot6 : {
27978
+ "onClick": _this10.handleSearchIconClick
27979
+ }, _isSlot$5(_slot6 = _this10.renderIcon()) ? _slot6 : {
27932
27980
  "default": function _default() {
27933
27981
  return [_slot6];
27934
27982
  }
@@ -27947,7 +27995,7 @@
27947
27995
  (_this$$refs4 = this.$refs) == null || (_this$$refs4 = _this$$refs4[this.$props.innerRef]) == null || (_this$$refs4 = _this$$refs4.$el) == null ? void 0 : _this$$refs4.focus(); // eslint-disable-line
27948
27996
  },
27949
27997
  listenForFocusShortcuts: function listenForFocusShortcuts() {
27950
- var _this10 = this;
27998
+ var _this11 = this;
27951
27999
  var _this$$props$focusSho = this.$props.focusShortcuts,
27952
28000
  focusShortcuts = _this$$props$focusSho === void 0 ? ['/'] : _this$$props$focusSho;
27953
28001
  if (isEmpty(focusShortcuts)) {
@@ -27962,7 +28010,7 @@
27962
28010
  function (event, handler) {
27963
28011
  // Prevent the default refresh event under WINDOWS system
27964
28012
  event.preventDefault();
27965
- _this10.focusSearchBox(event);
28013
+ _this11.focusSearchBox(event);
27966
28014
  });
27967
28015
 
27968
28016
  // if one of modifier keys are used, they are handled below
@@ -27972,7 +28020,7 @@
27972
28020
  for (var index = 0; index < modifierKeys.length; index += 1) {
27973
28021
  var element = modifierKeys[index];
27974
28022
  if (hotkeys[element]) {
27975
- _this10.focusSearchBox(event);
28023
+ _this11.focusSearchBox(event);
27976
28024
  break;
27977
28025
  }
27978
28026
  }
@@ -27985,10 +28033,10 @@
27985
28033
  this.triggerDefaultQuery(value);
27986
28034
  },
27987
28035
  renderActionIcon: function renderActionIcon(suggestion) {
27988
- var _this11 = this;
28036
+ var _this12 = this;
27989
28037
  var handleAutoFillClick = function handleAutoFillClick(e) {
27990
28038
  e.stopPropagation();
27991
- _this11.onAutofillClick(suggestion);
28039
+ _this12.onAutofillClick(suggestion);
27992
28040
  };
27993
28041
  if (suggestion._suggestion_type === helper_16.Featured) {
27994
28042
  if (suggestion.action === helper_15.FUNCTION) {
@@ -28011,7 +28059,7 @@
28011
28059
  return null;
28012
28060
  },
28013
28061
  renderTag: function renderTag(item) {
28014
- var _this12 = this;
28062
+ var _this13 = this;
28015
28063
  var innerClass = this.$props.innerClass;
28016
28064
  return vue.createVNode(TagItem, {
28017
28065
  "class": getClassName$3(innerClass, 'selected-tag') || ''
@@ -28022,7 +28070,7 @@
28022
28070
  "aria-label": "delete-tag",
28023
28071
  "class": "close-icon",
28024
28072
  "onClick": function onClick() {
28025
- return _this12.clearTag(item);
28073
+ return _this13.clearTag(item);
28026
28074
  }
28027
28075
  }, [vue.createVNode(CancelSvg, null, null)])];
28028
28076
  }
@@ -28045,7 +28093,7 @@
28045
28093
  }
28046
28094
  },
28047
28095
  renderTags: function renderTags() {
28048
- var _this13 = this;
28096
+ var _this14 = this;
28049
28097
  if (!Array.isArray(this.selectedTags)) {
28050
28098
  return null;
28051
28099
  }
@@ -28059,16 +28107,16 @@
28059
28107
  }) : vue.createVNode(TagsContainer, null, {
28060
28108
  "default": function _default() {
28061
28109
  return [tagsList.map(function (item) {
28062
- return _this13.renderTag(item);
28110
+ return _this14.renderTag(item);
28063
28111
  }), shouldRenderClearAllTag && vue.createVNode(TagItem, {
28064
- "class": getClassName$3(_this13.$props.innerClass, 'selected-tag') || ''
28112
+ "class": getClassName$3(_this14.$props.innerClass, 'selected-tag') || ''
28065
28113
  }, {
28066
28114
  "default": function _default() {
28067
28115
  return [vue.createVNode("span", null, [vue.createTextVNode("Clear All")]), vue.createVNode("span", {
28068
28116
  "role": "img",
28069
28117
  "aria-label": "delete-tag",
28070
28118
  "class": "close-icon",
28071
- "onClick": _this13.clearAllTags
28119
+ "onClick": _this14.clearAllTags
28072
28120
  }, [vue.createVNode(CancelSvg, null, null)])];
28073
28121
  }
28074
28122
  })];
@@ -28076,13 +28124,13 @@
28076
28124
  });
28077
28125
  },
28078
28126
  getAISourceObjects: function getAISourceObjects() {
28079
- var localCache = helper_2(constants_8$1) && helper_2(constants_8$1)[this.componentId];
28127
+ var _this15 = this;
28080
28128
  var sourceObjects = [];
28081
28129
  if (!this.AIResponse) return sourceObjects;
28082
28130
  var docIds = this.AIResponse && this.AIResponse.response && this.AIResponse.response.answer && this.AIResponse.response.answer.documentIds || [];
28083
- if (localCache && localCache.meta && localCache.meta.hits && localCache.meta.hits.hits) {
28131
+ if (this.initialHits) {
28084
28132
  docIds.forEach(function (id) {
28085
- var foundSourceObj = localCache.meta.hits.hits.find(function (hit) {
28133
+ var foundSourceObj = _this15.initialHits.find(function (hit) {
28086
28134
  return hit._id === id;
28087
28135
  }) || {};
28088
28136
  if (foundSourceObj) {
@@ -28116,31 +28164,31 @@
28116
28164
  },
28117
28165
  renderAIScreenFooter: function renderAIScreenFooter() {
28118
28166
  var _slot8;
28119
- var _this14 = this;
28167
+ var _this16 = this;
28120
28168
  var _this$$props$AIUIConf2 = this.$props.AIUIConfig,
28121
28169
  AIUIConfig = _this$$props$AIUIConf2 === void 0 ? {} : _this$$props$AIUIConf2;
28122
28170
  var _ref6 = AIUIConfig || {},
28123
28171
  _ref6$showSourceDocum = _ref6.showSourceDocuments,
28124
- showSourceDocuments = _ref6$showSourceDocum === void 0 ? true : _ref6$showSourceDocum,
28172
+ showSourceDocuments = _ref6$showSourceDocum === void 0 ? false : _ref6$showSourceDocum,
28125
28173
  _ref6$onSourceClick = _ref6.onSourceClick,
28126
28174
  onSourceClick = _ref6$onSourceClick === void 0 ? function () {} : _ref6$onSourceClick;
28127
28175
  var renderSourceDocumentLabel = function renderSourceDocumentLabel(sourceObj) {
28128
- if (_this14.$props.AIUIConfig && _this14.$props.AIUIConfig.renderSourceDocument) {
28129
- return _this14.$props.AIUIConfig.renderSourceDocument(sourceObj);
28176
+ if (_this16.$props.AIUIConfig && _this16.$props.AIUIConfig.renderSourceDocument) {
28177
+ return _this16.$props.AIUIConfig.renderSourceDocument(sourceObj);
28130
28178
  }
28131
- if (_this14.$slots.renderSourceDocument) {
28132
- return _this14.$slots.renderSourceDocument(sourceObj);
28179
+ if (_this16.$slots.renderSourceDocument) {
28180
+ return _this16.$slots.renderSourceDocument(sourceObj);
28133
28181
  }
28134
28182
  return sourceObj._id;
28135
28183
  };
28136
- return showSourceDocuments && this.showAIScreenFooter && this.AIResponse && this.AIResponse.response && this.AIResponse.response.answer && this.AIResponse.response.answer.documentIds ? vue.createVNode(Footer, {
28184
+ return showSourceDocuments && this.showAIScreenFooter && this.AIResponse && this.AIResponse.response && this.AIResponse.response.answer && this.AIResponse.response.answer.documentIds && this.AIResponse.response.answer.documentIds.length ? vue.createVNode(Footer, {
28137
28185
  "themePreset": this.$props.themePreset
28138
28186
  }, {
28139
28187
  "default": function _default() {
28140
- return [vue.createTextVNode("Summary generated using the following sources:"), ' ', vue.createVNode(SourceTags, null, _isSlot$5(_slot8 = _this14.getAISourceObjects().map(function (el) {
28188
+ return [vue.createTextVNode("Summary generated using the following sources:"), ' ', vue.createVNode(SourceTags, null, _isSlot$5(_slot8 = _this16.getAISourceObjects().map(function (el) {
28141
28189
  var _slot7;
28142
28190
  return vue.createVNode(Button, {
28143
- "class": "--ai-source-tag " + (getClassName$3(_this14.$props.innerClass, 'ai-source-tag') || ''),
28191
+ "class": "--ai-source-tag " + (getClassName$3(_this16.$props.innerClass, 'ai-source-tag') || ''),
28144
28192
  "info": true,
28145
28193
  "onClick": function onClick() {
28146
28194
  return onSourceClick && onSourceClick(el);
@@ -28159,7 +28207,7 @@
28159
28207
  }) : null;
28160
28208
  },
28161
28209
  renderAIScreen: function renderAIScreen() {
28162
- var _this15 = this;
28210
+ var _this17 = this;
28163
28211
  var customAIRenderer = this.$props.renderAIAnswer || this.$slots.renderAIAnswer;
28164
28212
  if (customAIRenderer) {
28165
28213
  return customAIRenderer({
@@ -28183,11 +28231,11 @@
28183
28231
  "hideUI": this.isAIResponseLoading || this.isLoading || !this.sessionIdFromStore,
28184
28232
  "key": this.sessionIdFromStore,
28185
28233
  "onFeedbackSubmit": function onFeedbackSubmit(useful, reason) {
28186
- _this15.feedbackState = {
28234
+ _this17.feedbackState = {
28187
28235
  isRecorded: true,
28188
28236
  feedbackType: useful ? 'positive' : 'negative'
28189
28237
  };
28190
- _this15.recordAISessionUsefulness(_this15.sessionIdFromStore, {
28238
+ _this17.recordAISessionUsefulness(_this17.sessionIdFromStore, {
28191
28239
  useful: useful,
28192
28240
  reason: reason
28193
28241
  });
@@ -28222,7 +28270,7 @@
28222
28270
  });
28223
28271
  },
28224
28272
  renderAskButtonElement: function renderAskButtonElement() {
28225
- var _this16 = this;
28273
+ var _this18 = this;
28226
28274
  var _this$$props5 = this.$props,
28227
28275
  AIUIConfig = _this$$props5.AIUIConfig,
28228
28276
  innerClass = _this$$props5.innerClass;
@@ -28232,12 +28280,12 @@
28232
28280
  if (askButton) {
28233
28281
  var getEnterButtonMarkup = function getEnterButtonMarkup() {
28234
28282
  if (renderAskButton) {
28235
- return renderAskButton(_this16.askButtonOnClick);
28283
+ return renderAskButton(_this18.askButtonOnClick);
28236
28284
  }
28237
28285
  return vue.createVNode(Button, {
28238
28286
  "class": "enter-btn " + getClassName$3(innerClass, 'ask-button'),
28239
28287
  "info": true,
28240
- "onClick": _this16.askButtonOnClick
28288
+ "onClick": _this18.askButtonOnClick
28241
28289
  }, {
28242
28290
  "default": function _default() {
28243
28291
  return [vue.createTextVNode("Ask")];
@@ -28252,28 +28300,28 @@
28252
28300
  }
28253
28301
  },
28254
28302
  render: function render() {
28255
- var _this17 = this;
28303
+ var _this19 = this;
28256
28304
  var expandSuggestionsContainer = this.$props.expandSuggestionsContainer;
28257
28305
  var _this$$slots = this.$slots,
28258
28306
  recentSearchesIcon = _this$$slots.recentSearchesIcon,
28259
28307
  popularSearchesIcon = _this$$slots.popularSearchesIcon;
28260
- var hasSuggestions = Array.isArray(this.normalizedSuggestions) && this.normalizedSuggestions.length;
28308
+ var hasSuggestions = Array.isArray(this.parsedSuggestions) && this.parsedSuggestions.length;
28261
28309
  var renderItem = this.$slots.renderItem || this.$props.renderItem;
28262
28310
  return vue.createVNode(Container, {
28263
28311
  "class": this.$props.className
28264
28312
  }, {
28265
28313
  "default": function _default() {
28266
- return [_this17.$props.title && vue.createVNode(Title, {
28267
- "class": getClassName$3(_this17.$props.innerClass, 'title') || ''
28314
+ return [_this19.$props.title && vue.createVNode(Title, {
28315
+ "class": getClassName$3(_this19.$props.innerClass, 'title') || ''
28268
28316
  }, {
28269
28317
  "default": function _default() {
28270
- return [_this17.$props.title];
28318
+ return [_this19.$props.title];
28271
28319
  }
28272
- }), _this17.$props.autosuggest ? vue.createVNode(Downshift, {
28273
- "id": _this17.$props.componentId + "-downshift",
28274
- "handleChange": _this17.onSuggestionSelected,
28275
- "handleMouseup": _this17.handleStateChange,
28276
- "isOpen": _this17.$data.isOpen
28320
+ }), _this19.$props.autosuggest ? vue.createVNode(Downshift, {
28321
+ "id": _this19.$props.componentId + "-downshift",
28322
+ "handleChange": _this19.onSuggestionSelected,
28323
+ "handleMouseup": _this19.handleStateChange,
28324
+ "isOpen": _this19.$data.isOpen
28277
28325
  }, {
28278
28326
  "default": function _default(_ref8) {
28279
28327
  var getInputEvents = _ref8.getInputEvents,
@@ -28329,21 +28377,21 @@
28329
28377
  }
28330
28378
  };
28331
28379
  var indexOffset = 0;
28332
- return vue.createVNode("div", null, [_this17.hasCustomRenderer && _this17.getComponent({
28380
+ return vue.createVNode("div", null, [_this19.hasCustomRenderer && _this19.getComponent({
28333
28381
  isOpen: isOpen,
28334
28382
  getItemProps: getItemProps,
28335
28383
  getItemEvents: getItemEvents,
28336
28384
  highlightedIndex: highlightedIndex
28337
- }), _this17.renderErrorComponent(), !_this17.hasCustomRenderer && isOpen && hasSuggestions ? vue.createVNode("ul", {
28338
- "class": suggestions$1(_this17.themePreset, _this17.theme) + " " + getClassName$3(_this17.$props.innerClass, 'list') + " " + searchboxSuggestions(_this17.themePreset, _this17.theme) + "\n\t\t\t\t\t\t\t\t\t\t\t\t\t",
28385
+ }), _this19.renderErrorComponent(), !_this19.hasCustomRenderer && isOpen && hasSuggestions ? vue.createVNode("ul", {
28386
+ "class": suggestions$1(_this19.themePreset, _this19.theme) + " " + getClassName$3(_this19.$props.innerClass, 'list') + " " + searchboxSuggestions(_this19.themePreset, _this19.theme) + "\n\t\t\t\t\t\t\t\t\t\t\t\t\t",
28339
28387
  "ref": _dropdownULRef
28340
- }, [_this17.showAIScreen && vue.createVNode(SearchBoxAISection, {
28341
- "themePreset": _this17.$props.themePreset
28388
+ }, [_this19.showAIScreen && vue.createVNode(SearchBoxAISection, {
28389
+ "themePreset": _this19.$props.themePreset
28342
28390
  }, {
28343
28391
  "default": function _default() {
28344
- return [_this17.renderAIScreen(), ' ', _this17.renderErrorComponent(true)];
28392
+ return [_this19.renderAIScreen(), ' ', _this19.renderErrorComponent(true)];
28345
28393
  }
28346
- }), !_this17.showAIScreen && _this17.parsedSuggestions.map(function (item, itemIndex) {
28394
+ }), !_this19.showAIScreen && _this19.parsedSuggestions.map(function (item, itemIndex) {
28347
28395
  var index = indexOffset + itemIndex;
28348
28396
  if (Array.isArray(item)) {
28349
28397
  var sectionHtml = lib$2(item[0].sectionLabel);
@@ -28352,7 +28400,7 @@
28352
28400
  "key": "section-" + itemIndex,
28353
28401
  "class": "section-container"
28354
28402
  }, [sectionHtml ? vue.createVNode("div", {
28355
- "class": "section-header " + getClassName$3(_this17.$props.innerClass, 'section-label'),
28403
+ "class": "section-header " + getClassName$3(_this19.$props.innerClass, 'section-label'),
28356
28404
  "key": "" + item[0].sectionId,
28357
28405
  "innerHTML": sectionHtml
28358
28406
  }, null) : null, vue.createVNode("ul", {
@@ -28372,7 +28420,7 @@
28372
28420
  justifyContent: 'flex-start',
28373
28421
  alignItems: 'center'
28374
28422
  },
28375
- "class": "" + (highlightedIndex === index + sectionIndex ? "active-li-item " + getClassName$3(_this17.$props.innerClass, 'active-suggestion-item') : "li-item " + getClassName$3(_this17.$props.innerClass, 'suggestion-item'))
28423
+ "class": "" + (highlightedIndex === index + sectionIndex ? "active-li-item " + getClassName$3(_this19.$props.innerClass, 'active-suggestion-item') : "li-item " + getClassName$3(_this19.$props.innerClass, 'suggestion-item'))
28376
28424
  }), [renderItem(sectionItem)]);
28377
28425
  }
28378
28426
  if (sectionItem._suggestion_type === '_internal_a_i_trigger') {
@@ -28386,9 +28434,9 @@
28386
28434
  justifyContent: 'flex-start',
28387
28435
  alignItems: 'center'
28388
28436
  },
28389
- "class": "" + (highlightedIndex === index + sectionIndex ? "active-li-item " + getClassName$3(_this17.$props.innerClass, 'active-suggestion-item') : "li-item " + getClassName$3(_this17.$props.innerClass, 'suggestion-item'))
28437
+ "class": "" + (highlightedIndex === index + sectionIndex ? "active-li-item " + getClassName$3(_this19.$props.innerClass, 'active-suggestion-item') : "li-item " + getClassName$3(_this19.$props.innerClass, 'suggestion-item'))
28390
28438
  }), [vue.createVNode(SuggestionItem, {
28391
- "currentValue": _this17.currentValue,
28439
+ "currentValue": _this19.currentValue,
28392
28440
  "suggestion": sectionItem
28393
28441
  }, null)]);
28394
28442
  }
@@ -28402,7 +28450,7 @@
28402
28450
  justifyContent: 'flex-start',
28403
28451
  alignItems: 'center'
28404
28452
  },
28405
- "class": "" + (highlightedIndex === index + sectionIndex ? "active-li-item " + getClassName$3(_this17.$props.innerClass, 'active-suggestion-item') : "li-item " + getClassName$3(_this17.$props.innerClass, 'suggestion-item'))
28453
+ "class": "" + (highlightedIndex === index + sectionIndex ? "active-li-item " + getClassName$3(_this19.$props.innerClass, 'active-suggestion-item') : "li-item " + getClassName$3(_this19.$props.innerClass, 'suggestion-item'))
28406
28454
  }), [vue.createVNode("div", {
28407
28455
  "style": {
28408
28456
  padding: '0 10px 0 0',
@@ -28410,74 +28458,74 @@
28410
28458
  }
28411
28459
  }, [vue.createVNode(CustomSvg, {
28412
28460
  "key": sectionItem._suggestion_type + "-" + sectionIndex,
28413
- "className": getClassName$3(_this17.$props.innerClass, sectionItem._suggestion_type + "-search-icon") || null,
28461
+ "className": getClassName$3(_this19.$props.innerClass, sectionItem._suggestion_type + "-search-icon") || null,
28414
28462
  "icon": getIcon(sectionItem._suggestion_type, sectionItem, suggestionsHaveIcon),
28415
28463
  "type": sectionItem._suggestion_type + "-search-icon"
28416
28464
  }, null)]), vue.createVNode(SuggestionItem, {
28417
- "currentValue": _this17.currentValue,
28465
+ "currentValue": _this19.currentValue,
28418
28466
  "suggestion": sectionItem
28419
- }, null), _this17.renderActionIcon(sectionItem)]);
28467
+ }, null), _this19.renderActionIcon(sectionItem)]);
28420
28468
  })])]);
28421
28469
  }
28422
28470
  return vue.createVNode("div", null, [vue.createTextVNode("No suggestions")]);
28423
- }), !_this17.showAIScreen && _this17.parsedSuggestions.length && _this17.$props.showSuggestionsFooter ? _this17.suggestionsFooter() : null]) : _this17.renderNoSuggestions(_this17.normalizedSuggestions)]);
28471
+ }), !_this19.showAIScreen && _this19.parsedSuggestions.length && _this19.$props.showSuggestionsFooter ? _this19.suggestionsFooter() : null]) : _this19.renderNoSuggestions(_this19.normalizedSuggestions)]);
28424
28472
  };
28425
28473
  return vue.createVNode("div", {
28426
28474
  "class": suggestionsContainer
28427
28475
  }, [vue.createVNode(InputGroup, {
28428
28476
  "searchBox": true,
28429
28477
  "ref": _inputGroupRef,
28430
- "isOpen": _this17.$data.isOpen
28478
+ "isOpen": _this19.$data.isOpen
28431
28479
  }, {
28432
28480
  "default": function _default() {
28433
28481
  return [vue.createVNode(Actions, null, {
28434
28482
  "default": function _default() {
28435
- return [_this17.renderInputAddonBefore(), _this17.renderLeftIcons()];
28483
+ return [_this19.renderInputAddonBefore(), _this19.renderLeftIcons()];
28436
28484
  }
28437
28485
  }), vue.createVNode(InputWrapper, null, {
28438
28486
  "default": function _default() {
28439
28487
  return [vue.createVNode(TextArea, vue.mergeProps(babelHelperVueTransformOn(getInputEvents({
28440
- onInput: _this17.onInputChange,
28488
+ onInput: _this19.onInputChange,
28441
28489
  onBlur: function onBlur(e) {
28442
- _this17.$emit('blur', e, _this17.triggerQuery);
28490
+ _this19.$emit('blur', e, _this19.triggerQuery);
28443
28491
  },
28444
- onFocus: _this17.handleFocus,
28492
+ onFocus: _this19.handleFocus,
28445
28493
  onKeyPress: function onKeyPress(e) {
28446
- _this17.$emit('keyPress', e, _this17.triggerQuery);
28447
- _this17.$emit('key-press', e, _this17.triggerQuery);
28494
+ _this19.$emit('keyPress', e, _this19.triggerQuery);
28495
+ _this19.$emit('key-press', e, _this19.triggerQuery);
28448
28496
  },
28449
28497
  onKeyDown: function onKeyDown(e) {
28450
- return _this17.handleKeyDown(e, highlightedIndex);
28498
+ return _this19.handleKeyDown(e, highlightedIndex);
28451
28499
  },
28452
28500
  onKeyUp: function onKeyUp(e) {
28453
- _this17.$emit('keyUp', e, _this17.triggerQuery);
28454
- _this17.$emit('key-up', e, _this17.triggerQuery);
28501
+ _this19.$emit('keyUp', e, _this19.triggerQuery);
28502
+ _this19.$emit('key-up', e, _this19.triggerQuery);
28455
28503
  },
28456
28504
  onClick: function onClick() {
28457
28505
  setHighlightedIndex(null);
28458
28506
  }
28459
28507
  })), {
28460
28508
  "searchBox": true,
28461
- "isOpen": _this17.$data.isOpen,
28462
- "id": _this17.$props.componentId + "-input",
28463
- "ref": _this17.$props.innerRef,
28464
- "class": getClassName$3(_this17.$props.innerClass, 'input'),
28465
- "placeholder": _this17.$props.placeholder,
28466
- "autoFocus": _this17.$props.autoFocus
28509
+ "isOpen": _this19.$data.isOpen,
28510
+ "id": _this19.$props.componentId + "-input",
28511
+ "ref": _this19.$props.innerRef,
28512
+ "class": getClassName$3(_this19.$props.innerClass, 'input'),
28513
+ "placeholder": _this19.$props.placeholder,
28514
+ "autoFocus": _this19.$props.autoFocus
28467
28515
  }, getInputProps({
28468
- value: _this17.$data.currentValue === null ? '' : _this17.$data.currentValue
28516
+ value: _this19.$data.currentValue === null ? '' : _this19.$data.currentValue
28469
28517
  }), {
28470
- "themePreset": _this17.themePreset,
28518
+ "themePreset": _this19.themePreset,
28471
28519
  "autocomplete": "off"
28472
28520
  }), null), !expandSuggestionsContainer && renderSuggestionsDropdown()];
28473
28521
  }
28474
28522
  }), vue.createVNode(Actions, null, {
28475
28523
  "default": function _default() {
28476
- return [_this17.renderRightIcons(), _this17.renderInputAddonAfter(), _this17.renderAskButtonElement(), _this17.renderEnterButtonElement()];
28524
+ return [_this19.renderRightIcons(), _this19.renderInputAddonAfter(), _this19.renderAskButtonElement(), _this19.renderEnterButtonElement()];
28477
28525
  }
28478
28526
  })];
28479
28527
  }
28480
- }), expandSuggestionsContainer && renderSuggestionsDropdown(), _this17.renderTags()]);
28528
+ }), expandSuggestionsContainer && renderSuggestionsDropdown(), _this19.renderTags()]);
28481
28529
  }
28482
28530
  }) : vue.createVNode("div", {
28483
28531
  "class": suggestionsContainer
@@ -28488,43 +28536,43 @@
28488
28536
  "default": function _default() {
28489
28537
  return [vue.createVNode(Actions, null, {
28490
28538
  "default": function _default() {
28491
- return [_this17.renderInputAddonBefore(), _this17.renderLeftIcons()];
28539
+ return [_this19.renderInputAddonBefore(), _this19.renderLeftIcons()];
28492
28540
  }
28493
28541
  }), vue.createVNode(InputWrapper, null, {
28494
28542
  "default": function _default() {
28495
28543
  return [vue.createVNode(TextArea, vue.mergeProps(babelHelperVueTransformOn({
28496
28544
  blur: function blur(e) {
28497
- _this17.$emit('blur', e, _this17.triggerQuery);
28545
+ _this19.$emit('blur', e, _this19.triggerQuery);
28498
28546
  },
28499
28547
  keypress: function keypress(e) {
28500
- _this17.$emit('keyPress', e, _this17.triggerQuery);
28501
- _this17.$emit('key-press', e, _this17.triggerQuery);
28548
+ _this19.$emit('keyPress', e, _this19.triggerQuery);
28549
+ _this19.$emit('key-press', e, _this19.triggerQuery);
28502
28550
  },
28503
- input: _this17.onInputChange,
28551
+ input: _this19.onInputChange,
28504
28552
  focus: function focus(e) {
28505
- _this17.$emit('focus', e, _this17.triggerQuery);
28553
+ _this19.$emit('focus', e, _this19.triggerQuery);
28506
28554
  },
28507
- keydown: _this17.handleKeyDown,
28555
+ keydown: _this19.handleKeyDown,
28508
28556
  keyup: function keyup(e) {
28509
- _this17.$emit('keyUp', e, _this17.triggerQuery);
28510
- _this17.$emit('key-up', e, _this17.triggerQuery);
28557
+ _this19.$emit('keyUp', e, _this19.triggerQuery);
28558
+ _this19.$emit('key-up', e, _this19.triggerQuery);
28511
28559
  }
28512
28560
  }), {
28513
28561
  "searchBox": true,
28514
- "class": getClassName$3(_this17.$props.innerClass, 'input') || '',
28515
- "placeholder": _this17.$props.placeholder,
28516
- "autofocus": _this17.$props.autoFocus,
28517
- "value": _this17.$data.currentValue ? _this17.$data.currentValue : '',
28518
- "iconPosition": _this17.$props.iconPosition,
28519
- "showIcon": _this17.$props.showIcon,
28520
- "showClear": _this17.$props.showClear,
28521
- "ref": _this17.$props.innerRef,
28522
- "themePreset": _this17.themePreset
28562
+ "class": getClassName$3(_this19.$props.innerClass, 'input') || '',
28563
+ "placeholder": _this19.$props.placeholder,
28564
+ "autofocus": _this19.$props.autoFocus,
28565
+ "value": _this19.$data.currentValue ? _this19.$data.currentValue : '',
28566
+ "iconPosition": _this19.$props.iconPosition,
28567
+ "showIcon": _this19.$props.showIcon,
28568
+ "showClear": _this19.$props.showClear,
28569
+ "ref": _this19.$props.innerRef,
28570
+ "themePreset": _this19.themePreset
28523
28571
  }), null)];
28524
28572
  }
28525
28573
  }), vue.createVNode(Actions, null, {
28526
28574
  "default": function _default() {
28527
- return [_this17.renderRightIcons(), _this17.renderInputAddonAfter(), _this17.renderEnterButtonElement()];
28575
+ return [_this19.renderRightIcons(), _this19.renderInputAddonAfter(), _this19.renderEnterButtonElement()];
28528
28576
  }
28529
28577
  })];
28530
28578
  }
@@ -28739,12 +28787,14 @@
28739
28787
  message: response.error
28740
28788
  };
28741
28789
  }
28742
-
28743
28790
  // pushing message history so far
28744
28791
  if (messagesHistory && Array.isArray(messagesHistory)) {
28745
28792
  finalMessages.push.apply(finalMessages, messagesHistory.filter(function (msg) {
28746
28793
  return msg.role !== constants_7$1.SYSTEM;
28747
28794
  }));
28795
+ if (finalMessages[0].role === constants_7$1.USER) {
28796
+ finalMessages.shift();
28797
+ }
28748
28798
  } else if (response && response.answer && response.answer.text) {
28749
28799
  finalMessages.push({
28750
28800
  role: constants_7$1.ASSISTANT,
@@ -44314,7 +44364,7 @@
44314
44364
  }, queryString, renderFunction);
44315
44365
  }
44316
44366
 
44317
- var version = "3.1.0-alpha";
44367
+ var version = "3.1.0-alpha.1";
44318
44368
 
44319
44369
  var components = [RLConnected, ResultCard, ResultList, ReactiveBase, SBConnected, ListConnected, ListConnected$1, RangeConnected$1, RangeConnected$2, RangeConnected$3, RangeConnected, RcConnected, RcConnected$1, RcConnected$2, TBConnected, ListConnected$2, ListConnected$3, StateProviderConnected, RangeConnected$4, TreeListConnected, AIConnected];
44320
44370
  function install$1 (Vue) {