impact-chatbot 2.3.86 → 2.3.87
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.
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
declare const ChipsContent: ({ bodyText, props }: {
|
|
1
|
+
declare const ChipsContent: ({ bodyText, props, botData, isFormDisabled }: {
|
|
2
2
|
bodyText: any;
|
|
3
3
|
props: any;
|
|
4
|
+
botData: any;
|
|
5
|
+
isFormDisabled?: boolean;
|
|
4
6
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
5
7
|
export default ChipsContent;
|
package/dist/index.cjs.js
CHANGED
|
@@ -5150,17 +5150,26 @@ const TextContent = ({ bodyText, botData }) => {
|
|
|
5150
5150
|
return (jsxRuntime.jsx("div", { children: renderTextContent() }));
|
|
5151
5151
|
};
|
|
5152
5152
|
|
|
5153
|
-
const ChipsContent = ({ bodyText, props }) => {
|
|
5153
|
+
const ChipsContent = ({ bodyText, props, botData, isFormDisabled = false }) => {
|
|
5154
5154
|
const classes = useStyles$a();
|
|
5155
5155
|
const globalClasses = globalStyles();
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5156
|
+
// Suggested-question chips are one-shot: once the user has clicked one of them
|
|
5157
|
+
// or asked a new question the block disappears. isFormDisabled is true for
|
|
5158
|
+
// every bot message except the latest, so it flips exactly when the user
|
|
5159
|
+
// moves past these chips. Only chips that opt in via isQuestionsDisabled
|
|
5160
|
+
// behave this way; all other chips stay visible.
|
|
5161
|
+
if (botData?.isQuestionsDisabled && isFormDisabled) {
|
|
5162
|
+
return null;
|
|
5163
|
+
}
|
|
5164
|
+
const showHeaderTitle = !botData?.noShowHeaderTitle && Boolean(botData?.headerTitle?.length);
|
|
5165
|
+
return (jsxRuntime.jsxs(React.Fragment, { children: [showHeaderTitle && (jsxRuntime.jsx("div", { className: `${classes.chatbotText} ${classes.boldText} ${classes.combinedBlockHeaderTitle}`, children: botData.headerTitle })), jsxRuntime.jsx("div", { className: `${globalClasses.flexRow} ${globalClasses.flexWrap} ${globalClasses.gap} ${globalClasses.verticalAlignCenter}`, children: bodyText.map((data, index) => {
|
|
5166
|
+
const callBack = data.interactable && props
|
|
5167
|
+
? Object.entries(props).filter((entry) => entry[0] === data.actionName)?.[0]?.[1]
|
|
5168
|
+
: null;
|
|
5169
|
+
return (jsxRuntime.jsx(material.Typography, { component: "span", variant: "body1", className: `${classes.gptChips} ${data.interactable ? globalClasses.cursorPointer : ""}`, onClick: () => {
|
|
5170
|
+
callBack && callBack(data);
|
|
5171
|
+
}, children: data.displayText }, index));
|
|
5172
|
+
}) })] }));
|
|
5164
5173
|
};
|
|
5165
5174
|
|
|
5166
5175
|
/**
|
|
@@ -6157,7 +6166,8 @@ const TableContent = ({ bodyText }) => {
|
|
|
6157
6166
|
};
|
|
6158
6167
|
|
|
6159
6168
|
const GraphContent = ({ bodyText }) => {
|
|
6160
|
-
const { chartOptions } = bodyText || {};
|
|
6169
|
+
const { chartOptions, title } = bodyText || {};
|
|
6170
|
+
const classes = useStyles$a();
|
|
6161
6171
|
const chartRef = React.useRef(null);
|
|
6162
6172
|
const handleChartRef = (ref) => {
|
|
6163
6173
|
chartRef.current = ref;
|
|
@@ -6168,7 +6178,7 @@ const GraphContent = ({ bodyText }) => {
|
|
|
6168
6178
|
const options = {
|
|
6169
6179
|
...chartOptions,
|
|
6170
6180
|
};
|
|
6171
|
-
return (jsxRuntime.
|
|
6181
|
+
return (jsxRuntime.jsxs(material.Grid, { container: true, children: [Boolean(title?.length) && (jsxRuntime.jsx(material.Grid, { item: true, xs: 12, children: jsxRuntime.jsx("div", { className: `${classes.chatbotText} ${classes.boldText} ${classes.combinedBlockHeaderTitle}`, children: title }) })), jsxRuntime.jsx(material.Grid, { item: true, xs: 12, children: jsxRuntime.jsx(CoreChart, { options: options, handleChartRef: handleChartRef }) })] }));
|
|
6172
6182
|
};
|
|
6173
6183
|
|
|
6174
6184
|
const SelectableChips = ({ bodyText, chipType, props, utilityData }) => {
|
|
@@ -7556,7 +7566,6 @@ const STEP_FORM_TIMEOUT_KEY = "__stepFormTimedOut";
|
|
|
7556
7566
|
*/
|
|
7557
7567
|
const StepFormContent = ({ formData, messageIndex = 0, isFormDisabled = false, showSavedFilters = true, preSelectedFilters = null, botProps = null, currentMode = "", agentId = "", sessionId = "", }) => {
|
|
7558
7568
|
const dispatch = reactRedux.useDispatch();
|
|
7559
|
-
const classes = useStyles$a();
|
|
7560
7569
|
const savedFilterSets = reactRedux.useSelector((state) => state.smartBotReducer.savedFilterSets);
|
|
7561
7570
|
const persistedFormValues = reactRedux.useSelector((state) => state.smartBotReducer.persistedFormValues);
|
|
7562
7571
|
const chatbotContext = reactRedux.useSelector((state) => state.smartBotReducer.chatbotContext);
|
|
@@ -7829,13 +7838,13 @@ const StepFormContent = ({ formData, messageIndex = 0, isFormDisabled = false, s
|
|
|
7829
7838
|
case "text":
|
|
7830
7839
|
return jsxRuntime.jsx(TextContent, { bodyText: parsedData.bodyText, botData: parsedData }, key);
|
|
7831
7840
|
case "chips":
|
|
7832
|
-
return parsedData.isMultiSelect ? (jsxRuntime.jsx(SelectableChips, { bodyText: parsedData.bodyText, chipType: "selectable", utilityData: parsedData.utilityData, props: botProps }, key)) : (jsxRuntime.jsx(ChipsContent, { bodyText: parsedData.bodyText, props: botProps }, key));
|
|
7841
|
+
return parsedData.isMultiSelect ? (jsxRuntime.jsx(SelectableChips, { bodyText: parsedData.bodyText, chipType: "selectable", utilityData: parsedData.utilityData, props: botProps }, key)) : (jsxRuntime.jsx(ChipsContent, { bodyText: parsedData.bodyText, props: botProps, botData: parsedData, isFormDisabled: isFormDisabled }, key));
|
|
7833
7842
|
case "questions":
|
|
7834
7843
|
return jsxRuntime.jsx(QuestionsContent, { bodyText: parsedData.bodyText, props: botProps }, key);
|
|
7835
7844
|
case "html":
|
|
7836
7845
|
return jsxRuntime.jsx(HtmlContent, { bodyText: parsedData.bodyText }, key);
|
|
7837
7846
|
case "table":
|
|
7838
|
-
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, key);
|
|
7847
|
+
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, parsedData.bodyText?.table_name || key);
|
|
7839
7848
|
case "graph":
|
|
7840
7849
|
return jsxRuntime.jsx(GraphContent, { bodyText: parsedData.bodyText }, key);
|
|
7841
7850
|
case "slider":
|
|
@@ -7870,17 +7879,11 @@ const StepFormContent = ({ formData, messageIndex = 0, isFormDisabled = false, s
|
|
|
7870
7879
|
const body = renderItem(parsedData, index);
|
|
7871
7880
|
if (!body)
|
|
7872
7881
|
return;
|
|
7873
|
-
// Skip the block header when it is just a repeat of the label the widget
|
|
7874
|
-
// renders itself (parseResponse derives headerTitle from label for inputs).
|
|
7875
|
-
const showHeaderTitle = !parsedData?.noShowHeaderTitle &&
|
|
7876
|
-
Boolean(parsedData?.headerTitle?.length) &&
|
|
7877
|
-
parsedData.headerTitle !== parsedData?.bodyText?.label;
|
|
7878
|
-
const rendered = showHeaderTitle ? (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsx("div", { className: `${classes.chatbotText} ${classes.boldText} ${classes.combinedBlockHeaderTitle}`, children: parsedData.headerTitle }), body] }, `step-form-block-${index}`)) : (body);
|
|
7879
7882
|
if (parsedData.bodyType === "button") {
|
|
7880
|
-
buttonItems.push(
|
|
7883
|
+
buttonItems.push(body);
|
|
7881
7884
|
}
|
|
7882
7885
|
else {
|
|
7883
|
-
formFields.push(
|
|
7886
|
+
formFields.push(body);
|
|
7884
7887
|
}
|
|
7885
7888
|
}
|
|
7886
7889
|
catch (error) {
|
|
@@ -8390,7 +8393,10 @@ const renderWidgetItem = (item, index, isFormDisabled) => {
|
|
|
8390
8393
|
case "text":
|
|
8391
8394
|
return jsxRuntime.jsx(TextContent, { bodyText: parsedData.bodyText, botData: parsedData }, key);
|
|
8392
8395
|
case "table":
|
|
8393
|
-
|
|
8396
|
+
// Key on table_name so a different table never reuses a mounted grid.
|
|
8397
|
+
// ag-grid captures its fetch callback once at init, so a reused grid
|
|
8398
|
+
// would keep querying the previous table's table_name.
|
|
8399
|
+
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, parsedData.bodyText?.table_name || key);
|
|
8394
8400
|
case "graph":
|
|
8395
8401
|
return jsxRuntime.jsx(GraphContent, { bodyText: parsedData.bodyText }, key);
|
|
8396
8402
|
case "radio":
|
|
@@ -10339,7 +10345,6 @@ let instanceCounter = 0;
|
|
|
10339
10345
|
let activeTabularInstanceId = null;
|
|
10340
10346
|
const TabularContent = ({ steps: initialSteps, currentTabValue, children, questions: initialQuestions = [], questionsStepsMap: initialQuestionsStepsMap = {}, stepFormDataMap: initialStepFormDataMap = {}, isFormDisabled = false, sessionId: propSessionId = "", botProps = null, currentMode = "", agentId = "" }) => {
|
|
10341
10347
|
const dispatch = reactRedux.useDispatch();
|
|
10342
|
-
const chatClasses = useStyles$a();
|
|
10343
10348
|
const stepFormStreamData = reactRedux.useSelector((state) => state.smartBotReducer.stepFormStreamData);
|
|
10344
10349
|
const thinkingContext = reactRedux.useSelector((state) => state.smartBotReducer.thinkingContext);
|
|
10345
10350
|
const streamStartTimeRef = React.useRef(thinkingContext?.streamStartTime);
|
|
@@ -10428,13 +10433,13 @@ const TabularContent = ({ steps: initialSteps, currentTabValue, children, questi
|
|
|
10428
10433
|
case "text":
|
|
10429
10434
|
return jsxRuntime.jsx(TextContent, { bodyText: parsedData.bodyText, botData: parsedData }, key);
|
|
10430
10435
|
case "chips":
|
|
10431
|
-
return parsedData.isMultiSelect ? (jsxRuntime.jsx(SelectableChips, { bodyText: parsedData.bodyText, chipType: "selectable", utilityData: parsedData.utilityData, props: botProps }, key)) : (jsxRuntime.jsx(ChipsContent, { bodyText: parsedData.bodyText, props: botProps }, key));
|
|
10436
|
+
return parsedData.isMultiSelect ? (jsxRuntime.jsx(SelectableChips, { bodyText: parsedData.bodyText, chipType: "selectable", utilityData: parsedData.utilityData, props: botProps }, key)) : (jsxRuntime.jsx(ChipsContent, { bodyText: parsedData.bodyText, props: botProps, botData: parsedData, isFormDisabled: isFormDisabled }, key));
|
|
10432
10437
|
case "questions":
|
|
10433
10438
|
return jsxRuntime.jsx(QuestionsContent, { bodyText: parsedData.bodyText, props: botProps }, key);
|
|
10434
10439
|
case "image":
|
|
10435
10440
|
return jsxRuntime.jsx(ImageContent, { bodyText: parsedData.bodyText }, key);
|
|
10436
10441
|
case "table":
|
|
10437
|
-
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, key);
|
|
10442
|
+
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, parsedData.bodyText?.table_name || key);
|
|
10438
10443
|
case "graph":
|
|
10439
10444
|
return jsxRuntime.jsx(GraphContent, { bodyText: parsedData.bodyText }, key);
|
|
10440
10445
|
case "radio":
|
|
@@ -10465,13 +10470,7 @@ const TabularContent = ({ steps: initialSteps, currentTabValue, children, questi
|
|
|
10465
10470
|
if (!parsedData)
|
|
10466
10471
|
return null;
|
|
10467
10472
|
const key = `restream-widget-${index}`;
|
|
10468
|
-
|
|
10469
|
-
if (!body)
|
|
10470
|
-
return null;
|
|
10471
|
-
const showHeaderTitle = !parsedData?.noShowHeaderTitle && Boolean(parsedData?.headerTitle?.length);
|
|
10472
|
-
if (!showHeaderTitle)
|
|
10473
|
-
return body;
|
|
10474
|
-
return (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsx("div", { className: `${chatClasses.chatbotText} ${chatClasses.boldText} ${chatClasses.combinedBlockHeaderTitle}`, children: parsedData.headerTitle }), body] }, `restream-widget-block-${index}`));
|
|
10473
|
+
return renderWidgetBody(parsedData, key);
|
|
10475
10474
|
}
|
|
10476
10475
|
catch (e) {
|
|
10477
10476
|
console.error("[TabularContent] renderWidget error:", e);
|
|
@@ -10835,19 +10834,10 @@ const resetActiveTabularInstance = () => {
|
|
|
10835
10834
|
};
|
|
10836
10835
|
|
|
10837
10836
|
const CombinedContent = ({ botData, props }) => {
|
|
10838
|
-
const classes = useStyles$a();
|
|
10839
10837
|
const isFormDisabled = botData?.isFormDisabled || false;
|
|
10840
10838
|
const isTabEnabled = botData?.utilityData?.isTabEnabled;
|
|
10841
10839
|
// Get the array of content items from bodyText
|
|
10842
10840
|
const contentItems = Array.isArray(botData.bodyText) ? botData.bodyText : [];
|
|
10843
|
-
// Renders the optional block-level header title above a content item.
|
|
10844
|
-
const renderHeaderTitle = (parsedData) => {
|
|
10845
|
-
const showHeaderTitle = !parsedData?.noShowHeaderTitle &&
|
|
10846
|
-
Boolean(parsedData?.headerTitle?.length);
|
|
10847
|
-
if (!showHeaderTitle)
|
|
10848
|
-
return null;
|
|
10849
|
-
return (jsxRuntime.jsx("div", { className: `${classes.chatbotText} ${classes.boldText} ${classes.combinedBlockHeaderTitle}`, children: parsedData.headerTitle }));
|
|
10850
|
-
};
|
|
10851
10841
|
// Function to render individual content based on its type
|
|
10852
10842
|
const renderIndividualContent = (parsedData, index) => {
|
|
10853
10843
|
const key = `combined-content-${index}`;
|
|
@@ -10859,12 +10849,12 @@ const CombinedContent = ({ botData, props }) => {
|
|
|
10859
10849
|
return (jsxRuntime.jsx(SelectableChips, { bodyText: parsedData.bodyText, chipType: "selectable", utilityData: parsedData.utilityData, props: props }, key));
|
|
10860
10850
|
}
|
|
10861
10851
|
else {
|
|
10862
|
-
return jsxRuntime.jsx(ChipsContent, { bodyText: parsedData.bodyText, props: props }, key);
|
|
10852
|
+
return (jsxRuntime.jsx(ChipsContent, { bodyText: parsedData.bodyText, props: props, botData: parsedData, isFormDisabled: isFormDisabled }, key));
|
|
10863
10853
|
}
|
|
10864
10854
|
case "questions":
|
|
10865
10855
|
return jsxRuntime.jsx(QuestionsContent, { bodyText: parsedData.bodyText, props: props }, key);
|
|
10866
10856
|
case "table":
|
|
10867
|
-
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, key);
|
|
10857
|
+
return jsxRuntime.jsx(TableContent, { bodyText: parsedData.bodyText }, parsedData.bodyText?.table_name || key);
|
|
10868
10858
|
case "graph":
|
|
10869
10859
|
return jsxRuntime.jsx(GraphContent, { bodyText: parsedData.bodyText }, key);
|
|
10870
10860
|
case "slider":
|
|
@@ -10900,8 +10890,8 @@ const CombinedContent = ({ botData, props }) => {
|
|
|
10900
10890
|
if (!parsedData) {
|
|
10901
10891
|
return null;
|
|
10902
10892
|
}
|
|
10903
|
-
// Render the parsed content
|
|
10904
|
-
return
|
|
10893
|
+
// Render the parsed content
|
|
10894
|
+
return renderIndividualContent(parsedData, index);
|
|
10905
10895
|
}
|
|
10906
10896
|
catch (error) {
|
|
10907
10897
|
console.error(`Error parsing combined content item at index ${index}:`, error);
|