@sparrowengg/integrations-templates-frontend 6.0.7 → 7.0.0-bulkify.3
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/README.md +663 -0
- package/dist/cjs/cascader-dropdown/cascader-dropdown-provider.js +17 -1
- package/dist/cjs/cascader-dropdown/cascader-dropdown-provider.js.map +1 -1
- package/dist/cjs/cascader-dropdown/cascader-dropdown.js +5 -1
- package/dist/cjs/cascader-dropdown/cascader-dropdown.js.map +1 -1
- package/dist/cjs/dynamic-mapping/components/mapping.js +4 -2
- package/dist/cjs/dynamic-mapping/components/mapping.js.map +1 -1
- package/dist/cjs/dynamic-mapping/constants/condition-operators.js +1 -0
- package/dist/cjs/dynamic-mapping/constants/condition-operators.js.map +1 -1
- package/dist/cjs/dynamic-mapping/helpers/mapping.helpers.js +10 -0
- package/dist/cjs/dynamic-mapping/helpers/mapping.helpers.js.map +1 -1
- package/dist/cjs/dynamic-mapping/hooks/use-mapping-data.js +44 -29
- package/dist/cjs/dynamic-mapping/hooks/use-mapping-data.js.map +1 -1
- package/dist/cjs/dynamic-mapping/index.js +4 -2
- package/dist/cjs/dynamic-mapping/index.js.map +1 -1
- package/dist/cjs/filter/filter-pill.js +19 -9
- package/dist/cjs/filter/filter-pill.js.map +1 -1
- package/dist/es/cascader-dropdown/cascader-dropdown-provider.js +18 -2
- package/dist/es/cascader-dropdown/cascader-dropdown-provider.js.map +1 -1
- package/dist/es/cascader-dropdown/cascader-dropdown.js +5 -1
- package/dist/es/cascader-dropdown/cascader-dropdown.js.map +1 -1
- package/dist/es/dynamic-mapping/components/mapping.js +4 -2
- package/dist/es/dynamic-mapping/components/mapping.js.map +1 -1
- package/dist/es/dynamic-mapping/constants/condition-operators.js +1 -0
- package/dist/es/dynamic-mapping/constants/condition-operators.js.map +1 -1
- package/dist/es/dynamic-mapping/helpers/mapping.helpers.js +10 -1
- package/dist/es/dynamic-mapping/helpers/mapping.helpers.js.map +1 -1
- package/dist/es/dynamic-mapping/hooks/use-mapping-data.js +36 -21
- package/dist/es/dynamic-mapping/hooks/use-mapping-data.js.map +1 -1
- package/dist/es/dynamic-mapping/index.js +4 -2
- package/dist/es/dynamic-mapping/index.js.map +1 -1
- package/dist/es/filter/filter-pill.js +20 -10
- package/dist/es/filter/filter-pill.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('../../mapping/services/index.js');
|
|
5
|
-
var index
|
|
4
|
+
var index$1 = require('../../mapping/services/index.js');
|
|
5
|
+
var index = require('../../commons/constants/index.js');
|
|
6
6
|
require('../../node_modules/dayjs/dayjs.min.js');
|
|
7
7
|
var mapping_helpers = require('../helpers/mapping.helpers.js');
|
|
8
8
|
|
|
@@ -27,7 +27,7 @@ var __spreadValues = (a, b) => {
|
|
|
27
27
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
28
28
|
const useMappingData = ({
|
|
29
29
|
surveyId,
|
|
30
|
-
apiURL = index
|
|
30
|
+
apiURL = index.surveySparrowURL,
|
|
31
31
|
token,
|
|
32
32
|
surveyProperties,
|
|
33
33
|
importResponse,
|
|
@@ -35,9 +35,15 @@ const useMappingData = ({
|
|
|
35
35
|
setIsInitialLoad,
|
|
36
36
|
setOriginalMappingData,
|
|
37
37
|
ssMappingData: externalSsMappingData,
|
|
38
|
-
setSSMappingData: externalSetSSMappingData
|
|
38
|
+
setSSMappingData: externalSetSSMappingData,
|
|
39
|
+
hasResponsePDF
|
|
39
40
|
}) => {
|
|
40
41
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
42
|
+
const omitResponsePdf = hasResponsePDF !== true;
|
|
43
|
+
const baseMappingPropertyValues = React.useMemo(
|
|
44
|
+
() => omitResponsePdf ? index.mappingPropertyValues.filter((p) => p.id !== "RESPONSE_PDF") : index.mappingPropertyValues,
|
|
45
|
+
[omitResponsePdf]
|
|
46
|
+
);
|
|
41
47
|
const [loader, setLoader] = React.useState(true);
|
|
42
48
|
const [searchInput, setSearchInput] = React.useState("");
|
|
43
49
|
const [isApiData, setIsApiData] = React.useState(false);
|
|
@@ -67,27 +73,27 @@ const useMappingData = ({
|
|
|
67
73
|
[]
|
|
68
74
|
);
|
|
69
75
|
const fetchInitialMappingData = React.useCallback(async () => {
|
|
70
|
-
var _a2;
|
|
71
76
|
setLoader(true);
|
|
72
77
|
try {
|
|
73
78
|
if (surveyProperties) {
|
|
74
79
|
setIsApiData(false);
|
|
75
80
|
const { questions, variables, contactProperties, expressions, property, derivedQuestions } = surveyProperties;
|
|
81
|
+
const propertyForMapping = mapping_helpers.stripResponsePdfProperty(property, omitResponsePdf);
|
|
76
82
|
setSSMappingData({
|
|
77
83
|
questions: (questions == null ? void 0 : questions.length) ? modifiedMappingData(questions, "Select all Questions") : [],
|
|
78
84
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? modifiedMappingData(contactProperties, "Select all Contact Properties") : [],
|
|
79
85
|
variables: (variables == null ? void 0 : variables.length) ? modifiedMappingData(variables, "Select all Variables") : [],
|
|
80
86
|
expressions: (expressions == null ? void 0 : expressions.length) ? modifiedMappingData(expressions, "Select all Expressions") : [],
|
|
81
|
-
property: (
|
|
87
|
+
property: (propertyForMapping == null ? void 0 : propertyForMapping.length) ? modifiedMappingData(propertyForMapping, "Select all Properties") : [],
|
|
82
88
|
derivedQuestions: (derivedQuestions == null ? void 0 : derivedQuestions.length) ? modifiedMappingData(derivedQuestions, "Select all Enrich") : []
|
|
83
89
|
});
|
|
84
90
|
} else {
|
|
85
91
|
setIsApiData(true);
|
|
86
92
|
const [questions, variables, contactProperties, expressions] = await Promise.all([
|
|
87
|
-
index.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
88
|
-
index.fetchSurveyVariables(apiURL, surveyId, token),
|
|
89
|
-
index.fetchContactProperties(apiURL, token),
|
|
90
|
-
index.fetchSurveyExpression(apiURL, surveyId, token)
|
|
93
|
+
index$1.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
94
|
+
index$1.fetchSurveyVariables(apiURL, surveyId, token),
|
|
95
|
+
index$1.fetchContactProperties(apiURL, token),
|
|
96
|
+
index$1.fetchSurveyExpression(apiURL, surveyId, token)
|
|
91
97
|
]);
|
|
92
98
|
const organizedQuestions = mapping_helpers.organizeQuestionsWithHierarchy(questions || []);
|
|
93
99
|
setSSMappingData({
|
|
@@ -95,7 +101,7 @@ const useMappingData = ({
|
|
|
95
101
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? modifiedMappingData(contactProperties, "Select all Contact Properties") : [],
|
|
96
102
|
variables: (variables == null ? void 0 : variables.length) ? modifiedMappingData(variables, "Select all Variables") : [],
|
|
97
103
|
expressions: (expressions == null ? void 0 : expressions.length) ? modifiedMappingData(expressions, "Select all Expressions") : [],
|
|
98
|
-
property: (
|
|
104
|
+
property: (baseMappingPropertyValues == null ? void 0 : baseMappingPropertyValues.length) ? modifiedMappingData(baseMappingPropertyValues, "Select all Properties") : [],
|
|
99
105
|
derivedQuestions: []
|
|
100
106
|
});
|
|
101
107
|
}
|
|
@@ -104,16 +110,16 @@ const useMappingData = ({
|
|
|
104
110
|
} finally {
|
|
105
111
|
setLoader(false);
|
|
106
112
|
}
|
|
107
|
-
}, [surveyId, apiURL, token, surveyProperties, modifiedMappingData]);
|
|
113
|
+
}, [surveyId, apiURL, token, surveyProperties, modifiedMappingData, omitResponsePdf, baseMappingPropertyValues]);
|
|
108
114
|
const fetchAndMergeEditData = React.useCallback(async () => {
|
|
109
|
-
var _a2;
|
|
115
|
+
var _a2, _b2;
|
|
110
116
|
setLoader(true);
|
|
111
117
|
try {
|
|
112
118
|
const [questions, variables, contactProperties, expressions] = await Promise.all([
|
|
113
|
-
index.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
114
|
-
index.fetchSurveyVariables(apiURL, surveyId, token),
|
|
115
|
-
index.fetchContactProperties(apiURL, token),
|
|
116
|
-
index.fetchSurveyExpression(apiURL, surveyId, token)
|
|
119
|
+
index$1.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
120
|
+
index$1.fetchSurveyVariables(apiURL, surveyId, token),
|
|
121
|
+
index$1.fetchContactProperties(apiURL, token),
|
|
122
|
+
index$1.fetchSurveyExpression(apiURL, surveyId, token)
|
|
117
123
|
]);
|
|
118
124
|
const organizedQuestions = mapping_helpers.organizeQuestionsWithHierarchy(questions || []);
|
|
119
125
|
const editMappedFields = (_a2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _a2.mappedFields;
|
|
@@ -148,7 +154,7 @@ const useMappingData = ({
|
|
|
148
154
|
variables: mergeWithEnabled(variables || [], enabledVariableIds, "Select all Variables"),
|
|
149
155
|
contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, "Select all Contact Properties"),
|
|
150
156
|
expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, "Select all Expressions"),
|
|
151
|
-
property: mergeWithEnabled(
|
|
157
|
+
property: mergeWithEnabled(baseMappingPropertyValues || [], enabledPropertyIds, "Select all Properties"),
|
|
152
158
|
derivedQuestions: []
|
|
153
159
|
// Enrich not available from API
|
|
154
160
|
};
|
|
@@ -169,7 +175,7 @@ const useMappingData = ({
|
|
|
169
175
|
variables: processField(mappedFields == null ? void 0 : mappedFields.variables, "Select all Variables"),
|
|
170
176
|
contactProperties: processField(mappedFields == null ? void 0 : mappedFields.contactProperties, "Select all Contact Properties"),
|
|
171
177
|
expressions: processField(mappedFields == null ? void 0 : mappedFields.expressions, "Select all Expressions"),
|
|
172
|
-
property: processField(mappedFields == null ? void 0 : mappedFields.property, "Select all Properties"),
|
|
178
|
+
property: processField((_b2 = mapping_helpers.stripResponsePdfProperty(mappedFields == null ? void 0 : mappedFields.property, omitResponsePdf)) != null ? _b2 : [], "Select all Properties"),
|
|
173
179
|
derivedQuestions: processField(mappedFields == null ? void 0 : mappedFields.derivedQuestions, "Select all Enrich")
|
|
174
180
|
};
|
|
175
181
|
setSSMappingData(updatedSSMappingData);
|
|
@@ -177,7 +183,7 @@ const useMappingData = ({
|
|
|
177
183
|
} finally {
|
|
178
184
|
setLoader(false);
|
|
179
185
|
}
|
|
180
|
-
}, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData]);
|
|
186
|
+
}, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData, omitResponsePdf, baseMappingPropertyValues]);
|
|
181
187
|
const handleFieldValues = React.useCallback(
|
|
182
188
|
(type, id, value) => {
|
|
183
189
|
const useHierarchy = type === "questions" && isApiData;
|
|
@@ -227,7 +233,7 @@ const useMappingData = ({
|
|
|
227
233
|
});
|
|
228
234
|
}, []);
|
|
229
235
|
React.useEffect(() => {
|
|
230
|
-
var _a2;
|
|
236
|
+
var _a2, _b2;
|
|
231
237
|
if (!(editField == null ? void 0 : editField.id)) {
|
|
232
238
|
fetchInitialMappingData();
|
|
233
239
|
} else if (editField == null ? void 0 : editField.id) {
|
|
@@ -252,19 +258,22 @@ const useMappingData = ({
|
|
|
252
258
|
"Select all Contact Properties"
|
|
253
259
|
),
|
|
254
260
|
expressions: processField(mappedFields == null ? void 0 : mappedFields.expressions, "Select all Expressions"),
|
|
255
|
-
property: ensureSubmissionIdEnabled(
|
|
261
|
+
property: ensureSubmissionIdEnabled(
|
|
262
|
+
processField((_b2 = mapping_helpers.stripResponsePdfProperty(mappedFields == null ? void 0 : mappedFields.property, omitResponsePdf)) != null ? _b2 : [], "Select all Properties")
|
|
263
|
+
),
|
|
256
264
|
derivedQuestions: processField(mappedFields == null ? void 0 : mappedFields.derivedQuestions, "Select all Enrich")
|
|
257
265
|
};
|
|
258
266
|
setSSMappingData(updatedSSMappingData);
|
|
259
267
|
setOriginalMappingData(updatedSSMappingData);
|
|
260
268
|
} else {
|
|
261
269
|
const { questions, variables, contactProperties, expressions, property, derivedQuestions } = surveyProperties || {};
|
|
270
|
+
const rawProperty = mapping_helpers.stripResponsePdfProperty(property, omitResponsePdf);
|
|
262
271
|
const updatedSSMappingData = {
|
|
263
272
|
questions: (questions == null ? void 0 : questions.length) ? questions : [],
|
|
264
273
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? contactProperties : [],
|
|
265
274
|
variables: (variables == null ? void 0 : variables.length) ? variables : [],
|
|
266
275
|
expressions: (expressions == null ? void 0 : expressions.length) ? expressions : [],
|
|
267
|
-
property: (
|
|
276
|
+
property: (rawProperty == null ? void 0 : rawProperty.length) ? rawProperty : [],
|
|
268
277
|
derivedQuestions: (derivedQuestions == null ? void 0 : derivedQuestions.length) ? derivedQuestions : []
|
|
269
278
|
};
|
|
270
279
|
setSSMappingData(updatedSSMappingData);
|
|
@@ -274,7 +283,7 @@ const useMappingData = ({
|
|
|
274
283
|
}
|
|
275
284
|
}
|
|
276
285
|
setIsInitialLoad(false);
|
|
277
|
-
}, [token, surveyId]);
|
|
286
|
+
}, [token, surveyId, hasResponsePDF]);
|
|
278
287
|
React.useEffect(() => {
|
|
279
288
|
var _a2;
|
|
280
289
|
const importMethod = (_a2 = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a2.importMethod;
|
|
@@ -288,7 +297,7 @@ const useMappingData = ({
|
|
|
288
297
|
return modifiedMappingData(field, label, field.every((item) => item.isEnabled));
|
|
289
298
|
};
|
|
290
299
|
setSSMappingData((prevData) => {
|
|
291
|
-
var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h, _i, _j, _k, _l;
|
|
300
|
+
var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h, _i, _j, _k, _l, _m;
|
|
292
301
|
const newData = {
|
|
293
302
|
questions: processField((_b2 = (_a3 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _a3.mappedFields) == null ? void 0 : _b2.questions, "Select all Questions"),
|
|
294
303
|
variables: processField((_d2 = (_c2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _c2.mappedFields) == null ? void 0 : _d2.variables, "Select all Variables"),
|
|
@@ -297,9 +306,14 @@ const useMappingData = ({
|
|
|
297
306
|
"Select all Contact Properties"
|
|
298
307
|
),
|
|
299
308
|
expressions: processField((_h = (_g2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _g2.mappedFields) == null ? void 0 : _h.expressions, "Select all Expressions"),
|
|
300
|
-
property: ensureSubmissionIdEnabled(
|
|
309
|
+
property: ensureSubmissionIdEnabled(
|
|
310
|
+
processField(
|
|
311
|
+
(_k = mapping_helpers.stripResponsePdfProperty((_j = (_i = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _i.mappedFields) == null ? void 0 : _j.property, omitResponsePdf)) != null ? _k : [],
|
|
312
|
+
"Select all Properties"
|
|
313
|
+
)
|
|
314
|
+
),
|
|
301
315
|
derivedQuestions: processField(
|
|
302
|
-
(
|
|
316
|
+
(_m = (_l = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _l.mappedFields) == null ? void 0 : _m.derivedQuestions,
|
|
303
317
|
"Select all Enrich"
|
|
304
318
|
)
|
|
305
319
|
};
|
|
@@ -312,13 +326,14 @@ const useMappingData = ({
|
|
|
312
326
|
setSSMappingData((prevData) => {
|
|
313
327
|
var _a3, _b2, _c2, _d2, _e2, _f2;
|
|
314
328
|
const hasAllId = (arr) => arr == null ? void 0 : arr.some((item) => item.id === "ALL");
|
|
329
|
+
const strippedPrevProperty = mapping_helpers.stripResponsePdfProperty(prevData == null ? void 0 : prevData.property, omitResponsePdf);
|
|
315
330
|
const newData = {
|
|
316
331
|
questions: hasAllId(prevData == null ? void 0 : prevData.questions) ? prevData == null ? void 0 : prevData.questions : ((_a3 = prevData == null ? void 0 : prevData.questions) == null ? void 0 : _a3.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.questions, "Select all Questions") : [],
|
|
317
332
|
variables: hasAllId(prevData == null ? void 0 : prevData.variables) ? prevData == null ? void 0 : prevData.variables : ((_b2 = prevData == null ? void 0 : prevData.variables) == null ? void 0 : _b2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.variables, "Select all Variables") : [],
|
|
318
333
|
contactProperties: hasAllId(prevData == null ? void 0 : prevData.contactProperties) ? prevData == null ? void 0 : prevData.contactProperties : ((_c2 = prevData == null ? void 0 : prevData.contactProperties) == null ? void 0 : _c2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.contactProperties, "Select all Contact Properties") : [],
|
|
319
334
|
expressions: hasAllId(prevData == null ? void 0 : prevData.expressions) ? prevData == null ? void 0 : prevData.expressions : ((_d2 = prevData == null ? void 0 : prevData.expressions) == null ? void 0 : _d2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.expressions, "Select all Expressions") : [],
|
|
320
335
|
property: ensureSubmissionIdEnabled(
|
|
321
|
-
hasAllId(prevData == null ? void 0 : prevData.property) ?
|
|
336
|
+
hasAllId(prevData == null ? void 0 : prevData.property) ? (_e2 = strippedPrevProperty != null ? strippedPrevProperty : prevData == null ? void 0 : prevData.property) != null ? _e2 : [] : (strippedPrevProperty == null ? void 0 : strippedPrevProperty.length) ? modifiedMappingData(strippedPrevProperty, "Select all Properties") : []
|
|
322
337
|
),
|
|
323
338
|
derivedQuestions: hasAllId(prevData == null ? void 0 : prevData.derivedQuestions) ? prevData == null ? void 0 : prevData.derivedQuestions : ((_f2 = prevData == null ? void 0 : prevData.derivedQuestions) == null ? void 0 : _f2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.derivedQuestions, "Select all Enrich") : []
|
|
324
339
|
};
|
|
@@ -329,7 +344,7 @@ const useMappingData = ({
|
|
|
329
344
|
});
|
|
330
345
|
}
|
|
331
346
|
}
|
|
332
|
-
}, [(_a = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a.importMethod]);
|
|
347
|
+
}, [(_a = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a.importMethod, hasResponsePDF]);
|
|
333
348
|
const handleMappingDataChange = React.useCallback(
|
|
334
349
|
(mappingData) => {
|
|
335
350
|
var _a2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mapping-data.js","sources":["../../../../src/dynamic-mapping/hooks/use-mapping-data.ts"],"sourcesContent":["/* ----- Imports ----- */\n\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport {\n fetchSurveyQuestions,\n fetchSurveyVariables,\n fetchContactProperties,\n fetchSurveyExpression,\n} from '../../mapping/services';\nimport { surveySparrowURL, mappingPropertyValues } from '../../commons/constants';\nimport {\n processFieldForMapping,\n updateFieldEnabledState,\n organizeQuestionsWithHierarchy,\n updateFieldEnabledStateWithHierarchy,\n} from '../helpers';\nimport { MappingData } from '../../commons/types/enhanced';\n\n/* ----- Types / Interfaces ----- */\n\ninterface UseMappingDataProps {\n surveyId: string | number;\n apiURL?: string;\n token?: string;\n surveyProperties?: any;\n importResponse: any;\n editField?: any;\n setIsInitialLoad: (value: boolean) => void;\n setOriginalMappingData: (value: MappingData) => void;\n ssMappingData?: MappingData;\n setSSMappingData?: React.Dispatch<React.SetStateAction<MappingData>>;\n}\n\ninterface UseMappingDataReturn {\n loader: boolean;\n searchInput: string;\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\n ssMappingData: MappingData;\n setSSMappingData: React.Dispatch<React.SetStateAction<MappingData>>;\n handleFieldValues: (type: string, id: string | number, value: boolean) => void;\n getMappingCount: (mappingField: string) => number;\n getAllMappingCount: (mappingField: string) => number;\n isApiData: boolean;\n}\n\n/* ----- Main Hook ----- */\n\n/**\n * Custom hook to manage mapping data fetching and state\n * \n * @param {UseMappingDataProps} props - Props for mapping data\n * @returns {UseMappingDataReturn} State and handlers for mapping data\n * \n * @example\n * const { ssMappingData, handleFieldValues } = useMappingData({\n * surveyId,\n * token,\n * importResponse,\n * });\n */\nexport const useMappingData = ({\n surveyId,\n apiURL = surveySparrowURL,\n token,\n surveyProperties,\n importResponse,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n ssMappingData: externalSsMappingData,\n setSSMappingData: externalSetSSMappingData,\n}: UseMappingDataProps): UseMappingDataReturn => {\n const [loader, setLoader] = useState(true);\n const [searchInput, setSearchInput] = useState('');\n const [isApiData, setIsApiData] = useState(false);\n \n // Use external state if provided, otherwise use internal state\n const [internalSsMappingData, internalSetSSMappingData] = useState<MappingData>({\n questions: [],\n variables: [],\n contactProperties: [],\n expressions: [],\n property: [],\n derivedQuestions: [],\n });\n\n const ssMappingData = externalSsMappingData ?? internalSsMappingData;\n const setSSMappingData = externalSetSSMappingData ?? internalSetSSMappingData;\n\n const modifiedMappingData = useCallback(\n (mappingData: any, commonLabel: string, isEnabled: boolean = false) => {\n const fields = mappingData.map((data: any) => ({\n ...data,\n id: data?.id ?? data?.name,\n name: data?.rtxt ?? data?.name,\n isEnabled: data?.isEnabled ?? false,\n }));\n fields.unshift({ id: 'ALL', name: commonLabel, isEnabled });\n return fields;\n },\n []\n );\n\n const fetchInitialMappingData = useCallback(async () => {\n setLoader(true);\n try {\n if (surveyProperties) {\n // Data from surveyProperties - no hierarchy processing needed\n setIsApiData(false);\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties;\n setSSMappingData({\n questions: questions?.length\n ? modifiedMappingData(questions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: property?.length ? modifiedMappingData(property, 'Select all Properties') : [],\n derivedQuestions: derivedQuestions?.length\n ? modifiedMappingData(derivedQuestions, 'Select all Enrich')\n : [],\n });\n } else {\n // Data from API - apply hierarchy processing for questions\n setIsApiData(true);\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n \n // Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n \n setSSMappingData({\n questions: organizedQuestions?.length\n ? modifiedMappingData(organizedQuestions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: mappingPropertyValues?.length\n ? modifiedMappingData(mappingPropertyValues, 'Select all Properties')\n : [],\n derivedQuestions: [],\n });\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoader(false);\n }\n }, [surveyId, apiURL, token, surveyProperties, modifiedMappingData]);\n\n /**\n * Fetches data from API and merges with enabled states from edit data\n * Used in edit flow when token and apiURL are available\n */\n const fetchAndMergeEditData = useCallback(async () => {\n setLoader(true);\n try {\n // 1. Fetch fresh data from API\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n\n // 2. Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n\n // 3. Get enabled IDs from edit data (mappedFields or surveyProperties)\n const editMappedFields = editField?.fieldValues?.mappedFields;\n const getEnabledIds = (fields: any[]) => {\n if (!fields?.length) return new Set<any>();\n return new Set(\n fields\n .filter((f) => f.isEnabled)\n .map((f) => f.id ?? f.name)\n );\n };\n\n const enabledQuestionIds = getEnabledIds(editMappedFields?.questions || surveyProperties?.questions);\n const enabledVariableIds = getEnabledIds(editMappedFields?.variables || surveyProperties?.variables);\n const enabledContactPropertyIds = getEnabledIds(editMappedFields?.contactProperties || surveyProperties?.contactProperties);\n const enabledExpressionIds = getEnabledIds(editMappedFields?.expressions || surveyProperties?.expressions);\n const enabledPropertyIds = getEnabledIds(editMappedFields?.property || surveyProperties?.property);\n const enabledDerivedQuestionIds = getEnabledIds(editMappedFields?.derivedQuestions || surveyProperties?.derivedQuestions);\n\n // 4. Merge: apply isEnabled based on edit data\n const mergeWithEnabled = (apiData: any[], enabledIds: Set<any>, label: string) => {\n if (!apiData?.length) return [];\n const merged = apiData.map((item) => ({\n ...item,\n isEnabled: enabledIds.has(item.id) || enabledIds.has(item.name),\n }));\n const allEnabled = merged.every((m) => m.isEnabled);\n return modifiedMappingData(merged, label, allEnabled);\n };\n\n // 5. Set data with isApiData = true for hierarchy support\n setIsApiData(true);\n const updatedSSMappingData = {\n questions: mergeWithEnabled(organizedQuestions, enabledQuestionIds, 'Select all Questions'),\n variables: mergeWithEnabled(variables || [], enabledVariableIds, 'Select all Variables'),\n contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, 'Select all Contact Properties'),\n expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, 'Select all Expressions'),\n property: mergeWithEnabled(mappingPropertyValues || [], enabledPropertyIds, 'Select all Properties'),\n derivedQuestions: [], // Enrich not available from API\n };\n \n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } catch (error) {\n console.error('Error fetching and merging edit data:', error);\n // Fallback to existing behavior on error\n const { fieldValues: { mappedFields } } = editField;\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(mappedFields?.contactProperties, 'Select all Contact Properties'),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: processField(mappedFields?.property, 'Select all Properties'),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } finally {\n setLoader(false);\n }\n }, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData]);\n\n const handleFieldValues = useCallback(\n (type: string, id: string | number, value: boolean) => {\n // Use hierarchical update for questions when data is from API\n const useHierarchy = type === 'questions' && isApiData;\n const updatedFields = updateFieldEnabledStateWithHierarchy(\n ssMappingData[type as keyof MappingData],\n id,\n value,\n useHierarchy\n );\n const mappedFields = {\n ...ssMappingData,\n [type]: updatedFields,\n };\n setSSMappingData(mappedFields);\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappedFields,\n });\n },\n [ssMappingData, importResponse, isApiData]\n );\n\n const getMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.filter((field: any) => field?.id !== 'ALL' && field.isEnabled).length || 0;\n },\n [ssMappingData]\n );\n\n const getAllMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.length || 0;\n },\n [ssMappingData]\n );\n\n /**\n * Ensures SUBMISSION_ID property is enabled, disabled and has tooltip when in SELECTED_DATA mode\n */\n const ensureSubmissionIdEnabled = useCallback((propertyFields: any[]) => {\n if (!propertyFields?.length) return propertyFields;\n return propertyFields.map((field: any) => {\n if (field.id === 'SUBMISSION_ID') {\n return {\n ...field,\n isEnabled: true,\n disabled: true,\n tooltip: 'This is a mandatory field',\n };\n }\n return field;\n });\n }, []);\n\n useEffect(() => {\n if (!editField?.id) {\n fetchInitialMappingData();\n } else if (editField?.id) {\n // Edit flow - check if we should fetch from API for hierarchy support\n const shouldFetchFromApi = !!token && !!apiURL;\n \n if (shouldFetchFromApi) {\n // Fetch from API and merge with enabled states from edit data\n // This ensures parent-child hierarchy metadata is available\n fetchAndMergeEditData();\n } else {\n // Fallback: use existing behavior when token/apiURL not available\n const { fieldValues: { mappedFields } } = editField;\n if (importResponse?.value?.importMethod === 'SELECTED_DATA') {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(processField(mappedFields?.property, 'Select all Properties')),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } else {\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties || {};\n const updatedSSMappingData = {\n questions: questions?.length ? questions : [],\n contactProperties: contactProperties?.length ? contactProperties : [],\n variables: variables?.length ? variables : [],\n expressions: expressions?.length ? expressions : [],\n property: property?.length ? property : [],\n derivedQuestions: derivedQuestions?.length ? derivedQuestions : [],\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n }\n setLoader(false);\n }\n }\n setIsInitialLoad(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token, surveyId]);\n\n useEffect(() => {\n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SELECTED_DATA') {\n if (editField?.id) {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n \n setSSMappingData((prevData) => {\n const newData = {\n questions: processField(editField?.fieldValues?.mappedFields?.questions, 'Select all Questions'),\n variables: processField(editField?.fieldValues?.mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n editField?.fieldValues?.mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(editField?.fieldValues?.mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(processField(editField?.fieldValues?.mappedFields?.property, 'Select all Properties')),\n derivedQuestions: processField(\n editField?.fieldValues?.mappedFields?.derivedQuestions,\n 'Select all Enrich'\n ),\n };\n \n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n } else {\n setSSMappingData((prevData) => {\n const hasAllId = (arr: any[]) => arr?.some((item: any) => item.id === 'ALL');\n \n const newData = {\n questions: hasAllId(prevData?.questions)\n ? prevData?.questions\n : prevData?.questions?.length\n ? modifiedMappingData(prevData?.questions, 'Select all Questions')\n : [],\n variables: hasAllId(prevData?.variables)\n ? prevData?.variables\n : prevData?.variables?.length\n ? modifiedMappingData(prevData?.variables, 'Select all Variables')\n : [],\n contactProperties: hasAllId(prevData?.contactProperties)\n ? prevData?.contactProperties\n : prevData?.contactProperties?.length\n ? modifiedMappingData(prevData?.contactProperties, 'Select all Contact Properties')\n : [],\n expressions: hasAllId(prevData?.expressions)\n ? prevData?.expressions\n : prevData?.expressions?.length\n ? modifiedMappingData(prevData?.expressions, 'Select all Expressions')\n : [],\n property: ensureSubmissionIdEnabled(\n hasAllId(prevData?.property)\n ? prevData?.property\n : prevData?.property?.length\n ? modifiedMappingData(prevData?.property, 'Select all Properties')\n : []\n ),\n derivedQuestions: hasAllId(prevData?.derivedQuestions)\n ? prevData?.derivedQuestions\n : prevData?.derivedQuestions?.length\n ? modifiedMappingData(prevData?.derivedQuestions, 'Select all Enrich')\n : [],\n };\n \n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [importResponse?.value?.importMethod]);\n\n // Memoize the onChangeHandler to prevent unnecessary re-renders\n const handleMappingDataChange = useCallback(\n (mappingData: MappingData) => {\n if (!importResponse?.onChangeHandler) return;\n \n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SEND_ALL_DATA') {\n const updatedFieldValues = Object.keys(mappingData).reduce((acc: any, key: any) => {\n acc[key] = mappingData[key as keyof MappingData].map((field: any) => {\n if (field?.id !== 'ALL') {\n return { ...field, isEnabled: true };\n }\n return field;\n });\n return acc;\n }, {});\n \n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: updatedFieldValues,\n });\n } else if (importMethod === 'SELECTED_DATA') {\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappingData,\n });\n }\n },\n [importResponse]\n );\n\n useEffect(() => {\n if (\n ssMappingData?.questions?.length ||\n ssMappingData?.variables?.length ||\n ssMappingData?.contactProperties?.length ||\n ssMappingData?.expressions?.length ||\n ssMappingData?.property?.length\n ) {\n handleMappingDataChange(ssMappingData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n ssMappingData?.questions?.length,\n ssMappingData?.variables?.length,\n ssMappingData?.contactProperties?.length,\n ssMappingData?.expressions?.length,\n ssMappingData?.property?.length,\n importResponse?.value?.importMethod,\n ]);\n\n return {\n loader,\n searchInput,\n setSearchInput,\n ssMappingData,\n setSSMappingData,\n handleFieldValues,\n getMappingCount,\n getAllMappingCount,\n isApiData,\n };\n};\n"],"names":["surveySparrowURL","useState","useCallback","_a","_b","_c","fetchSurveyQuestions","fetchSurveyVariables","fetchContactProperties","fetchSurveyExpression","organizeQuestionsWithHierarchy","mappingPropertyValues","updateFieldEnabledStateWithHierarchy","useEffect","_d","_e","_f","_g"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-mapping-data.js","sources":["../../../../src/dynamic-mapping/hooks/use-mapping-data.ts"],"sourcesContent":["/* ----- Imports ----- */\n\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport {\n fetchSurveyQuestions,\n fetchSurveyVariables,\n fetchContactProperties,\n fetchSurveyExpression,\n} from '../../mapping/services';\nimport { surveySparrowURL, mappingPropertyValues } from '../../commons/constants';\nimport {\n processFieldForMapping,\n updateFieldEnabledState,\n organizeQuestionsWithHierarchy,\n updateFieldEnabledStateWithHierarchy,\n stripResponsePdfProperty,\n} from '../helpers';\nimport { MappingData } from '../../commons/types/enhanced';\n\n/* ----- Types / Interfaces ----- */\n\ninterface UseMappingDataProps {\n surveyId: string | number;\n apiURL?: string;\n token?: string;\n surveyProperties?: any;\n importResponse: any;\n editField?: any;\n setIsInitialLoad: (value: boolean) => void;\n setOriginalMappingData: (value: MappingData) => void;\n ssMappingData?: MappingData;\n setSSMappingData?: React.Dispatch<React.SetStateAction<MappingData>>;\n /** When true, includes RESPONSE_PDF; when omitted or false, it is hidden. */\n hasResponsePDF?: boolean;\n}\n\ninterface UseMappingDataReturn {\n loader: boolean;\n searchInput: string;\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\n ssMappingData: MappingData;\n setSSMappingData: React.Dispatch<React.SetStateAction<MappingData>>;\n handleFieldValues: (type: string, id: string | number, value: boolean) => void;\n getMappingCount: (mappingField: string) => number;\n getAllMappingCount: (mappingField: string) => number;\n isApiData: boolean;\n}\n\n/* ----- Main Hook ----- */\n\n/**\n * Custom hook to manage mapping data fetching and state\n * \n * @param {UseMappingDataProps} props - Props for mapping data\n * @returns {UseMappingDataReturn} State and handlers for mapping data\n * \n * @example\n * const { ssMappingData, handleFieldValues } = useMappingData({\n * surveyId,\n * token,\n * importResponse,\n * });\n */\nexport const useMappingData = ({\n surveyId,\n apiURL = surveySparrowURL,\n token,\n surveyProperties,\n importResponse,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n ssMappingData: externalSsMappingData,\n setSSMappingData: externalSetSSMappingData,\n hasResponsePDF,\n}: UseMappingDataProps): UseMappingDataReturn => {\n const omitResponsePdf = hasResponsePDF !== true;\n\n const baseMappingPropertyValues = useMemo(\n () =>\n omitResponsePdf\n ? mappingPropertyValues.filter((p) => p.id !== 'RESPONSE_PDF')\n : mappingPropertyValues,\n [omitResponsePdf]\n );\n const [loader, setLoader] = useState(true);\n const [searchInput, setSearchInput] = useState('');\n const [isApiData, setIsApiData] = useState(false);\n \n // Use external state if provided, otherwise use internal state\n const [internalSsMappingData, internalSetSSMappingData] = useState<MappingData>({\n questions: [],\n variables: [],\n contactProperties: [],\n expressions: [],\n property: [],\n derivedQuestions: [],\n });\n\n const ssMappingData = externalSsMappingData ?? internalSsMappingData;\n const setSSMappingData = externalSetSSMappingData ?? internalSetSSMappingData;\n\n const modifiedMappingData = useCallback(\n (mappingData: any, commonLabel: string, isEnabled: boolean = false) => {\n const fields = mappingData.map((data: any) => ({\n ...data,\n id: data?.id ?? data?.name,\n name: data?.rtxt ?? data?.name,\n isEnabled: data?.isEnabled ?? false,\n }));\n fields.unshift({ id: 'ALL', name: commonLabel, isEnabled });\n return fields;\n },\n []\n );\n\n const fetchInitialMappingData = useCallback(async () => {\n setLoader(true);\n try {\n if (surveyProperties) {\n // Data from surveyProperties - no hierarchy processing needed\n setIsApiData(false);\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties;\n const propertyForMapping = stripResponsePdfProperty(property, omitResponsePdf);\n setSSMappingData({\n questions: questions?.length\n ? modifiedMappingData(questions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: propertyForMapping?.length\n ? modifiedMappingData(propertyForMapping, 'Select all Properties')\n : [],\n derivedQuestions: derivedQuestions?.length\n ? modifiedMappingData(derivedQuestions, 'Select all Enrich')\n : [],\n });\n } else {\n // Data from API - apply hierarchy processing for questions\n setIsApiData(true);\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n \n // Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n \n setSSMappingData({\n questions: organizedQuestions?.length\n ? modifiedMappingData(organizedQuestions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: baseMappingPropertyValues?.length\n ? modifiedMappingData(baseMappingPropertyValues, 'Select all Properties')\n : [],\n derivedQuestions: [],\n });\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoader(false);\n }\n }, [surveyId, apiURL, token, surveyProperties, modifiedMappingData, omitResponsePdf, baseMappingPropertyValues]);\n\n /**\n * Fetches data from API and merges with enabled states from edit data\n * Used in edit flow when token and apiURL are available\n */\n const fetchAndMergeEditData = useCallback(async () => {\n setLoader(true);\n try {\n // 1. Fetch fresh data from API\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n\n // 2. Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n\n // 3. Get enabled IDs from edit data (mappedFields or surveyProperties)\n const editMappedFields = editField?.fieldValues?.mappedFields;\n const getEnabledIds = (fields: any[]) => {\n if (!fields?.length) return new Set<any>();\n return new Set(\n fields\n .filter((f) => f.isEnabled)\n .map((f) => f.id ?? f.name)\n );\n };\n\n const enabledQuestionIds = getEnabledIds(editMappedFields?.questions || surveyProperties?.questions);\n const enabledVariableIds = getEnabledIds(editMappedFields?.variables || surveyProperties?.variables);\n const enabledContactPropertyIds = getEnabledIds(editMappedFields?.contactProperties || surveyProperties?.contactProperties);\n const enabledExpressionIds = getEnabledIds(editMappedFields?.expressions || surveyProperties?.expressions);\n const enabledPropertyIds = getEnabledIds(editMappedFields?.property || surveyProperties?.property);\n const enabledDerivedQuestionIds = getEnabledIds(editMappedFields?.derivedQuestions || surveyProperties?.derivedQuestions);\n\n // 4. Merge: apply isEnabled based on edit data\n const mergeWithEnabled = (apiData: any[], enabledIds: Set<any>, label: string) => {\n if (!apiData?.length) return [];\n const merged = apiData.map((item) => ({\n ...item,\n isEnabled: enabledIds.has(item.id) || enabledIds.has(item.name),\n }));\n const allEnabled = merged.every((m) => m.isEnabled);\n return modifiedMappingData(merged, label, allEnabled);\n };\n\n // 5. Set data with isApiData = true for hierarchy support\n setIsApiData(true);\n const updatedSSMappingData = {\n questions: mergeWithEnabled(organizedQuestions, enabledQuestionIds, 'Select all Questions'),\n variables: mergeWithEnabled(variables || [], enabledVariableIds, 'Select all Variables'),\n contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, 'Select all Contact Properties'),\n expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, 'Select all Expressions'),\n property: mergeWithEnabled(baseMappingPropertyValues || [], enabledPropertyIds, 'Select all Properties'),\n derivedQuestions: [], // Enrich not available from API\n };\n \n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } catch (error) {\n console.error('Error fetching and merging edit data:', error);\n // Fallback to existing behavior on error\n const { fieldValues: { mappedFields } } = editField;\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(mappedFields?.contactProperties, 'Select all Contact Properties'),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: processField(stripResponsePdfProperty(mappedFields?.property, omitResponsePdf) ?? [], 'Select all Properties'),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } finally {\n setLoader(false);\n }\n }, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData, omitResponsePdf, baseMappingPropertyValues]);\n\n const handleFieldValues = useCallback(\n (type: string, id: string | number, value: boolean) => {\n // Use hierarchical update for questions when data is from API\n const useHierarchy = type === 'questions' && isApiData;\n const updatedFields = updateFieldEnabledStateWithHierarchy(\n ssMappingData[type as keyof MappingData],\n id,\n value,\n useHierarchy\n );\n const mappedFields = {\n ...ssMappingData,\n [type]: updatedFields,\n };\n setSSMappingData(mappedFields);\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappedFields,\n });\n },\n [ssMappingData, importResponse, isApiData]\n );\n\n const getMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.filter((field: any) => field?.id !== 'ALL' && field.isEnabled).length || 0;\n },\n [ssMappingData]\n );\n\n const getAllMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.length || 0;\n },\n [ssMappingData]\n );\n\n /**\n * Ensures SUBMISSION_ID property is enabled, disabled and has tooltip when in SELECTED_DATA mode\n */\n const ensureSubmissionIdEnabled = useCallback((propertyFields: any[]) => {\n if (!propertyFields?.length) return propertyFields;\n return propertyFields.map((field: any) => {\n if (field.id === 'SUBMISSION_ID') {\n return {\n ...field,\n isEnabled: true,\n disabled: true,\n tooltip: 'This is a mandatory field',\n };\n }\n return field;\n });\n }, []);\n\n useEffect(() => {\n if (!editField?.id) {\n fetchInitialMappingData();\n } else if (editField?.id) {\n // Edit flow - check if we should fetch from API for hierarchy support\n const shouldFetchFromApi = !!token && !!apiURL;\n \n if (shouldFetchFromApi) {\n // Fetch from API and merge with enabled states from edit data\n // This ensures parent-child hierarchy metadata is available\n fetchAndMergeEditData();\n } else {\n // Fallback: use existing behavior when token/apiURL not available\n const { fieldValues: { mappedFields } } = editField;\n if (importResponse?.value?.importMethod === 'SELECTED_DATA') {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(\n processField(stripResponsePdfProperty(mappedFields?.property, omitResponsePdf) ?? [], 'Select all Properties')\n ),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } else {\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties || {};\n const rawProperty = stripResponsePdfProperty(property, omitResponsePdf);\n const updatedSSMappingData = {\n questions: questions?.length ? questions : [],\n contactProperties: contactProperties?.length ? contactProperties : [],\n variables: variables?.length ? variables : [],\n expressions: expressions?.length ? expressions : [],\n property: rawProperty?.length ? rawProperty : [],\n derivedQuestions: derivedQuestions?.length ? derivedQuestions : [],\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n }\n setLoader(false);\n }\n }\n setIsInitialLoad(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token, surveyId, hasResponsePDF]);\n\n useEffect(() => {\n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SELECTED_DATA') {\n if (editField?.id) {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n \n setSSMappingData((prevData) => {\n const newData = {\n questions: processField(editField?.fieldValues?.mappedFields?.questions, 'Select all Questions'),\n variables: processField(editField?.fieldValues?.mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n editField?.fieldValues?.mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(editField?.fieldValues?.mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(\n processField(\n stripResponsePdfProperty(editField?.fieldValues?.mappedFields?.property, omitResponsePdf) ?? [],\n 'Select all Properties'\n )\n ),\n derivedQuestions: processField(\n editField?.fieldValues?.mappedFields?.derivedQuestions,\n 'Select all Enrich'\n ),\n };\n\n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n } else {\n setSSMappingData((prevData) => {\n const hasAllId = (arr: any[]) => arr?.some((item: any) => item.id === 'ALL');\n const strippedPrevProperty = stripResponsePdfProperty(prevData?.property, omitResponsePdf);\n\n const newData = {\n questions: hasAllId(prevData?.questions)\n ? prevData?.questions\n : prevData?.questions?.length\n ? modifiedMappingData(prevData?.questions, 'Select all Questions')\n : [],\n variables: hasAllId(prevData?.variables)\n ? prevData?.variables\n : prevData?.variables?.length\n ? modifiedMappingData(prevData?.variables, 'Select all Variables')\n : [],\n contactProperties: hasAllId(prevData?.contactProperties)\n ? prevData?.contactProperties\n : prevData?.contactProperties?.length\n ? modifiedMappingData(prevData?.contactProperties, 'Select all Contact Properties')\n : [],\n expressions: hasAllId(prevData?.expressions)\n ? prevData?.expressions\n : prevData?.expressions?.length\n ? modifiedMappingData(prevData?.expressions, 'Select all Expressions')\n : [],\n property: ensureSubmissionIdEnabled(\n hasAllId(prevData?.property)\n ? strippedPrevProperty ?? prevData?.property ?? []\n : strippedPrevProperty?.length\n ? modifiedMappingData(strippedPrevProperty, 'Select all Properties')\n : []\n ),\n derivedQuestions: hasAllId(prevData?.derivedQuestions)\n ? prevData?.derivedQuestions\n : prevData?.derivedQuestions?.length\n ? modifiedMappingData(prevData?.derivedQuestions, 'Select all Enrich')\n : [],\n };\n\n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [importResponse?.value?.importMethod, hasResponsePDF]);\n\n // Memoize the onChangeHandler to prevent unnecessary re-renders\n const handleMappingDataChange = useCallback(\n (mappingData: MappingData) => {\n if (!importResponse?.onChangeHandler) return;\n \n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SEND_ALL_DATA') {\n const updatedFieldValues = Object.keys(mappingData).reduce((acc: any, key: any) => {\n acc[key] = mappingData[key as keyof MappingData].map((field: any) => {\n if (field?.id !== 'ALL') {\n return { ...field, isEnabled: true };\n }\n return field;\n });\n return acc;\n }, {});\n \n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: updatedFieldValues,\n });\n } else if (importMethod === 'SELECTED_DATA') {\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappingData,\n });\n }\n },\n [importResponse]\n );\n\n useEffect(() => {\n if (\n ssMappingData?.questions?.length ||\n ssMappingData?.variables?.length ||\n ssMappingData?.contactProperties?.length ||\n ssMappingData?.expressions?.length ||\n ssMappingData?.property?.length\n ) {\n handleMappingDataChange(ssMappingData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n ssMappingData?.questions?.length,\n ssMappingData?.variables?.length,\n ssMappingData?.contactProperties?.length,\n ssMappingData?.expressions?.length,\n ssMappingData?.property?.length,\n importResponse?.value?.importMethod,\n ]);\n\n return {\n loader,\n searchInput,\n setSearchInput,\n ssMappingData,\n setSSMappingData,\n handleFieldValues,\n getMappingCount,\n getAllMappingCount,\n isApiData,\n };\n};\n"],"names":["surveySparrowURL","useMemo","mappingPropertyValues","useState","useCallback","_a","_b","_c","stripResponsePdfProperty","fetchSurveyQuestions","fetchSurveyVariables","fetchContactProperties","fetchSurveyExpression","organizeQuestionsWithHierarchy","updateFieldEnabledStateWithHierarchy","useEffect","_d","_e","_f","_g"],"mappings":"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"}
|
|
@@ -44,7 +44,8 @@ const DynamicMapping = ({
|
|
|
44
44
|
mappingConditions,
|
|
45
45
|
setMappingConditions,
|
|
46
46
|
conditionData,
|
|
47
|
-
conditionDescription
|
|
47
|
+
conditionDescription,
|
|
48
|
+
hasResponsePDF
|
|
48
49
|
}) => {
|
|
49
50
|
const {
|
|
50
51
|
ssMappingData,
|
|
@@ -179,7 +180,8 @@ const DynamicMapping = ({
|
|
|
179
180
|
mappingConditions,
|
|
180
181
|
setMappingConditions,
|
|
181
182
|
conditionData,
|
|
182
|
-
conditionDescription
|
|
183
|
+
conditionDescription,
|
|
184
|
+
hasResponsePDF
|
|
183
185
|
}
|
|
184
186
|
))))
|
|
185
187
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/dynamic-mapping/index.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { Box, Flex, ThemeProvider, TooltipProvider } from '@sparrowengg/twigs-react';\nimport { surveySparrowURL } from '../commons/constants';\nimport { Mapping as MultiMapping } from '../mapping/components/mapping';\nimport {\n IntegrationField,\n ConfigurationFieldValue,\n MappingData,\n} from '../commons/types/enhanced';\nimport { FieldType, CustomListFieldType, OldResponseFieldType } from '../mapping/types';\nimport { MappingHeader, ConfigurationSetup, Mapping } from './components';\nimport { useDynamicMappingState, useFieldChanges } from './hooks';\n\n/* ----- Types / Interfaces ----- */\n\ntype DynamicMappingPropsType = {\n forceDisableMappingCTA?: boolean;\n mappingType?: string;\n hasDerivedQuestions?: boolean;\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n currentMappingName?: string;\n setMappingName?: (value: string) => void;\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string | unknown } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: any;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n surveyType: string;\n havingTypeDropdown: boolean;\n fields: Array<FieldType>;\n setFields: React.Dispatch<React.SetStateAction<Array<FieldType>>>;\n surveyId: string | number;\n integrationName: string;\n customList: CustomListFieldType;\n oldResponse: OldResponseFieldType;\n hasNamingModal?: boolean;\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Dynamic mapping component for configuring and mapping integration fields\n * \n * @param {DynamicMappingPropsType} props - Component props\n * @returns {JSX.Element} Dynamic mapping component\n * \n * @example\n * <DynamicMapping\n * integrationFields={fields}\n * configuration={config}\n * surveyDetails={survey}\n * onSaveHandler={handleSave}\n * />\n */\nexport const DynamicMapping = ({\n forceDisableMappingCTA,\n mappingType,\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n hasDerivedQuestions,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n surveyType,\n havingTypeDropdown,\n fields,\n setFields,\n surveyId,\n integrationName,\n customList,\n oldResponse,\n hasNamingModal,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n}: DynamicMappingPropsType): JSX.Element => {\n const {\n ssMappingData,\n setSSMappingData,\n isEditConfirmationOpen,\n setIsEditConfirmationOpen,\n originalMappingData,\n setOriginalMappingData,\n originalConfigurationFields,\n setOriginalConfigurationFields,\n originalConfiguredFields,\n setOriginalConfiguredFields,\n originalImportResponse,\n setOriginalImportResponse,\n isInitialLoad,\n setIsInitialLoad,\n essentialFields,\n commonFields,\n } = useDynamicMappingState(fields);\n\n const hasFieldsChanged = useFieldChanges({\n editField,\n originalMappingData,\n ssMappingData,\n originalConfigurationFields,\n configurationFields: configuration.configurationFields,\n originalConfiguredFields,\n configuredFields: configuration.configuredFields,\n originalImportResponse,\n importResponse,\n isInitialLoad,\n });\n\n const handleSaveConfiguration = useCallback(async () => {\n return configuration.onSaveHandler();\n }, [configuration]);\n\n const handleNavigateConfigPage = useCallback(() => {\n navigateMappingPage(false);\n }, [navigateMappingPage]);\n\n const handleSave = useCallback(() => {\n onSaveHandler(editField?.id ? editField : {});\n }, [onSaveHandler, editField]);\n\n const isMultiMapping = useMemo(\n () => mappingType === 'MULTI_MAPPING',\n [mappingType]\n );\n\n const showConfiguration = useMemo(\n () => !isMappingPage && configuration.hasConfiguration,\n [isMappingPage, configuration.hasConfiguration]\n );\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: 'DM Sans, Roboto Mono, sans-serif',\n heading: 'DM Sans, Roboto Mono, sans-serif',\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: '100%' }}>\n <MappingHeader\n forceDisableMappingCTA={forceDisableMappingCTA}\n hasNamingModal={hasNamingModal}\n mappingType={mappingType ?? ''}\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSave}\n essentialFields={essentialFields}\n commonFields={commonFields}\n />\n\n {showConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: '$40' }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <>\n {isMultiMapping ? (\n <MultiMapping\n hasDerivedQuestions={hasDerivedQuestions}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n fields={fields}\n setFields={setFields}\n surveyDetails={surveyDetails}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n surveyId={surveyDetails.surveyId}\n token={token}\n apiURL={apiURL}\n integrationName={integrationName}\n customList={customList}\n oldResponse={oldResponse}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n />\n ) : (\n <Mapping\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n />\n )}\n </>\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n"],"names":["surveySparrowURL","useDynamicMappingState","useFieldChanges","useCallback","useMemo","ThemeProvider","TooltipProvider","Box","MappingHeader","Flex","ConfigurationSetup","MultiMapping","Mapping"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/dynamic-mapping/index.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { Box, Flex, ThemeProvider, TooltipProvider } from '@sparrowengg/twigs-react';\nimport { surveySparrowURL } from '../commons/constants';\nimport { Mapping as MultiMapping } from '../mapping/components/mapping';\nimport {\n IntegrationField,\n ConfigurationFieldValue,\n MappingData,\n} from '../commons/types/enhanced';\nimport { FieldType, CustomListFieldType, OldResponseFieldType } from '../mapping/types';\nimport { MappingHeader, ConfigurationSetup, Mapping } from './components';\nimport { useDynamicMappingState, useFieldChanges } from './hooks';\n\n/* ----- Types / Interfaces ----- */\n\ntype DynamicMappingPropsType = {\n forceDisableMappingCTA?: boolean;\n mappingType?: string;\n hasDerivedQuestions?: boolean;\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n currentMappingName?: string;\n setMappingName?: (value: string) => void;\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string | unknown } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: any;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n surveyType: string;\n havingTypeDropdown: boolean;\n fields: Array<FieldType>;\n setFields: React.Dispatch<React.SetStateAction<Array<FieldType>>>;\n surveyId: string | number;\n integrationName: string;\n customList: CustomListFieldType;\n oldResponse: OldResponseFieldType;\n hasNamingModal?: boolean;\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n /** When true, includes Response PDF in submission properties; when omitted, it is hidden. */\n hasResponsePDF?: boolean;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Dynamic mapping component for configuring and mapping integration fields\n * \n * @param {DynamicMappingPropsType} props - Component props\n * @returns {JSX.Element} Dynamic mapping component\n * \n * @example\n * <DynamicMapping\n * integrationFields={fields}\n * configuration={config}\n * surveyDetails={survey}\n * onSaveHandler={handleSave}\n * />\n */\nexport const DynamicMapping = ({\n forceDisableMappingCTA,\n mappingType,\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n hasDerivedQuestions,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n surveyType,\n havingTypeDropdown,\n fields,\n setFields,\n surveyId,\n integrationName,\n customList,\n oldResponse,\n hasNamingModal,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n hasResponsePDF,\n}: DynamicMappingPropsType): JSX.Element => {\n const {\n ssMappingData,\n setSSMappingData,\n isEditConfirmationOpen,\n setIsEditConfirmationOpen,\n originalMappingData,\n setOriginalMappingData,\n originalConfigurationFields,\n setOriginalConfigurationFields,\n originalConfiguredFields,\n setOriginalConfiguredFields,\n originalImportResponse,\n setOriginalImportResponse,\n isInitialLoad,\n setIsInitialLoad,\n essentialFields,\n commonFields,\n } = useDynamicMappingState(fields);\n\n const hasFieldsChanged = useFieldChanges({\n editField,\n originalMappingData,\n ssMappingData,\n originalConfigurationFields,\n configurationFields: configuration.configurationFields,\n originalConfiguredFields,\n configuredFields: configuration.configuredFields,\n originalImportResponse,\n importResponse,\n isInitialLoad,\n });\n\n const handleSaveConfiguration = useCallback(async () => {\n return configuration.onSaveHandler();\n }, [configuration]);\n\n const handleNavigateConfigPage = useCallback(() => {\n navigateMappingPage(false);\n }, [navigateMappingPage]);\n\n const handleSave = useCallback(() => {\n onSaveHandler(editField?.id ? editField : {});\n }, [onSaveHandler, editField]);\n\n const isMultiMapping = useMemo(\n () => mappingType === 'MULTI_MAPPING',\n [mappingType]\n );\n\n const showConfiguration = useMemo(\n () => !isMappingPage && configuration.hasConfiguration,\n [isMappingPage, configuration.hasConfiguration]\n );\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: 'DM Sans, Roboto Mono, sans-serif',\n heading: 'DM Sans, Roboto Mono, sans-serif',\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: '100%' }}>\n <MappingHeader\n forceDisableMappingCTA={forceDisableMappingCTA}\n hasNamingModal={hasNamingModal}\n mappingType={mappingType ?? ''}\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSave}\n essentialFields={essentialFields}\n commonFields={commonFields}\n />\n\n {showConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: '$40' }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <>\n {isMultiMapping ? (\n <MultiMapping\n hasDerivedQuestions={hasDerivedQuestions}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n fields={fields}\n setFields={setFields}\n surveyDetails={surveyDetails}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n surveyId={surveyDetails.surveyId}\n token={token}\n apiURL={apiURL}\n integrationName={integrationName}\n customList={customList}\n oldResponse={oldResponse}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n />\n ) : (\n <Mapping\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n hasResponsePDF={hasResponsePDF}\n />\n )}\n </>\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n"],"names":["surveySparrowURL","useDynamicMappingState","useFieldChanges","useCallback","useMemo","ThemeProvider","TooltipProvider","Box","MappingHeader","Flex","ConfigurationSetup","MultiMapping","Mapping"],"mappings":"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"}
|
|
@@ -67,7 +67,15 @@ const FilterPill = ({
|
|
|
67
67
|
onDelete,
|
|
68
68
|
showError = false
|
|
69
69
|
}) => {
|
|
70
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
70
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
71
|
+
const [operatorDismissed, setOperatorDismissed] = React.useState(false);
|
|
72
|
+
const isConnectorMissing = !((_a = filterPillData.connector) == null ? void 0 : _a.value);
|
|
73
|
+
const effectiveShowError = showError && (!isConnectorMissing || operatorDismissed);
|
|
74
|
+
const handleOperatorOpenChange = (open) => {
|
|
75
|
+
if (!open && isConnectorMissing) {
|
|
76
|
+
setOperatorDismissed(true);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
71
79
|
const onChange = ({
|
|
72
80
|
selectedProperty,
|
|
73
81
|
selectorValue
|
|
@@ -91,12 +99,14 @@ const FilterPill = ({
|
|
|
91
99
|
setFilterPillData(newFilterPillData);
|
|
92
100
|
}
|
|
93
101
|
};
|
|
94
|
-
return /* @__PURE__ */ React.createElement(tooltip.TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ React.createElement(StyledFilterPill, { variant:
|
|
102
|
+
return /* @__PURE__ */ React.createElement(tooltip.TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ React.createElement(StyledFilterPill, { variant: effectiveShowError ? "error" : variant }, /* @__PURE__ */ React.createElement(FilterPillLabel, { icon, label: filterPillData.property.label, labelProps: { css: { color: "$neutral900" } } }), /* @__PURE__ */ React.createElement(flex.Flex, null, !((_b = filterPillData.connector) == null ? void 0 : _b.value) && /* @__PURE__ */ React.createElement(
|
|
95
103
|
cascaderDropdown.CascaderDropdown,
|
|
96
104
|
{
|
|
97
105
|
data: cascaderDropdownData,
|
|
98
106
|
selectorValue: filterPillData.value,
|
|
99
107
|
onChange,
|
|
108
|
+
defaultOpen: true,
|
|
109
|
+
onOpenChange: handleOperatorOpenChange,
|
|
100
110
|
dropdownContentProps: { align: "start" }
|
|
101
111
|
},
|
|
102
112
|
/* @__PURE__ */ React.createElement(StyledValueButton, { css: { borderTopRightRadius: "$lg", borderBottomRightRadius: "$lg" } }, /* @__PURE__ */ React.createElement(
|
|
@@ -105,14 +115,14 @@ const FilterPill = ({
|
|
|
105
115
|
css: __spreadValues({
|
|
106
116
|
color: "$neutral700",
|
|
107
117
|
padding: "3px $4 3px $1"
|
|
108
|
-
},
|
|
118
|
+
}, effectiveShowError && {
|
|
109
119
|
color: "$negative700",
|
|
110
120
|
fontWeight: "$5"
|
|
111
121
|
})
|
|
112
122
|
},
|
|
113
123
|
"Choose Condition"
|
|
114
124
|
))
|
|
115
|
-
), ((
|
|
125
|
+
), ((_c = filterPillData.connector) == null ? void 0 : _c.value) && /* @__PURE__ */ React.createElement(
|
|
116
126
|
cascaderDropdown.CascaderDropdown,
|
|
117
127
|
{
|
|
118
128
|
data: cascaderDropdownData,
|
|
@@ -120,11 +130,11 @@ const FilterPill = ({
|
|
|
120
130
|
onChange,
|
|
121
131
|
dropdownContentProps: { align: "start" }
|
|
122
132
|
},
|
|
123
|
-
/* @__PURE__ */ React.createElement(StyledValueButton, { css: __spreadValues({}, ((
|
|
133
|
+
/* @__PURE__ */ React.createElement(StyledValueButton, { css: __spreadValues({}, ((_d = filterPillData.connector) == null ? void 0 : _d.dataType) === "NO_VALUE" && {
|
|
124
134
|
borderTopRightRadius: "$lg",
|
|
125
135
|
borderBottomRightRadius: "$lg"
|
|
126
|
-
}) }, /* @__PURE__ */ React.createElement(text.Text, { css: { color: "$neutral700", padding: "3px $1 3px $1" } }, (
|
|
127
|
-
), ((
|
|
136
|
+
}) }, /* @__PURE__ */ React.createElement(text.Text, { css: { color: "$neutral700", padding: "3px $1 3px $1" } }, (_e = filterPillData.connector) == null ? void 0 : _e.label))
|
|
137
|
+
), ((_f = filterPillData.connector) == null ? void 0 : _f.value) && ((_g = filterPillData.connector) == null ? void 0 : _g.dataType) !== "NO_VALUE" && /* @__PURE__ */ React.createElement(
|
|
128
138
|
cascaderDropdown.CascaderDropdown,
|
|
129
139
|
{
|
|
130
140
|
data: cascaderDropdownData,
|
|
@@ -139,12 +149,12 @@ const FilterPill = ({
|
|
|
139
149
|
css: __spreadValues({
|
|
140
150
|
color: "$neutral900",
|
|
141
151
|
padding: "3px $4 3px $2"
|
|
142
|
-
},
|
|
152
|
+
}, effectiveShowError && {
|
|
143
153
|
color: "$negative700"
|
|
144
154
|
}),
|
|
145
155
|
weight: "medium"
|
|
146
156
|
},
|
|
147
|
-
(
|
|
157
|
+
(_h = getDisplayValue(filterPillData)) != null ? _h : "Choose Value"
|
|
148
158
|
))
|
|
149
159
|
)), /* @__PURE__ */ React.createElement(tooltip.Tooltip, { content: "Remove" }, /* @__PURE__ */ React.createElement(StyledCloseButton, { className: StyledItem.prefixClassName("filter-pill__close-button"), onClick: () => onDelete() }, /* @__PURE__ */ React.createElement(closeCircleFill.CloseCircleFillIcon, { size: 16 })))));
|
|
150
160
|
};
|