impact-chatbot 2.3.70 → 2.3.71
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/components/message-template/components/message-content/StepFormContent.d.ts +2 -1
- package/dist/components/message-template/components/message-content/utils/crossFilterAdapter.d.ts +3 -1
- package/dist/index.cjs.js +79 -24
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +79 -24
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* @param {Array} props.formData - Array of raw widget_data items from step_form chunk
|
|
8
8
|
* @param {number} props.messageIndex - Index for form state persistence keys
|
|
9
9
|
*/
|
|
10
|
-
declare const StepFormContent: ({ formData, messageIndex, isFormDisabled, showSavedFilters }: {
|
|
10
|
+
declare const StepFormContent: ({ formData, messageIndex, isFormDisabled, showSavedFilters, preSelectedFilters }: {
|
|
11
11
|
formData: any;
|
|
12
12
|
messageIndex?: number;
|
|
13
13
|
isFormDisabled?: boolean;
|
|
14
14
|
showSavedFilters?: boolean;
|
|
15
|
+
preSelectedFilters?: any;
|
|
15
16
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
/** Reset the timeout flag (call when a new conversation/message starts) */
|
|
17
18
|
export declare const resetStepFormTimeoutFlag: () => void;
|
package/dist/components/message-template/components/message-content/utils/crossFilterAdapter.d.ts
CHANGED
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
* @param {Array} existingSelections - Upstream filter selections
|
|
9
9
|
* Each item: { filterName, attributeName, values, checkAll }
|
|
10
10
|
* @param {Array} allFilters - Full array of all filter configs
|
|
11
|
+
* @param {Object|null} preSelectedFilters - Optional pre-selected filters from init response
|
|
12
|
+
* Format: { param_name: { values: [...], label, dimension, is_mandatory } }
|
|
11
13
|
* @returns {Promise<Array<{label, value}>>} - Formatted options
|
|
12
14
|
*/
|
|
13
|
-
export declare const fetchCrossFilterOptions: (filterConfig: any, existingSelections?: any[], allFilters?: any[]) => Promise<{
|
|
15
|
+
export declare const fetchCrossFilterOptions: (filterConfig: any, existingSelections?: any[], allFilters?: any[], preSelectedFilters?: any) => Promise<{
|
|
14
16
|
label: any;
|
|
15
17
|
value: string;
|
|
16
18
|
}[]>;
|
package/dist/index.cjs.js
CHANGED
|
@@ -6620,9 +6620,11 @@ const CrossFilterProvider = ({ filters, fetchOptionsFn, initialSelections = {},
|
|
|
6620
6620
|
* @param {Array} existingSelections - Upstream filter selections
|
|
6621
6621
|
* Each item: { filterName, attributeName, values, checkAll }
|
|
6622
6622
|
* @param {Array} allFilters - Full array of all filter configs
|
|
6623
|
+
* @param {Object|null} preSelectedFilters - Optional pre-selected filters from init response
|
|
6624
|
+
* Format: { param_name: { values: [...], label, dimension, is_mandatory } }
|
|
6623
6625
|
* @returns {Promise<Array<{label, value}>>} - Formatted options
|
|
6624
6626
|
*/
|
|
6625
|
-
const fetchCrossFilterOptions = async (filterConfig, existingSelections = [], allFilters = []) => {
|
|
6627
|
+
const fetchCrossFilterOptions = async (filterConfig, existingSelections = [], allFilters = [], preSelectedFilters = null) => {
|
|
6626
6628
|
try {
|
|
6627
6629
|
const attributeName = filterConfig.column_name ||
|
|
6628
6630
|
filterConfig.attribute_name ||
|
|
@@ -6655,6 +6657,39 @@ const fetchCrossFilterOptions = async (filterConfig, existingSelections = [], al
|
|
|
6655
6657
|
display_order: fullConfig?.display_order || fullConfig?.ordering || 0,
|
|
6656
6658
|
};
|
|
6657
6659
|
});
|
|
6660
|
+
// Build pre-selected filter entries from init response (if provided)
|
|
6661
|
+
// These are always included in the payload alongside user selections
|
|
6662
|
+
const preSelectedEntries = [];
|
|
6663
|
+
if (preSelectedFilters && typeof preSelectedFilters === "object") {
|
|
6664
|
+
Object.entries(preSelectedFilters).forEach(([key, config]) => {
|
|
6665
|
+
// Skip if this filter is the one we're fetching options for
|
|
6666
|
+
if (key === attributeName)
|
|
6667
|
+
return;
|
|
6668
|
+
// Skip if user has already selected values for this filter (user selection takes precedence)
|
|
6669
|
+
const userAlreadySelected = filtersArray.some((f) => f.attribute_name === key || f.filter_id === key);
|
|
6670
|
+
if (userAlreadySelected)
|
|
6671
|
+
return;
|
|
6672
|
+
const values = Array.isArray(config.values) ? config.values : [];
|
|
6673
|
+
if (values.length === 0)
|
|
6674
|
+
return;
|
|
6675
|
+
preSelectedEntries.push({
|
|
6676
|
+
filter_name: config.label || key,
|
|
6677
|
+
filter_id: key,
|
|
6678
|
+
filter_type: "cascaded",
|
|
6679
|
+
dimension: config.dimension || dimension,
|
|
6680
|
+
display_type: "dropdown",
|
|
6681
|
+
check_configuration: [],
|
|
6682
|
+
is_mandatory: config.is_mandatory || false,
|
|
6683
|
+
extra: {},
|
|
6684
|
+
values: values,
|
|
6685
|
+
attribute_name: key,
|
|
6686
|
+
operator: "in",
|
|
6687
|
+
display_order: 0,
|
|
6688
|
+
});
|
|
6689
|
+
});
|
|
6690
|
+
}
|
|
6691
|
+
// Merge: pre-selected filters first, then user selections
|
|
6692
|
+
const combinedFilters = [...preSelectedEntries, ...filtersArray];
|
|
6658
6693
|
const payload = {
|
|
6659
6694
|
attributes: [
|
|
6660
6695
|
{
|
|
@@ -6664,7 +6699,7 @@ const fetchCrossFilterOptions = async (filterConfig, existingSelections = [], al
|
|
|
6664
6699
|
},
|
|
6665
6700
|
],
|
|
6666
6701
|
filter_type: "cascaded",
|
|
6667
|
-
filters:
|
|
6702
|
+
filters: combinedFilters,
|
|
6668
6703
|
is_urm_filter: true,
|
|
6669
6704
|
screen_name: "Chatbot",
|
|
6670
6705
|
application_code: 1,
|
|
@@ -6779,11 +6814,15 @@ const SelectContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
|
6779
6814
|
const [currentOptions, setCurrentOptions] = React.useState([]);
|
|
6780
6815
|
const persistedFormValues = reactRedux.useSelector((state) => state.smartBotReducer.persistedFormValues);
|
|
6781
6816
|
const [currentSelectedOptions, setCurrentSelectedOptions] = React.useState(persistedFormValues?.[formKey] || []);
|
|
6782
|
-
const
|
|
6817
|
+
const selectAllKey = `${formKey}__selectAllCount`;
|
|
6818
|
+
const [isAllSelected, setIsAllSelected] = React.useState(() => {
|
|
6819
|
+
return (persistedFormValues?.[selectAllKey] || 0) > 0;
|
|
6820
|
+
});
|
|
6783
6821
|
const [initialOptions, setInitialOptions] = React.useState([]);
|
|
6784
6822
|
const allOptionsRef = React.useRef([]);
|
|
6785
6823
|
const isSearchActiveRef = React.useRef(false);
|
|
6786
6824
|
const searchTermRef = React.useRef("");
|
|
6825
|
+
const selectAllCountRef = React.useRef(persistedFormValues?.[selectAllKey] || 0);
|
|
6787
6826
|
const chatbotContext = reactRedux.useSelector((state) => state.smartBotReducer.chatbotContext);
|
|
6788
6827
|
const heirarchyKeyValuePairs = reactRedux.useSelector((state) => state.smartBotReducer.heirarchyKeyValuePairs);
|
|
6789
6828
|
const dispatch = reactRedux.useDispatch();
|
|
@@ -6924,16 +6963,16 @@ const SelectContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
|
6924
6963
|
updated: true,
|
|
6925
6964
|
},
|
|
6926
6965
|
}));
|
|
6927
|
-
dispatch(smartBotActions.setPersistedFormValues({ [formKey]: [] }));
|
|
6966
|
+
dispatch(smartBotActions.setPersistedFormValues({ [formKey]: [], [selectAllKey]: 0 }));
|
|
6928
6967
|
// Notify cross-filter context to clear downstream filters
|
|
6929
6968
|
if (isCascading) {
|
|
6930
6969
|
crossFilterCtx.onFilterChange(paramName, []);
|
|
6931
6970
|
}
|
|
6932
6971
|
}, handleChange: (selected) => onChange(selected), isCloseWhenClickOutside: true, setIsOpen: (open) => {
|
|
6933
6972
|
setIsOpen(open);
|
|
6934
|
-
// When dropdown closes after a filtered select-all on a subset,
|
|
6935
|
-
// reset the isAllSelected flag
|
|
6936
|
-
if (!open && isAllSelected &&
|
|
6973
|
+
// When dropdown closes after a search-filtered select-all on a subset,
|
|
6974
|
+
// reset the isAllSelected flag since only a subset was selected
|
|
6975
|
+
if (!open && isAllSelected && isSearchActiveRef.current) {
|
|
6937
6976
|
setIsAllSelected(false);
|
|
6938
6977
|
}
|
|
6939
6978
|
if (isCascading) {
|
|
@@ -6973,6 +7012,8 @@ const SelectContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
|
6973
7012
|
const nextOptions = [...currentOptions, ...newBatch];
|
|
6974
7013
|
setCurrentOptions(nextOptions);
|
|
6975
7014
|
setInitialOptions(nextOptions);
|
|
7015
|
+
// When all are selected, mark newly loaded items as selected too
|
|
7016
|
+
// so they render with checkmarks in the dropdown
|
|
6976
7017
|
if (isAllSelected) {
|
|
6977
7018
|
setCurrentSelectedOptions(nextOptions);
|
|
6978
7019
|
}
|
|
@@ -6981,17 +7022,20 @@ const SelectContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
|
6981
7022
|
if (e && e.target.checked) {
|
|
6982
7023
|
// When search is active, select only the filtered/visible options
|
|
6983
7024
|
// When no search is active, select ALL options from the full dataset
|
|
6984
|
-
|
|
7025
|
+
// but only render the currently visible chunk to avoid 100k+ DOM nodes
|
|
6985
7026
|
let valuesToDispatch;
|
|
6986
7027
|
if (isSearchActiveRef.current) {
|
|
6987
|
-
|
|
7028
|
+
// Search-filtered select all: only select the visible filtered options
|
|
6988
7029
|
valuesToDispatch = currentOptions.map((opt) => opt.value);
|
|
7030
|
+
setCurrentSelectedOptions([...currentOptions]);
|
|
7031
|
+
selectAllCountRef.current = currentOptions.length;
|
|
6989
7032
|
}
|
|
6990
7033
|
else {
|
|
6991
|
-
|
|
7034
|
+
// Full select all: select all options but only render the visible chunk
|
|
6992
7035
|
valuesToDispatch = allOptionsRef.current.map((opt) => opt.value);
|
|
7036
|
+
setCurrentSelectedOptions([...currentOptions]);
|
|
7037
|
+
selectAllCountRef.current = allOptionsRef.current.length;
|
|
6993
7038
|
}
|
|
6994
|
-
setCurrentSelectedOptions(optionsToSelect);
|
|
6995
7039
|
setIsAllSelected(true);
|
|
6996
7040
|
dispatch(smartBotActions.setChatbotContext({
|
|
6997
7041
|
...chatbotContext,
|
|
@@ -7001,7 +7045,11 @@ const SelectContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
|
7001
7045
|
updated: true,
|
|
7002
7046
|
},
|
|
7003
7047
|
}));
|
|
7004
|
-
|
|
7048
|
+
// Persist only the currently visible options (not all 100k+) to avoid Redux memory bloat
|
|
7049
|
+
dispatch(smartBotActions.setPersistedFormValues({
|
|
7050
|
+
[formKey]: [...currentOptions],
|
|
7051
|
+
[selectAllKey]: selectAllCountRef.current,
|
|
7052
|
+
}));
|
|
7005
7053
|
// Notify cross-filter context if cascading is active
|
|
7006
7054
|
if (isCascading) {
|
|
7007
7055
|
crossFilterCtx.onFilterChange(paramName, valuesToDispatch);
|
|
@@ -7018,15 +7066,17 @@ const SelectContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
|
7018
7066
|
updated: true,
|
|
7019
7067
|
},
|
|
7020
7068
|
}));
|
|
7021
|
-
dispatch(smartBotActions.setPersistedFormValues({ [formKey]: [] }));
|
|
7069
|
+
dispatch(smartBotActions.setPersistedFormValues({ [formKey]: [], [selectAllKey]: 0 }));
|
|
7022
7070
|
// Notify cross-filter context of deselection
|
|
7023
7071
|
if (isCascading) {
|
|
7024
7072
|
crossFilterCtx.onFilterChange(paramName, []);
|
|
7025
7073
|
}
|
|
7026
7074
|
}
|
|
7027
|
-
}, customPlaceholderAfterSelect:
|
|
7028
|
-
?
|
|
7029
|
-
:
|
|
7075
|
+
}, customPlaceholderAfterSelect: isAllSelected
|
|
7076
|
+
? selectAllCountRef.current
|
|
7077
|
+
: currentSelectedOptions.length > 0
|
|
7078
|
+
? currentSelectedOptions.length
|
|
7079
|
+
: null }) }));
|
|
7030
7080
|
};
|
|
7031
7081
|
|
|
7032
7082
|
const DatePickerContent = ({ bodyText, isFormDisabled = false, messageIndex }) => {
|
|
@@ -7242,7 +7292,7 @@ const STEP_FORM_TIMEOUT_KEY = "__stepFormTimedOut";
|
|
|
7242
7292
|
* @param {Array} props.formData - Array of raw widget_data items from step_form chunk
|
|
7243
7293
|
* @param {number} props.messageIndex - Index for form state persistence keys
|
|
7244
7294
|
*/
|
|
7245
|
-
const StepFormContent = ({ formData, messageIndex = 0, isFormDisabled = false, showSavedFilters = true }) => {
|
|
7295
|
+
const StepFormContent = ({ formData, messageIndex = 0, isFormDisabled = false, showSavedFilters = true, preSelectedFilters = null }) => {
|
|
7246
7296
|
const dispatch = reactRedux.useDispatch();
|
|
7247
7297
|
const savedFilterSets = reactRedux.useSelector((state) => state.smartBotReducer.savedFilterSets);
|
|
7248
7298
|
const persistedFormValues = reactRedux.useSelector((state) => state.smartBotReducer.persistedFormValues);
|
|
@@ -7559,7 +7609,7 @@ const StepFormContent = ({ formData, messageIndex = 0, isFormDisabled = false, s
|
|
|
7559
7609
|
return null;
|
|
7560
7610
|
return (jsxRuntime.jsxs("div", { className: "step-form-content", children: [showSavedFilters && filterSetOptions.length > 0 && (jsxRuntime.jsx("div", { style: { width: "100%", marginTop: "10px" }, children: jsxRuntime.jsx(impactUiV3.Select, { currentOptions: filterSetCurrentOptions, setCurrentOptions: setFilterSetCurrentOptions, label: "Saved Filter Sets", labelOrientation: "top", isRequired: false, isDisabled: savedFilterDisabled, handleChange: (selected) => onFilterSetChange(selected), isCloseWhenClickOutside: true, setIsOpen: setIsFilterSetOpen, isOpen: isFilterSetOpen, selectedOptions: selectedFilterSet, setSelectedOptions: setSelectedFilterSet, initialOptions: filterSetOptions, isMulti: false, isClearable: true }) })), showSavedFilters && filterSetOptions.length > 0 && (jsxRuntime.jsx("hr", { style: { border: "none", borderTop: "1px solid #E0E0E0", margin: "12px 0" } })), jsxRuntime.jsx("div", { style: {
|
|
7561
7611
|
...(isFilterSelected && !isFormDisabled ? { pointerEvents: "none", opacity: 0.5 } : {}),
|
|
7562
|
-
}, children: crossFilterConfigs.length
|
|
7612
|
+
}, children: crossFilterConfigs.length >= 1 ? (jsxRuntime.jsx(CrossFilterProvider, { filters: crossFilterConfigs, fetchOptionsFn: (filterConfig, existingSelections, allFilters) => fetchCrossFilterOptions(filterConfig, existingSelections, allFilters, preSelectedFilters), initialSelections: crossFilterInitialSelections, fetchOnMount: false, children: formFields })) : (formFields) }), buttonItems] }));
|
|
7563
7613
|
};
|
|
7564
7614
|
/** Reset the timeout flag (call when a new conversation/message starts) */
|
|
7565
7615
|
const resetStepFormTimeoutFlag = () => {
|
|
@@ -7835,7 +7885,7 @@ const getQuestionStatus$1 = (questionSteps) => {
|
|
|
7835
7885
|
/**
|
|
7836
7886
|
* Renders a single progress bar item (main point + sub-items)
|
|
7837
7887
|
*/
|
|
7838
|
-
const ProgressBarItem$1 = ({ question, questionSteps, isLast, classes, formData, showSavedFilters = true, isFormDisabled, onAllSubItemsAnimated = undefined }) => {
|
|
7888
|
+
const ProgressBarItem$1 = ({ question, questionSteps, isLast, classes, formData, showSavedFilters = true, preSelectedFilters = null, isFormDisabled, onAllSubItemsAnimated = undefined }) => {
|
|
7839
7889
|
const status = getQuestionStatus$1(questionSteps);
|
|
7840
7890
|
const animatedCountRef = React.useRef(0);
|
|
7841
7891
|
const [isExpanded, setIsExpanded] = React.useState(true);
|
|
@@ -7868,7 +7918,7 @@ const ProgressBarItem$1 = ({ question, questionSteps, isLast, classes, formData,
|
|
|
7868
7918
|
if (animatedCountRef.current >= arr.length && onAllSubItemsAnimated) {
|
|
7869
7919
|
onAllSubItemsAnimated();
|
|
7870
7920
|
}
|
|
7871
|
-
} }) }, idx))) })), formData && isExpanded && (jsxRuntime.jsx("div", { className: classes.stepFormContainer, children: jsxRuntime.jsx(StepFormContent, { formData: formData, isFormDisabled: isFormDisabled, showSavedFilters: showSavedFilters }) }))] })] }));
|
|
7921
|
+
} }) }, idx))) })), formData && isExpanded && (jsxRuntime.jsx("div", { className: classes.stepFormContainer, children: jsxRuntime.jsx(StepFormContent, { formData: formData, isFormDisabled: isFormDisabled, showSavedFilters: showSavedFilters, preSelectedFilters: preSelectedFilters }) }))] })] }));
|
|
7872
7922
|
};
|
|
7873
7923
|
const Steps$1 = ({ steps, setSteps, done, setTabValue, setDone, finalStepDone, setFinalStepDone, stepChange, currentMode, questions = [], questionsStepsMap = {}, stepFormDataMap = {}, isFormDisabled = false, }) => {
|
|
7874
7924
|
const classes = useStyles$4();
|
|
@@ -7951,8 +8001,9 @@ const Steps$1 = ({ steps, setSteps, done, setTabValue, setDone, finalStepDone, s
|
|
|
7951
8001
|
const formEntry = stepFormDataMap[question] || null;
|
|
7952
8002
|
const formData = formEntry ? (Array.isArray(formEntry) ? formEntry : formEntry.widgets) : null;
|
|
7953
8003
|
const showSavedFilters = formEntry && !Array.isArray(formEntry) ? formEntry.showSavedFilters : true;
|
|
8004
|
+
const preSelectedFilters = formEntry && !Array.isArray(formEntry) ? formEntry.preSelectedFilters : null;
|
|
7954
8005
|
const isLast = index === questions.length - 1;
|
|
7955
|
-
return (jsxRuntime.jsx(ProgressBarItem$1, { question: question, questionSteps: questionSteps, isLast: isLast && !showThinking, classes: classes, formData: formData, isFormDisabled: isFormDisabled, showSavedFilters: showSavedFilters, onAllSubItemsAnimated: isLast && lastQuestionCompleted && !done
|
|
8006
|
+
return (jsxRuntime.jsx(ProgressBarItem$1, { question: question, questionSteps: questionSteps, isLast: isLast && !showThinking, classes: classes, formData: formData, isFormDisabled: isFormDisabled, showSavedFilters: showSavedFilters, preSelectedFilters: preSelectedFilters, onAllSubItemsAnimated: isLast && lastQuestionCompleted && !done
|
|
7956
8007
|
? () => setShowThinking(true)
|
|
7957
8008
|
: undefined }, index));
|
|
7958
8009
|
}), showThinking && !done && (jsxRuntime.jsx("div", { style: {
|
|
@@ -8770,6 +8821,7 @@ const StreamedContent = ({ botData }) => {
|
|
|
8770
8821
|
stepFormDataMapRef.current[currentIntent] = {
|
|
8771
8822
|
widgets: [...formWidgetData, stepFormSubmitButton],
|
|
8772
8823
|
showSavedFilters: data.show_saved_filters !== false,
|
|
8824
|
+
preSelectedFilters: data.pre_selected_filters || null,
|
|
8773
8825
|
};
|
|
8774
8826
|
setStepFormDataMap({ ...stepFormDataMapRef.current });
|
|
8775
8827
|
}
|
|
@@ -9708,7 +9760,7 @@ const getQuestionStatus = (questionSteps) => {
|
|
|
9708
9760
|
/**
|
|
9709
9761
|
* Renders a single progress bar item (main point + sub-items)
|
|
9710
9762
|
*/
|
|
9711
|
-
const ProgressBarItem = ({ question, questionSteps, isLast, classes, formData, isFormDisabled, isRestreaming = false, showSavedFilters = true }) => {
|
|
9763
|
+
const ProgressBarItem = ({ question, questionSteps, isLast, classes, formData, isFormDisabled, isRestreaming = false, showSavedFilters = true, preSelectedFilters = null }) => {
|
|
9712
9764
|
const baseStatus = getQuestionStatus(questionSteps);
|
|
9713
9765
|
// When restreaming and this is the last item, show as in-progress
|
|
9714
9766
|
const status = (isRestreaming && isLast) ? "in-progress" : baseStatus;
|
|
@@ -9737,7 +9789,7 @@ const ProgressBarItem = ({ question, questionSteps, isLast, classes, formData, i
|
|
|
9737
9789
|
setIsExpanded(true);
|
|
9738
9790
|
}
|
|
9739
9791
|
}, [status, formData]);
|
|
9740
|
-
return (jsxRuntime.jsxs("div", { className: classes.progressItem, children: [jsxRuntime.jsxs("div", { className: classes.progressTrack, children: [jsxRuntime.jsx("div", { className: `${classes.progressDot} ${dotClass}` }), !isLast && jsxRuntime.jsx("div", { className: `${classes.progressLine} ${lineClass}` })] }), jsxRuntime.jsxs("div", { className: classes.progressContent, children: [jsxRuntime.jsxs("div", { className: classes.progressHeader, onClick: handleToggle, children: [jsxRuntime.jsx("span", { className: `${classes.progressHeaderText} ${textClass}`, children: question }), hasSubItems && (jsxRuntime.jsx(ChevronRightIcon$1, { className: `${classes.progressChevron} ${textClass} ${isExpanded ? "expanded" : ""}` }))] }), hasSubItems && isExpanded && status === "in-progress" && (jsxRuntime.jsxs("div", { className: classes.reasoningLabel, children: [jsxRuntime.jsx(SvgReasoningIcon, {}), "Reasoning..."] })), hasSubItems && isExpanded && (jsxRuntime.jsx("div", { className: classes.progressSubItems, style: { maxHeight: isExpanded ? "500px" : "0", opacity: isExpanded ? 1 : 0 }, children: questionSteps.map((step, idx) => (jsxRuntime.jsxs("div", { className: classes.progressSubItem, children: [step.header, step.sub_header ? ` - ${step.sub_header}` : ""] }, idx))) })), formData && isExpanded && (jsxRuntime.jsx("div", { className: classes.stepFormContainer, children: jsxRuntime.jsx(StepFormContent, { formData: formData, isFormDisabled: isFormDisabled, showSavedFilters: showSavedFilters }) }))] })] }));
|
|
9792
|
+
return (jsxRuntime.jsxs("div", { className: classes.progressItem, children: [jsxRuntime.jsxs("div", { className: classes.progressTrack, children: [jsxRuntime.jsx("div", { className: `${classes.progressDot} ${dotClass}` }), !isLast && jsxRuntime.jsx("div", { className: `${classes.progressLine} ${lineClass}` })] }), jsxRuntime.jsxs("div", { className: classes.progressContent, children: [jsxRuntime.jsxs("div", { className: classes.progressHeader, onClick: handleToggle, children: [jsxRuntime.jsx("span", { className: `${classes.progressHeaderText} ${textClass}`, children: question }), hasSubItems && (jsxRuntime.jsx(ChevronRightIcon$1, { className: `${classes.progressChevron} ${textClass} ${isExpanded ? "expanded" : ""}` }))] }), hasSubItems && isExpanded && status === "in-progress" && (jsxRuntime.jsxs("div", { className: classes.reasoningLabel, children: [jsxRuntime.jsx(SvgReasoningIcon, {}), "Reasoning..."] })), hasSubItems && isExpanded && (jsxRuntime.jsx("div", { className: classes.progressSubItems, style: { maxHeight: isExpanded ? "500px" : "0", opacity: isExpanded ? 1 : 0 }, children: questionSteps.map((step, idx) => (jsxRuntime.jsxs("div", { className: classes.progressSubItem, children: [step.header, step.sub_header ? ` - ${step.sub_header}` : ""] }, idx))) })), formData && isExpanded && (jsxRuntime.jsx("div", { className: classes.stepFormContainer, children: jsxRuntime.jsx(StepFormContent, { formData: formData, isFormDisabled: isFormDisabled, showSavedFilters: showSavedFilters, preSelectedFilters: preSelectedFilters }) }))] })] }));
|
|
9741
9793
|
};
|
|
9742
9794
|
const Steps = ({ steps, questions = [], questionsStepsMap = {}, stepFormDataMap = {}, isFormDisabled = false, activeFormIntent = null, isRestreaming = false }) => {
|
|
9743
9795
|
const classes = useStyles$3();
|
|
@@ -9763,11 +9815,12 @@ const Steps = ({ steps, questions = [], questionsStepsMap = {}, stepFormDataMap
|
|
|
9763
9815
|
// Support both old array format and new object format { widgets, showSavedFilters }
|
|
9764
9816
|
const formData = formEntry ? (Array.isArray(formEntry) ? formEntry : formEntry.widgets) : null;
|
|
9765
9817
|
const showSavedFilters = formEntry && !Array.isArray(formEntry) ? formEntry.showSavedFilters : true;
|
|
9818
|
+
const preSelectedFilters = formEntry && !Array.isArray(formEntry) ? formEntry.preSelectedFilters : null;
|
|
9766
9819
|
// If activeFormIntent is set, only the matching form is enabled; all others stay disabled
|
|
9767
9820
|
const formDisabledForThis = activeFormIntent
|
|
9768
9821
|
? question !== activeFormIntent
|
|
9769
9822
|
: isFormDisabled;
|
|
9770
|
-
return (jsxRuntime.jsx(ProgressBarItem, { question: question, questionSteps: questionSteps, isLast: index === questions.length - 1, classes: classes, formData: formData, isFormDisabled: formDisabledForThis, isRestreaming: isRestreaming, showSavedFilters: showSavedFilters }, index));
|
|
9823
|
+
return (jsxRuntime.jsx(ProgressBarItem, { question: question, questionSteps: questionSteps, isLast: index === questions.length - 1, classes: classes, formData: formData, isFormDisabled: formDisabledForThis, isRestreaming: isRestreaming, showSavedFilters: showSavedFilters, preSelectedFilters: preSelectedFilters }, index));
|
|
9771
9824
|
}) }));
|
|
9772
9825
|
};
|
|
9773
9826
|
|
|
@@ -10026,6 +10079,7 @@ const TabularContent = ({ steps: initialSteps, currentTabValue, children, questi
|
|
|
10026
10079
|
newStepFormDataMap[currentIntent] = {
|
|
10027
10080
|
widgets: [...formWidgetData, submitButton],
|
|
10028
10081
|
showSavedFilters: data.show_saved_filters !== false,
|
|
10082
|
+
preSelectedFilters: data.pre_selected_filters || null,
|
|
10029
10083
|
};
|
|
10030
10084
|
}
|
|
10031
10085
|
}
|
|
@@ -10152,6 +10206,7 @@ const TabularContent = ({ steps: initialSteps, currentTabValue, children, questi
|
|
|
10152
10206
|
newStepFormDataMap[currentIntent] = {
|
|
10153
10207
|
widgets: [...formWidgetData, submitButton],
|
|
10154
10208
|
showSavedFilters: data.show_saved_filters !== false,
|
|
10209
|
+
preSelectedFilters: data.pre_selected_filters || null,
|
|
10155
10210
|
};
|
|
10156
10211
|
}
|
|
10157
10212
|
}
|