@appbaseio/reactivesearch-vue 3.0.0-rc → 3.0.0-rc.2

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.
Files changed (61) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +6349 -518
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/{ComponentWrapper-2dc930e1.js → ComponentWrapper-0b9ffb1a.js} +4 -1
  6. package/dist/cjs/{DropDown-f48bea16.js → DropDown-3797bb6a.js} +2 -2
  7. package/dist/cjs/DynamicRangeSlider.js +3 -3
  8. package/dist/cjs/MultiDropdownList.js +5 -5
  9. package/dist/cjs/MultiList.js +4 -4
  10. package/dist/cjs/MultiRange.js +4 -4
  11. package/dist/cjs/{Pagination-b953a80a.js → Pagination-b1a053a7.js} +1 -1
  12. package/dist/cjs/{PreferencesConsumer-2c69ac61.js → PreferencesConsumer-85dee673.js} +1 -1
  13. package/dist/cjs/RangeInput.js +4 -4
  14. package/dist/cjs/RangeSlider.js +4 -4
  15. package/dist/cjs/ReactiveBase.js +5 -5
  16. package/dist/cjs/ReactiveComponent.js +4 -4
  17. package/dist/cjs/ReactiveGoogleMap.js +5 -5
  18. package/dist/cjs/ReactiveList.js +5 -5
  19. package/dist/cjs/ResultCard.js +1 -1
  20. package/dist/cjs/ResultList.js +1 -1
  21. package/dist/cjs/SelectedFilters.js +2 -2
  22. package/dist/cjs/SingleDropdownList.js +5 -5
  23. package/dist/cjs/SingleList.js +4 -4
  24. package/dist/cjs/SingleRange.js +4 -4
  25. package/dist/cjs/StateProvider.js +1 -1
  26. package/dist/cjs/ToggleButton.js +4 -4
  27. package/dist/cjs/{index-1481798c.js → index-779ed366.js} +2 -4
  28. package/dist/cjs/index.js +10 -7
  29. package/dist/cjs/{install-2c548585.js → install-581d2e18.js} +588 -18
  30. package/dist/cjs/install.js +9 -7
  31. package/dist/cjs/version.js +1 -1
  32. package/dist/cjs/{vueTypes-1bf00978.js → vueTypes-d05e44cc.js} +8 -0
  33. package/dist/es/{ComponentWrapper-3a215eed.js → ComponentWrapper-a2635cfc.js} +4 -1
  34. package/dist/es/{DropDown-7174661a.js → DropDown-ff8e06b4.js} +2 -2
  35. package/dist/es/DynamicRangeSlider.js +3 -3
  36. package/dist/es/MultiDropdownList.js +5 -5
  37. package/dist/es/MultiList.js +4 -4
  38. package/dist/es/MultiRange.js +4 -4
  39. package/dist/es/{Pagination-c2745bec.js → Pagination-aecb3914.js} +1 -1
  40. package/dist/es/{PreferencesConsumer-24e88f3b.js → PreferencesConsumer-b058d14e.js} +1 -1
  41. package/dist/es/RangeInput.js +4 -4
  42. package/dist/es/RangeSlider.js +4 -4
  43. package/dist/es/ReactiveBase.js +5 -5
  44. package/dist/es/ReactiveComponent.js +4 -4
  45. package/dist/es/ReactiveGoogleMap.js +5 -5
  46. package/dist/es/ReactiveList.js +5 -5
  47. package/dist/es/ResultCard.js +1 -1
  48. package/dist/es/ResultList.js +1 -1
  49. package/dist/es/SelectedFilters.js +2 -2
  50. package/dist/es/SingleDropdownList.js +5 -5
  51. package/dist/es/SingleList.js +4 -4
  52. package/dist/es/SingleRange.js +4 -4
  53. package/dist/es/StateProvider.js +1 -1
  54. package/dist/es/ToggleButton.js +4 -4
  55. package/dist/es/{index-4520a598.js → index-882489e1.js} +2 -4
  56. package/dist/es/index.js +10 -8
  57. package/dist/es/{install-44a07e7a.js → install-3c029475.js} +591 -22
  58. package/dist/es/install.js +9 -7
  59. package/dist/es/version.js +1 -1
  60. package/dist/es/{vueTypes-f1923c72.js → vueTypes-d64f04f8.js} +8 -0
  61. package/package.json +4 -4
@@ -11,22 +11,25 @@ var VueTypes = _interopDefault(require('vue-types'));
11
11
  var helper = require('@appbaseio/reactivecore/lib/utils/helper');
12
12
  var vueEmotion = require('@appbaseio/vue-emotion');
13
13
  var css = require('@emotion/css');
14
+ var polished = require('polished');
14
15
  var Button = require('./Button-d4da7470.js');
15
- var vueTypes = require('./vueTypes-1bf00978.js');
16
+ var vueTypes = require('./vueTypes-d05e44cc.js');
16
17
  var ReactiveList = require('./ReactiveList.js');
17
18
  var transform = require('@appbaseio/reactivecore/lib/utils/transform');
18
- var index = require('./index-1481798c.js');
19
- var ComponentWrapper = require('./ComponentWrapper-2dc930e1.js');
20
- var PreferencesConsumer = require('./PreferencesConsumer-2c69ac61.js');
19
+ var index = require('./index-779ed366.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-0b9ffb1a.js');
21
+ var PreferencesConsumer = require('./PreferencesConsumer-85dee673.js');
21
22
  var Title = require('./Title-8802a218.js');
22
23
  var ListItem = require('./ListItem-7a682970.js');
23
24
  var Flex = require('./Flex-ddde6d26.js');
24
25
  var ReactiveBase = require('./ReactiveBase.js');
25
26
  var hotkeys = _interopDefault(require('hotkeys-js'));
26
- var DropDown = require('./DropDown-f48bea16.js');
27
+ var DropDown = require('./DropDown-3797bb6a.js');
27
28
  var Input = require('./Input-497be42a.js');
28
29
  var Container = require('./Container-29f049b2.js');
29
30
  var Highlight = _interopDefault(require('vue-highlight-words'));
31
+ var query = require('@appbaseio/reactivecore/lib/actions/query');
32
+ var remarkable = require('remarkable');
30
33
  var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
31
34
  var FormControlList = require('./FormControlList-fadd792f.js');
32
35
  var utils = require('./utils-c9bd5628.js');
@@ -1227,8 +1230,8 @@ var SearchBox = vue.defineComponent({
1227
1230
  this.recordSuggestionClick(searchPosition, docId);
1228
1231
  },
1229
1232
  clearValue: function clearValue() {
1230
- this.setValue('', false, this.$props, reactivecore.causes.CLEAR_VALUE, false);
1231
- this.onValueSelectedHandler('', reactivecore.causes.CLEAR_VALUE);
1233
+ this.setValue('', false, this.$props, !this.$options.isTagsMode ? reactivecore.causes.CLEAR_VALUE : undefined, false);
1234
+ this.onValueSelectedHandler('', !this.$options.isTagsMode ? reactivecore.causes.CLEAR_VALUE : undefined);
1232
1235
  },
1233
1236
  handleKeyDown: function handleKeyDown(event, highlightedIndex) {
1234
1237
  if (highlightedIndex === void 0) {
@@ -1258,7 +1261,7 @@ var SearchBox = vue.defineComponent({
1258
1261
  }
1259
1262
  var value = this.$props.value;
1260
1263
  if (value === undefined) {
1261
- this.setValue(inputValue, false, this.$props, inputValue === '' ? reactivecore.causes.CLEAR_VALUE : undefined);
1264
+ this.setValue(inputValue, false, this.$props, undefined);
1262
1265
  } else {
1263
1266
  this.$emit('change', inputValue, function (_ref3) {
1264
1267
  var isOpen = _ref3.isOpen;
@@ -1866,9 +1869,575 @@ SBConnected.install = function (Vue) {
1866
1869
  // Add componentType for SSR
1867
1870
  SBConnected.componentType = constants.componentTypes.searchBox;
1868
1871
 
1869
- var _templateObject$8, _templateObject2$1;
1870
- var HierarchicalMenuList = vueEmotion.styled('ul')(_templateObject$8 || (_templateObject$8 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tmax-height: 0;\n\toverflow: hidden;\n\n\t&.--open {\n\t\tmax-height: 100%;\n\t}\n"])));
1871
- var HierarchicalMenuListItem = vueEmotion.styled('li')(_templateObject2$1 || (_templateObject2$1 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tfont-weight: 400;\n\tline-height: 1.5;\n\tbox-sizing: border-box;\n\n\ta {\n\t\tcolor: #424242;\n\t\ttext-decoration: none;\n\t\tgap: 5px;\n\t\t.--leaf-icon,\n\t\t.--folder-icon {\n\t\t\tline-height: 15px;\n\t\t\tsvg {\n\t\t\t\theight: 15px;\n\t\t\t}\n\t\t}\n\n\t\tinput {\n\t\t\tmargin: 0;\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t.--switcher-icon {\n\t\ttransition: all 0.2s ease-in;\n\t\tmargin-right: 2px;\n\t}\n\t.--list-child {\n\t\tpadding-left: 1rem;\n\t\tposition: relative;\n\t\t&:before {\n\t\t\theight: 100%;\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\tborder-left: 1px solid #787878;\n\t\t\twidth: 0;\n\t\t\tleft: 19px;\n\t\t\t", ";\n\t\t}\n\n\t\t&.--show-switcher-icon {\n\t\t\tpadding-left: 36px;\n\t\t}\n\t}\n\t.--list-item-label {\n\t\tline-height: 100%;\n\t}\n\t.--list-item-count {\n\t\tmargin-left: 10px;\n\t\tpadding: 0.1rem 0.4rem;\n\t\tfont-size: 0.8rem;\n\t\tcolor: #424242;\n\t\tbackground-color: #dee1e6;\n\t\tborder-radius: 8px;\n\t}\n\t&.-selected-item {\n\t\tfont-weight: 700 !important;\n\t}\n\t&.-expanded-item {\n\t\t& > a {\n\t\t\t& div > .--switcher-icon {\n\t\t\t\ttransform: rotate(90deg);\n\t\t\t}\n\t\t}\n\t}\n\t.--list-item-label-count-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t&:hover {\n\t\t\t.--list-item-count,\n\t\t\t.--list-item-label {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t}\n\t}\n"])), function (props) {
1872
+ var _templateObject$8, _templateObject2$1, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
1873
+ var Chatbox = vueEmotion.styled('div')(_templateObject$8 || (_templateObject$8 = _rollupPluginBabelHelpers._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"])), function (props) {
1874
+ return props.theme && props.theme.colors ? props.theme.colors.backgroundColor : '#fff';
1875
+ });
1876
+ var ChatContainer = vueEmotion.styled('div')(_templateObject2$1 || (_templateObject2$1 = _rollupPluginBabelHelpers._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"])), function (props) {
1877
+ return props.showInput ? 'bottom: 48px;' : '';
1878
+ }, function (props) {
1879
+ return props.theme && props.theme.colors && props.theme.colors.backgroundColor ? props.theme.colors.backgroundColor : '#fff';
1880
+ }, function (props) {
1881
+ return props.theme && props.theme.colors && props.theme.colors.backgroundColor ? props.theme.colors.backgroundColor : '#fff';
1882
+ });
1883
+ var MessagesContainer = vueEmotion.styled('div')(_templateObject3 || (_templateObject3 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tmax-height: 400px;\n overflow-y: auto;\n\tpadding: 10px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 200px;\n\n}};\n"])));
1884
+ var typingDots = css.keyframes(_templateObject4 || (_templateObject4 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n 0% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-70%);\n }\n 100% {\n transform: translateY(0);\n }\n"])));
1885
+ var TypingIndicator = vueEmotion.styled('div')(_templateObject5 || (_templateObject5 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 5px !important;\n"])));
1886
+ var TypingDot = vueEmotion.styled('div')(_templateObject6 || (_templateObject6 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 6px;\n\theight: 6px;\n\tbackground-color: ", ";\n\tborder-radius: 50%;\n\tmargin: 0 2px !important;\n\tanimation: ", " 1s infinite;\n\t&:nth-child(2) {\n\t\tanimation-delay: 0.2s;\n\t}\n\t&:nth-child(3) {\n\t\tanimation-delay: 0.4s;\n\t}\n"])), function (props) {
1887
+ var finalColor;
1888
+ if (props.isSender) {
1889
+ finalColor = props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor;
1890
+ } else {
1891
+ finalColor = props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor;
1892
+ }
1893
+ return finalColor;
1894
+ }, typingDots);
1895
+ var resetCSS = function resetCSS(props) {
1896
+ return "\n\thtml,\n\tbody,\n\tdiv,\n\tspan,\n\tapplet,\n\tobject,\n\tiframe,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tp,\n\tblockquote,\n\tpre,\n\ta,\n\tabbr,\n\tacronym,\n\taddress,\n\tbig,\n\tcite,\n\tcode,\n\tdel,\n\tdfn,\n\tem,\n\timg,\n\tins,\n\tkbd,\n\tq,\n\ts,\n\tsamp,\n\tsmall,\n\tstrike,\n\tstrong,\n\tsub,\n\tsup,\n\ttt,\n\tvar,\n\tb,\n\tu,\n\ti,\n\tcenter,\n\tdl,\n\tdt,\n\tdd,\n\tol,\n\tul,\n\tli,\n\tfieldset,\n\tform,\n\tlabel,\n\tlegend,\n\ttable,\n\tcaption,\n\ttbody,\n\ttfoot,\n\tthead,\n\ttr,\n\tth,\n\ttd,\n\tarticle,\n\taside,\n\tcanvas,\n\tdetails,\n\tembed,\n\tfigure,\n\tfigcaption,\n\tfooter,\n\theader,\n\thgroup,\n\tmenu,\n\tnav,\n\toutput,\n\truby,\n\tsection,\n\tsummary,\n\ttime,\n\tmark,\n\taudio,\n\tvideo {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t\tfont-size: 100%;\n\t\tfont: inherit;\n\t\tvertical-align: baseline;\n\t\toverflow-wrap: anywhere;\n\t}\n\tpre {\n\t\tmargin: 10px auto;\n\t}\n\ttable {\n\t\tmargin: 10px auto;\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\t}\n\ttr {\n\t\tborder-bottom: 1px solid #ccc;\n\t}\n\tth,\n\ttd {\n\t\ttext-align: left;\n\t\tpadding: 4px;\n\t\tborder: 1px solid;\n\t\tborder-collapse: collapse;\n\t}\n\tpre,\n\tcode {\n\t\tpadding: 0.6em 0.4em;\n\t\tbackground: " + (
1897
+ // eslint-disable-next-line no-nested-ternary
1898
+ props.isSender ? props.themePreset !== 'dark' ? props.theme.colors.primaryColor : props.theme.colors.borderColor : props.theme.colors.borderColor) + ";\n\t}\n\n\tcode {\n\t\tline-height: normal;\n\n\t\tcolor: " + function (colorProps) {
1899
+ return (
1900
+ // eslint-disable-next-line no-nested-ternary
1901
+ colorProps.isSender ? colorProps.themePreset !== 'dark' ? colorProps.theme.colors.primaryTextColor : colorProps.theme.colors.textColor : colorProps.theme.colors.primaryTextColor
1902
+ );
1903
+ } + ";\n\t\tborder-radius: 3px;\n\t\tfont-size: 85%;\n\t\tpadding: 0.2em 0.4em;\n\t\tmargin: 5px 0;\n\t\tdisplay: inline-block;\n\t\toverflow: auto;\n\t\twidth: 100%;\n\t}\n\tul,\n\tol {\n\t\tlist-style-position: inside;\n\t}\n";
1904
+ };
1905
+ var messageBGColor = function messageBGColor(props) {
1906
+ var finalBGColor;
1907
+ if (props.isSender) {
1908
+ finalBGColor = props.themePreset !== 'dark' ? props.theme.colors.primaryColor : props.theme.colors.borderColor;
1909
+ } else {
1910
+ finalBGColor = props.themePreset !== 'dark' ? polished.lighten(0.25, props.theme.colors.borderColor) : props.theme.colors.backgroundColor;
1911
+ }
1912
+ return finalBGColor;
1913
+ };
1914
+ var Message = vueEmotion.styled('div')(_templateObject7 || (_templateObject7 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tbackground-color: ", ";\n\tcolor: ", ";\n\tborder: 1px solid\n\t\t", ";\n\tpadding: 10px;\n\tborder-radius: 7px;\n\tmargin-bottom: 10px;\n\tmax-width: 80%;\n\talign-self: ", ";\n\tdisplay: inline-block;\n\tposition: relative;\n\toverflow-wrap: anywhere;\n\t", "\n"])), function (props) {
1915
+ return messageBGColor(props);
1916
+ }, function (props) {
1917
+ var finalColor;
1918
+ if (props.isSender) {
1919
+ finalColor = props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor;
1920
+ } else {
1921
+ finalColor = props.themePreset !== 'dark' ? props.theme.colors.primaryTextColor : props.theme.colors.textColor;
1922
+ }
1923
+ return finalColor;
1924
+ }, function (props) {
1925
+ return props.themePreset === 'dark' ? 'currentColor' : messageBGColor(props);
1926
+ }, function (props) {
1927
+ return props.isSender ? 'flex-end' : 'flex-start';
1928
+ }, function (props) {
1929
+ return resetCSS(props);
1930
+ });
1931
+ var MessageInputContainer = vueEmotion.styled('form')(_templateObject8 || (_templateObject8 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: flex;\n\tpadding-top: 12px;\n\talign-items: stretch;\n\tmargin-top: 10px;\n"])));
1932
+ var MessageInput = vueEmotion.styled(Input.Input)(_templateObject9 || (_templateObject9 = _rollupPluginBabelHelpers._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"])), function (props) {
1933
+ return props.themePreset === 'dark' ? props.theme.colors.borderColor : '#fff';
1934
+ }, function (props) {
1935
+ return props.themePreset === 'dark' ? props.theme.colors.titleColor : props.theme.colors.textColor;
1936
+ }, function (props) {
1937
+ return props.theme.colors.textColor;
1938
+ }, function (props) {
1939
+ return props.theme.colors.textColor;
1940
+ }, function (props) {
1941
+ return props.theme.colors.textColor;
1942
+ });
1943
+ var SendButton = vueEmotion.styled(Button.Button)(_templateObject10 || (_templateObject10 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tborder: none;\n\tcolor: #ffffff;\n\tcursor: pointer;\n\tfont-size: 16px;\n\tmargin-left: 8px;\n\toutline: none;\n\tpadding: 10px;\n\ttext-align: center;\n"])));
1944
+
1945
+ function _isSlot$1(s) {
1946
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
1947
+ }
1948
+ var md = new remarkable.Remarkable();
1949
+ md.set({
1950
+ html: true,
1951
+ breaks: true,
1952
+ xhtmlOut: true
1953
+ });
1954
+ var AIAnswer = vue.defineComponent({
1955
+ name: 'AIAnswer',
1956
+ data: function data() {
1957
+ var props = this.$props;
1958
+ this.__state = {
1959
+ messages: [],
1960
+ inputMessage: '',
1961
+ AISessionId: '',
1962
+ error: null
1963
+ };
1964
+ this.internalComponent = props.componentId + "__internal";
1965
+ return this.__state;
1966
+ },
1967
+ inject: {
1968
+ theme: {
1969
+ from: 'theme_reactivesearch'
1970
+ }
1971
+ },
1972
+ created: function created() {},
1973
+ computed: {
1974
+ hasCustomRenderer: function hasCustomRenderer() {
1975
+ return index.hasCustomRenderer(this);
1976
+ },
1977
+ isLoadingState: function isLoadingState() {
1978
+ return this.isAIResponseLoading || this.isLoading;
1979
+ },
1980
+ shouldShowComponent: function shouldShowComponent() {
1981
+ return this.showComponent;
1982
+ }
1983
+ },
1984
+ props: {
1985
+ componentId: vueTypes.types.string.isRequired,
1986
+ showVoiceInput: VueTypes.bool.def(false),
1987
+ showIcon: VueTypes.bool.def(true),
1988
+ onData: vueTypes.types.func,
1989
+ innerRef: VueTypes.string.def('AISearchInputField'),
1990
+ react: vueTypes.types.react,
1991
+ enableAI: VueTypes.bool.def(true),
1992
+ AIConfig: vueTypes.types.AIConfig,
1993
+ iconPosition: vueTypes.types.iconPosition.def('left'),
1994
+ themePreset: vueTypes.types.themePreset,
1995
+ theme: vueTypes.types.style,
1996
+ icon: vueTypes.types.children,
1997
+ iconURL: VueTypes.string.def(''),
1998
+ renderMic: vueTypes.types.func,
1999
+ getMicInstance: vueTypes.types.func,
2000
+ innerClass: vueTypes.types.style,
2001
+ placeholder: VueTypes.string.def('Ask a question'),
2002
+ title: vueTypes.types.title,
2003
+ AIResponse: vueTypes.types.componentObject,
2004
+ isAIResponseLoading: VueTypes.bool.def(false),
2005
+ AIResponseError: vueTypes.types.componentObject,
2006
+ getAIResponse: vueTypes.types.func.isRequired,
2007
+ enterButton: vueTypes.types.bool,
2008
+ renderEnterButton: vueTypes.types.title,
2009
+ showInput: VueTypes.bool.def(true),
2010
+ clearSessionOnDestroy: VueTypes.bool.def(true),
2011
+ rawData: vueTypes.types.rawData,
2012
+ render: vueTypes.types.func,
2013
+ onError: vueTypes.types.func,
2014
+ renderError: vueTypes.types.title,
2015
+ isLoading: vueTypes.types.boolRequired,
2016
+ sessionIdFromStore: VueTypes.string,
2017
+ showComponent: vueTypes.types.boolRequired
2018
+ },
2019
+ mounted: function mounted() {},
2020
+ watch: {
2021
+ AIResponse: function AIResponse(newVal) {
2022
+ if (newVal) {
2023
+ this.AISessionId = ((helper.getObjectFromLocalStorage(constants.AI_LOCAL_CACHE_KEY) || {})[this.$props.componentId] || {}).sessionId || null;
2024
+ var messagesHistory = newVal.messages,
2025
+ response = newVal.response;
2026
+ var finalMessages = [];
2027
+ if (response && response.error) {
2028
+ this.error = {
2029
+ message: response.error
2030
+ };
2031
+ }
2032
+
2033
+ // pushing message history so far
2034
+ if (messagesHistory && messagesHistory && Array.isArray(messagesHistory)) {
2035
+ finalMessages.push.apply(finalMessages, messagesHistory.filter(function (msg) {
2036
+ return msg.role !== constants.AI_ROLES.SYSTEM;
2037
+ }));
2038
+ }
2039
+ // fresh response
2040
+ if (response && response.answer) ;
2041
+ this.messages = finalMessages;
2042
+ } else if (!newVal && !this.error) {
2043
+ this.messages = [];
2044
+ }
2045
+ },
2046
+ rawData: function rawData(newVal) {
2047
+ this.$emit('on-data', {
2048
+ data: this.messages,
2049
+ rawData: newVal,
2050
+ loading: this.$props.isAIResponseLoading || this.$props.isLoading,
2051
+ error: this.$props.AIResponseError
2052
+ });
2053
+ },
2054
+ isAIResponseLoading: function isAIResponseLoading(newVal) {
2055
+ this.isLoadingState = newVal;
2056
+ this.$emit('on-data', {
2057
+ data: this.messages,
2058
+ rawData: this.$props.rawData,
2059
+ loading: newVal || this.$props.isLoading,
2060
+ error: this.$props.AIResponseError
2061
+ });
2062
+ },
2063
+ isLoading: function isLoading(newVal) {
2064
+ this.isLoadingState = newVal;
2065
+ this.$emit('on-data', {
2066
+ data: this.messages,
2067
+ rawData: this.$props.rawData,
2068
+ loading: newVal || this.$props.isLoading,
2069
+ error: this.$props.AIResponseError
2070
+ });
2071
+ },
2072
+ sessionIdFromStore: function sessionIdFromStore(newVal) {
2073
+ if (newVal) {
2074
+ this.sessionId = newVal;
2075
+ }
2076
+ },
2077
+ AIResponseError: function AIResponseError(newVal) {
2078
+ this.error = newVal;
2079
+ this.AISessionId = ((helper.getObjectFromLocalStorage(constants.AI_LOCAL_CACHE_KEY) || {})[this.$props.componentId] || {}).sessionId || null;
2080
+ this.$emit('on-data', {
2081
+ data: this.messages,
2082
+ rawData: this.$props.rawData,
2083
+ loading: this.$props.isAIResponseLoading || this.$props.isLoading,
2084
+ error: newVal
2085
+ });
2086
+ },
2087
+ messages: function messages() {
2088
+ this.scrollToBottom();
2089
+ }
2090
+ },
2091
+ methods: {
2092
+ scrollToBottom: function scrollToBottom() {
2093
+ var _this = this;
2094
+ this.$nextTick(function () {
2095
+ var _this$$refs;
2096
+ var messageContainer = (_this$$refs = _this.$refs) == null ? void 0 : _this$$refs[_this.$props.innerRef];
2097
+ if (messageContainer && messageContainer.$el) {
2098
+ messageContainer.$el.scrollTo({
2099
+ top: messageContainer.$el.scrollHeight,
2100
+ behavior: 'smooth'
2101
+ });
2102
+ }
2103
+ });
2104
+ },
2105
+ handleMessageInputChange: function handleMessageInputChange(e) {
2106
+ this.inputMessage = e.target.value;
2107
+ },
2108
+ handleSendMessage: function handleSendMessage(e, isRetry, text) {
2109
+ if (isRetry === void 0) {
2110
+ isRetry = false;
2111
+ }
2112
+ if (text === void 0) {
2113
+ text = this.inputMessage;
2114
+ }
2115
+ if (typeof e === 'object') e.preventDefault();
2116
+ if (text.trim()) {
2117
+ if (this.isLoadingState) {
2118
+ return;
2119
+ }
2120
+ if (this.AISessionId) {
2121
+ if (!isRetry) this.messages = [].concat(this.messages, [{
2122
+ content: text,
2123
+ role: constants.AI_ROLES.USER
2124
+ }]);
2125
+ this.getAIResponse(this.AISessionId, this.componentId, text);
2126
+ } else {
2127
+ console.error("AISessionId for " + this.$props.componentId + " is missing! AIAnswer component requires an AISession to function. Try reloading the App.");
2128
+ this.error = {
2129
+ message: "AISessionId for " + this.$props.componentId + " is missing! AIAnswer component requires an AISession to function. Trying reloading the App."
2130
+ };
2131
+ }
2132
+ this.inputMessage = '';
2133
+ }
2134
+ },
2135
+ handleRetryRequest: function handleRetryRequest() {
2136
+ if (this.messages && !this.isLoadingState) {
2137
+ var _this$messages;
2138
+ var lastUserRequestMessage = (_this$messages = this.messages[this.messages.length - 1]) == null ? void 0 : _this$messages.content;
2139
+ if (this.AISessionId) {
2140
+ this.getAIResponse(this.AISessionId, this.componentId, lastUserRequestMessage);
2141
+ this.inputMessage = '';
2142
+ } else {
2143
+ console.error("AISessionId for " + this.componentId + " is missing! AIAnswer component requires an AISession to function. Try reloading the App.");
2144
+ }
2145
+ }
2146
+ },
2147
+ renderErrorComponent: function renderErrorComponent() {
2148
+ var renderError = this.$slots.renderError || this.$props.renderError;
2149
+ if (this.error && !this.isLoadingState) {
2150
+ if (renderError) {
2151
+ return vue.createVNode("div", {
2152
+ "class": "--ai-answer-error-container " + (helper.getClassName(this.$props.innerClass, 'ai-error') || '')
2153
+ }, [index.isFunction(renderError) ? renderError(this.error, this.handleRetryRequest) : renderError]);
2154
+ }
2155
+ return vue.createVNode("div", {
2156
+ "class": "--ai-answer-error-container " + (helper.getClassName(this.$props.innerClass, 'ai-error') || '')
2157
+ }, [vue.createVNode("div", {
2158
+ "class": "--default-error-element"
2159
+ }, [vue.createVNode("span", null, [this.error.message ? this.error.message : 'There was an error in generating the response.', ' ', this.error.code ? "Code:\n\t\t\t\t\t\t\t" + this.error.code : '']), this.AISessionId && vue.createVNode(Button.Button, {
2160
+ "primary": true,
2161
+ "onClick": this.handleRetryRequest
2162
+ }, {
2163
+ "default": function _default() {
2164
+ return [vue.createTextVNode("Try again")];
2165
+ }
2166
+ })])]);
2167
+ }
2168
+ return null;
2169
+ },
2170
+ handleKeyPress: function handleKeyPress(e) {
2171
+ if (e.key === 'Enter') {
2172
+ this.handleSendMessage(e);
2173
+ this.inputMessage = '';
2174
+ }
2175
+ },
2176
+ renderIcon: function renderIcon() {
2177
+ if (this.$props.showIcon) {
2178
+ if (this.$props.icon) {
2179
+ return this.$props.icon;
2180
+ }
2181
+ if (this.$slots.icon) {
2182
+ return this.$slots.icon();
2183
+ }
2184
+ if (this.$props.iconURL) {
2185
+ return vue.createVNode("img", {
2186
+ "style": {
2187
+ maxHeight: '25px'
2188
+ },
2189
+ "src": this.$props.iconURL,
2190
+ "alt": "search-icon"
2191
+ }, null);
2192
+ }
2193
+ return vue.createVNode(SearchSvg, null, null);
2194
+ }
2195
+ return null;
2196
+ },
2197
+ shouldMicRender: function shouldMicRender(showVoiceSearch) {
2198
+ // checks for SSR
2199
+ if (typeof window === 'undefined') return false;
2200
+ return showVoiceSearch && (window.webkitSpeechRecognition || window.SpeechRecognition);
2201
+ },
2202
+ handleVoiceResults: function handleVoiceResults(_ref) {
2203
+ var results = _ref.results;
2204
+ if (results && results[0] && results[0].isFinal && results[0][0] && results[0][0].transcript && results[0][0].transcript.trim()) {
2205
+ this.handleSendMessage(null, false, results[0][0].transcript.trim());
2206
+ }
2207
+ },
2208
+ renderIcons: function renderIcons() {
2209
+ var _this2 = this;
2210
+ var _slot, _slot2;
2211
+ var _this$$props = this.$props,
2212
+ getMicInstance = _this$$props.getMicInstance,
2213
+ showVoiceInput = _this$$props.showVoiceInput,
2214
+ iconPosition = _this$$props.iconPosition,
2215
+ innerClass = _this$$props.innerClass;
2216
+ var renderMic = this.$slots.renderMic || this.$props.renderMic;
2217
+ return vue.createVNode("div", null, [vue.createVNode(DropDown.IconGroup, {
2218
+ "groupPosition": "right",
2219
+ "positionType": "absolute"
2220
+ }, {
2221
+ "default": function _default() {
2222
+ return [_this2.shouldMicRender(showVoiceInput) && vue.createVNode(Mic, {
2223
+ "getInstance": getMicInstance,
2224
+ "render": renderMic,
2225
+ "onResult": _this2.handleVoiceResults,
2226
+ "class": helper.getClassName(innerClass, 'ai-search-mic') || null
2227
+ }, null), iconPosition === 'right' && vue.createVNode(DropDown.IconWrapper, null, _isSlot$1(_slot = _this2.renderIcon()) ? _slot : {
2228
+ "default": function _default() {
2229
+ return [_slot];
2230
+ }
2231
+ })];
2232
+ }
2233
+ }), vue.createVNode(DropDown.IconGroup, {
2234
+ "groupPosition": "left",
2235
+ "positionType": "absolute"
2236
+ }, {
2237
+ "default": function _default() {
2238
+ return [iconPosition === 'left' && vue.createVNode(DropDown.IconWrapper, null, _isSlot$1(_slot2 = _this2.renderIcon()) ? _slot2 : {
2239
+ "default": function _default() {
2240
+ return [_slot2];
2241
+ }
2242
+ })];
2243
+ }
2244
+ })]);
2245
+ },
2246
+ enterButtonOnClick: function enterButtonOnClick(e) {
2247
+ this.handleSendMessage(e);
2248
+ },
2249
+ renderEnterButtonElement: function renderEnterButtonElement() {
2250
+ var _this3 = this;
2251
+ var _this$$props2 = this.$props,
2252
+ enterButton = _this$$props2.enterButton,
2253
+ innerClass = _this$$props2.innerClass;
2254
+ var renderEnterButton = this.$slots.renderEnterButton;
2255
+ if (enterButton) {
2256
+ var getEnterButtonMarkup = function getEnterButtonMarkup() {
2257
+ if (renderEnterButton) {
2258
+ return renderEnterButton(_this3.enterButtonOnClick);
2259
+ }
2260
+ return vue.createVNode(SendButton, {
2261
+ "primary": true,
2262
+ "type": "submit",
2263
+ "tabIndex": 0,
2264
+ "onClick": _this3.handleSendMessage,
2265
+ "onKeyPress": _this3.handleKeyPress,
2266
+ "class": "enter-btn " + helper.getClassName(innerClass, 'ai-enter-button')
2267
+ }, {
2268
+ "default": function _default() {
2269
+ return [vue.createTextVNode("Send")];
2270
+ }
2271
+ });
2272
+ };
2273
+ return vue.createVNode("div", {
2274
+ "class": "ai-enter-button-wrapper"
2275
+ }, [getEnterButtonMarkup()]);
2276
+ }
2277
+ return null;
2278
+ },
2279
+ getComponent: function getComponent() {
2280
+ var data = {
2281
+ error: this.AIResponseError,
2282
+ loading: this.isAIResponseLoading,
2283
+ data: this.messages,
2284
+ rawData: this.rawData
2285
+ };
2286
+ return index.getComponent(data, this);
2287
+ }
2288
+ },
2289
+ beforeUnmount: function beforeUnmount() {
2290
+ if (this.$props.clearSessionOnDestroy) {
2291
+ // cleanup logic
2292
+ // final Object to store in local storage cache
2293
+ var finalCacheObj = helper.getObjectFromLocalStorage(constants.AI_LOCAL_CACHE_KEY) || {};
2294
+ // delete current component's cache
2295
+ delete finalCacheObj[this.$props.componentId];
2296
+ // update local cache
2297
+ helper.setObjectInLocalStorage(constants.AI_LOCAL_CACHE_KEY, finalCacheObj);
2298
+ }
2299
+ },
2300
+ render: function render() {
2301
+ var _slot3;
2302
+ var _this4 = this;
2303
+ var props = this.$props;
2304
+ if (!this.shouldShowComponent) {
2305
+ return null;
2306
+ }
2307
+ return vue.createVNode(Chatbox, null, {
2308
+ "default": function _default() {
2309
+ return [_this4.$props.title && vue.createVNode(Title.Title, {
2310
+ "class": helper.getClassName(_this4.$props.innerClass, 'title') || ''
2311
+ }, {
2312
+ "default": function _default() {
2313
+ return [_this4.$props.title];
2314
+ }
2315
+ }), vue.createVNode(ChatContainer, {
2316
+ "theme": props.theme,
2317
+ "showInput": props.showInput
2318
+ }, {
2319
+ "default": function _default() {
2320
+ return [_this4.hasCustomRenderer && vue.createVNode(MessagesContainer, {
2321
+ "themePreset": _this4.themePreset,
2322
+ "theme": props.theme,
2323
+ "ref": _this4.$props.innerRef,
2324
+ "class": "--ai-message-container " + (helper.getClassName(props.innerClass, 'ai-message-container') || '')
2325
+ }, _isSlot$1(_slot3 = _this4.getComponent()) ? _slot3 : {
2326
+ "default": function _default() {
2327
+ return [_slot3];
2328
+ }
2329
+ }), !_this4.hasCustomRenderer && vue.createVNode(MessagesContainer, {
2330
+ "themePreset": _this4.themePreset,
2331
+ "theme": props.theme,
2332
+ "ref": _this4.$props.innerRef,
2333
+ "class": "--ai-message-container " + (helper.getClassName(props.innerClass, 'ai-message-container') || '')
2334
+ }, {
2335
+ "default": function _default() {
2336
+ return [_this4.messages.map(function (message, index) {
2337
+ return vue.createVNode(Message, {
2338
+ "key": index,
2339
+ "isSender": message.role === constants.AI_ROLES.USER,
2340
+ "innerHTML": md.render(message.content),
2341
+ "themePreset": _this4.themePreset,
2342
+ "theme": props.theme,
2343
+ "class": "--ai-answer-message " + (helper.getClassName(props.innerClass, 'ai-message') || '')
2344
+ }, null);
2345
+ }), _this4.isLoadingState && vue.createVNode(Message, {
2346
+ "themePreset": _this4.themePreset,
2347
+ "theme": props.theme,
2348
+ "isSender": false,
2349
+ "class": "--ai-answer-message " + (helper.getClassName(props.innerClass, 'ai-message') || null)
2350
+ }, {
2351
+ "default": function _default() {
2352
+ return [vue.createVNode(TypingIndicator, null, {
2353
+ "default": function _default() {
2354
+ return [vue.createVNode(TypingDot, {
2355
+ "themePreset": _this4.themePreset
2356
+ }, null), vue.createVNode(TypingDot, {
2357
+ "themePreset": _this4.themePreset
2358
+ }, null), vue.createVNode(TypingDot, {
2359
+ "themePreset": _this4.themePreset
2360
+ }, null)];
2361
+ }
2362
+ })];
2363
+ }
2364
+ })];
2365
+ }
2366
+ }), _this4.renderErrorComponent(), props.showInput && vue.createVNode(MessageInputContainer, {
2367
+ "class": "--ai-input-container",
2368
+ "onSubmit": _this4.handleSendMessage
2369
+ }, {
2370
+ "default": function _default() {
2371
+ return [vue.createVNode(InputGroup, {
2372
+ "isOpen": false
2373
+ }, {
2374
+ "default": function _default() {
2375
+ return [vue.createVNode(DropDown.InputWrapper, null, {
2376
+ "default": function _default() {
2377
+ return [vue.createVNode(MessageInput, {
2378
+ "type": "text",
2379
+ "placeholder": props.placeholder,
2380
+ "value": _this4.inputMessage,
2381
+ "onChange": _this4.handleMessageInputChange,
2382
+ "onKeyPress": _this4.handleKeyPress,
2383
+ "id": props.componentId + "-ai-input",
2384
+ "showIcon": props.showIcon,
2385
+ "iconPosition": props.iconPosition,
2386
+ "themePreset": _this4.themePreset,
2387
+ "disabled": _this4.isLoadingState,
2388
+ "class": helper.getClassName(props.innerClass, 'ai-input') || null
2389
+ }, null), ' ', _this4.renderIcons()];
2390
+ }
2391
+ })];
2392
+ }
2393
+ }), _this4.renderEnterButtonElement()];
2394
+ }
2395
+ }), ' '];
2396
+ }
2397
+ })];
2398
+ }
2399
+ });
2400
+ }
2401
+ });
2402
+ AIAnswer.hasInternalComponent = function () {
2403
+ return true;
2404
+ };
2405
+ var mapStateToProps$1 = function mapStateToProps(state, props) {
2406
+ var dependencyComponent = Object.values(props.react)[0];
2407
+ if (Array.isArray(dependencyComponent)) {
2408
+ // eslint-disable-next-line prefer-destructuring
2409
+ dependencyComponent = dependencyComponent[0];
2410
+ }
2411
+ var showComponent = state.selectedValues[dependencyComponent] && state.selectedValues[dependencyComponent].value;
2412
+ return {
2413
+ showComponent: showComponent,
2414
+ AIResponse: state.AIResponses[props.componentId] && state.AIResponses[props.componentId].response,
2415
+ isAIResponseLoading: state.AIResponses[props.componentId] && state.AIResponses[props.componentId].isLoading,
2416
+ AIResponseError: state.AIResponses[props.componentId] && state.AIResponses[props.componentId].error,
2417
+ rawData: state.rawData[props.componentId],
2418
+ themePreset: state.config.themePreset,
2419
+ isLoading: state.isLoading[props.componentId] || false,
2420
+ sessionIdFromStore: state.AIResponses[props.componentId] && state.AIResponses[props.componentId].sessionId || ''
2421
+ };
2422
+ };
2423
+ var mapDispatchToProps$1 = {
2424
+ getAIResponse: query.fetchAIResponse
2425
+ };
2426
+ var AIConnected = PreferencesConsumer.PreferencesConsumer(ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps$1, mapDispatchToProps$1)(AIAnswer), {
2427
+ componentType: constants.componentTypes.AIAnswer,
2428
+ internalComponent: true
2429
+ }));
2430
+ AIConnected.name = AIAnswer.name;
2431
+ AIConnected.hasInternalComponent = AIAnswer.hasInternalComponent;
2432
+ AIConnected.install = function (Vue) {
2433
+ Vue.component(AIConnected.name, AIConnected);
2434
+ };
2435
+ // Add componentType for SSR
2436
+ AIConnected.componentType = constants.componentTypes.AIAnswer;
2437
+
2438
+ var _templateObject$9, _templateObject2$2;
2439
+ var HierarchicalMenuList = vueEmotion.styled('ul')(_templateObject$9 || (_templateObject$9 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tmax-height: 0;\n\toverflow: hidden;\n\n\t&.--open {\n\t\tmax-height: 100%;\n\t}\n"])));
2440
+ var HierarchicalMenuListItem = vueEmotion.styled('li')(_templateObject2$2 || (_templateObject2$2 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tfont-weight: 400;\n\tline-height: 1.5;\n\tbox-sizing: border-box;\n\n\ta {\n\t\tcolor: #424242;\n\t\ttext-decoration: none;\n\t\tgap: 5px;\n\t\t.--leaf-icon,\n\t\t.--folder-icon {\n\t\t\tline-height: 15px;\n\t\t\tsvg {\n\t\t\t\theight: 15px;\n\t\t\t}\n\t\t}\n\n\t\tinput {\n\t\t\tmargin: 0;\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t.--switcher-icon {\n\t\ttransition: all 0.2s ease-in;\n\t\tmargin-right: 2px;\n\t}\n\t.--list-child {\n\t\tpadding-left: 1rem;\n\t\tposition: relative;\n\t\t&:before {\n\t\t\theight: 100%;\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\tborder-left: 1px solid #787878;\n\t\t\twidth: 0;\n\t\t\tleft: 19px;\n\t\t\t", ";\n\t\t}\n\n\t\t&.--show-switcher-icon {\n\t\t\tpadding-left: 36px;\n\t\t}\n\t}\n\t.--list-item-label {\n\t\tline-height: 100%;\n\t}\n\t.--list-item-count {\n\t\tmargin-left: 10px;\n\t\tpadding: 0.1rem 0.4rem;\n\t\tfont-size: 0.8rem;\n\t\tcolor: #424242;\n\t\tbackground-color: #dee1e6;\n\t\tborder-radius: 8px;\n\t}\n\t&.-selected-item {\n\t\tfont-weight: 700 !important;\n\t}\n\t&.-expanded-item {\n\t\t& > a {\n\t\t\t& div > .--switcher-icon {\n\t\t\t\ttransform: rotate(90deg);\n\t\t\t}\n\t\t}\n\t}\n\t.--list-item-label-count-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t&:hover {\n\t\t\t.--list-item-count,\n\t\t\t.--list-item-label {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t}\n\t}\n"])), function (props) {
1872
2441
  return !props.showLine && "\n\t\t\t\t\tdisplay: none;\n\t\t\t\t";
1873
2442
  });
1874
2443
 
@@ -2081,7 +2650,7 @@ var HierarchicalMenuListItemComponent = {
2081
2650
  }
2082
2651
  };
2083
2652
 
2084
- function _isSlot$1(s) {
2653
+ function _isSlot$2(s) {
2085
2654
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
2086
2655
  }
2087
2656
  var HierarchicalMenuComponent = {
@@ -2106,7 +2675,7 @@ var HierarchicalMenuComponent = {
2106
2675
  return vue.createVNode(HierarchicalMenuList, {
2107
2676
  "class": "" + (isExpanded ? '--open' : ''),
2108
2677
  "isSelected": isExpanded
2109
- }, _isSlot$1(_slot = listArray.map(function (listItem) {
2678
+ }, _isSlot$2(_slot = listArray.map(function (listItem) {
2110
2679
  return vue.createVNode(HierarchicalMenuListItemComponent, vue.mergeProps({
2111
2680
  "key": parentPath + "__" + JSON.stringify(listItem),
2112
2681
  "parentPath": parentPath,
@@ -2120,7 +2689,7 @@ var HierarchicalMenuComponent = {
2120
2689
  }
2121
2690
  };
2122
2691
 
2123
- function _isSlot$2(s) {
2692
+ function _isSlot$3(s) {
2124
2693
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
2125
2694
  }
2126
2695
  var updateQueryAction = reactivecore.Actions.updateQuery,
@@ -2570,7 +3139,7 @@ var TreeList = {
2570
3139
  "default": function _default() {
2571
3140
  return [props.title && vue.createVNode(Title.Title, {
2572
3141
  "class": helper.getClassName(innerClass, 'title') || null
2573
- }, _isSlot$2(title) ? title : {
3142
+ }, _isSlot$3(title) ? title : {
2574
3143
  "default": function _default() {
2575
3144
  return [title];
2576
3145
  }
@@ -2599,7 +3168,7 @@ var TreeList = {
2599
3168
  });
2600
3169
  }
2601
3170
  };
2602
- var mapStateToProps$1 = function mapStateToProps(state, props) {
3171
+ var mapStateToProps$2 = function mapStateToProps(state, props) {
2603
3172
  return {
2604
3173
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || null,
2605
3174
  rawData: state.rawData[props.componentId] || {},
@@ -2617,7 +3186,7 @@ var mapDispatchtoProps = {
2617
3186
  TreeList.hasInternalComponent = function () {
2618
3187
  return true;
2619
3188
  };
2620
- var TreeListConnected = PreferencesConsumer.PreferencesConsumer(ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps$1, mapDispatchtoProps)(TreeList), {
3189
+ var TreeListConnected = PreferencesConsumer.PreferencesConsumer(ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps$2, mapDispatchtoProps)(TreeList), {
2621
3190
  componentType: constants.componentTypes.treeList,
2622
3191
  internalComponent: TreeList.hasInternalComponent()
2623
3192
  }));
@@ -2685,7 +3254,7 @@ RcConnected.install = function (Vue) {
2685
3254
  Vue.component(RcConnected.name, RcConnected);
2686
3255
  };
2687
3256
 
2688
- var components = [ReactiveList.default, ResultCard.default, ResultList.default, ReactiveBase.default, SBConnected, SingleList.default, MultiList.default, SingleRange.default, MultiRange.default, RangeSlider.default, DynamicRangeSlider.default, ReactiveComponent.default, RcConnected, SelectedFilters.default, ToggleButton.default, SingleDropdownList.default, MultiDropdownList.default, StateProvider.default, RangeInput.default, TreeListConnected];
3257
+ var components = [ReactiveList.default, ResultCard.default, ResultList.default, ReactiveBase.default, SBConnected, SingleList.default, MultiList.default, SingleRange.default, MultiRange.default, RangeSlider.default, DynamicRangeSlider.default, ReactiveComponent.default, RcConnected, SelectedFilters.default, ToggleButton.default, SingleDropdownList.default, MultiDropdownList.default, StateProvider.default, RangeInput.default, TreeListConnected, AIConnected];
2689
3258
  function install (Vue) {
2690
3259
  components.map(function (component) {
2691
3260
  Vue.use(component);
@@ -2693,6 +3262,7 @@ function install (Vue) {
2693
3262
  });
2694
3263
  }
2695
3264
 
3265
+ exports.AIAnswer = AIConnected;
2696
3266
  exports.ReactiveComponentPrivate = RcConnected;
2697
3267
  exports.SearchBox = SBConnected;
2698
3268
  exports.TreeList = TreeListConnected;