@appbaseio/reactivesearch-vue 3.0.0-rc.1 → 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.
- package/dist/@appbaseio/reactivesearch-vue.umd.js +6345 -513
- package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
- package/dist/cjs/{ComponentWrapper-9146d811.js → ComponentWrapper-0b9ffb1a.js} +3 -0
- package/dist/cjs/{DropDown-b16418e9.js → DropDown-3797bb6a.js} +1 -1
- package/dist/cjs/DynamicRangeSlider.js +1 -1
- package/dist/cjs/MultiDropdownList.js +3 -3
- package/dist/cjs/MultiList.js +2 -2
- package/dist/cjs/MultiRange.js +2 -2
- package/dist/cjs/{Pagination-b953a80a.js → Pagination-b1a053a7.js} +1 -1
- package/dist/cjs/RangeInput.js +2 -2
- package/dist/cjs/RangeSlider.js +2 -2
- package/dist/cjs/ReactiveBase.js +4 -4
- package/dist/cjs/ReactiveComponent.js +2 -2
- package/dist/cjs/ReactiveGoogleMap.js +3 -3
- package/dist/cjs/ReactiveList.js +3 -3
- package/dist/cjs/ResultCard.js +1 -1
- package/dist/cjs/ResultList.js +1 -1
- package/dist/cjs/SelectedFilters.js +1 -1
- package/dist/cjs/SingleDropdownList.js +3 -3
- package/dist/cjs/SingleList.js +2 -2
- package/dist/cjs/SingleRange.js +2 -2
- package/dist/cjs/ToggleButton.js +2 -2
- package/dist/cjs/index.js +8 -5
- package/dist/cjs/{install-7cdf6798.js → install-581d2e18.js} +586 -16
- package/dist/cjs/install.js +7 -5
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/{vueTypes-1bf00978.js → vueTypes-d05e44cc.js} +8 -0
- package/dist/es/{ComponentWrapper-8a3c388d.js → ComponentWrapper-a2635cfc.js} +3 -0
- package/dist/es/{DropDown-fc1fef02.js → DropDown-ff8e06b4.js} +1 -1
- package/dist/es/DynamicRangeSlider.js +1 -1
- package/dist/es/MultiDropdownList.js +3 -3
- package/dist/es/MultiList.js +2 -2
- package/dist/es/MultiRange.js +2 -2
- package/dist/es/{Pagination-c2745bec.js → Pagination-aecb3914.js} +1 -1
- package/dist/es/RangeInput.js +2 -2
- package/dist/es/RangeSlider.js +2 -2
- package/dist/es/ReactiveBase.js +4 -4
- package/dist/es/ReactiveComponent.js +2 -2
- package/dist/es/ReactiveGoogleMap.js +3 -3
- package/dist/es/ReactiveList.js +3 -3
- package/dist/es/ResultCard.js +1 -1
- package/dist/es/ResultList.js +1 -1
- package/dist/es/SelectedFilters.js +1 -1
- package/dist/es/SingleDropdownList.js +3 -3
- package/dist/es/SingleList.js +2 -2
- package/dist/es/SingleRange.js +2 -2
- package/dist/es/ToggleButton.js +2 -2
- package/dist/es/index.js +8 -6
- package/dist/es/{install-0c7962bc.js → install-3c029475.js} +589 -20
- package/dist/es/install.js +7 -5
- package/dist/es/version.js +1 -1
- package/dist/es/{vueTypes-f1923c72.js → vueTypes-d64f04f8.js} +8 -0
- 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-
|
|
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
19
|
var index = require('./index-779ed366.js');
|
|
19
|
-
var ComponentWrapper = require('./ComponentWrapper-
|
|
20
|
+
var ComponentWrapper = require('./ComponentWrapper-0b9ffb1a.js');
|
|
20
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-
|
|
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,
|
|
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
|
|
1871
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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;
|