@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
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
1
|
+
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
2
2
|
import { fetchSurveyQuestions, fetchSurveyVariables, fetchContactProperties, fetchSurveyExpression } from '../../mapping/services/index.js';
|
|
3
|
-
import {
|
|
3
|
+
import { mappingPropertyValues, surveySparrowURL } from '../../commons/constants/index.js';
|
|
4
4
|
import '../../node_modules/dayjs/dayjs.min.js';
|
|
5
|
-
import { organizeQuestionsWithHierarchy, updateFieldEnabledStateWithHierarchy } from '../helpers/mapping.helpers.js';
|
|
5
|
+
import { stripResponsePdfProperty, organizeQuestionsWithHierarchy, updateFieldEnabledStateWithHierarchy } from '../helpers/mapping.helpers.js';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __defProps = Object.defineProperties;
|
|
@@ -33,9 +33,15 @@ const useMappingData = ({
|
|
|
33
33
|
setIsInitialLoad,
|
|
34
34
|
setOriginalMappingData,
|
|
35
35
|
ssMappingData: externalSsMappingData,
|
|
36
|
-
setSSMappingData: externalSetSSMappingData
|
|
36
|
+
setSSMappingData: externalSetSSMappingData,
|
|
37
|
+
hasResponsePDF
|
|
37
38
|
}) => {
|
|
38
39
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
40
|
+
const omitResponsePdf = hasResponsePDF !== true;
|
|
41
|
+
const baseMappingPropertyValues = useMemo(
|
|
42
|
+
() => omitResponsePdf ? mappingPropertyValues.filter((p) => p.id !== "RESPONSE_PDF") : mappingPropertyValues,
|
|
43
|
+
[omitResponsePdf]
|
|
44
|
+
);
|
|
39
45
|
const [loader, setLoader] = useState(true);
|
|
40
46
|
const [searchInput, setSearchInput] = useState("");
|
|
41
47
|
const [isApiData, setIsApiData] = useState(false);
|
|
@@ -65,18 +71,18 @@ const useMappingData = ({
|
|
|
65
71
|
[]
|
|
66
72
|
);
|
|
67
73
|
const fetchInitialMappingData = useCallback(async () => {
|
|
68
|
-
var _a2;
|
|
69
74
|
setLoader(true);
|
|
70
75
|
try {
|
|
71
76
|
if (surveyProperties) {
|
|
72
77
|
setIsApiData(false);
|
|
73
78
|
const { questions, variables, contactProperties, expressions, property, derivedQuestions } = surveyProperties;
|
|
79
|
+
const propertyForMapping = stripResponsePdfProperty(property, omitResponsePdf);
|
|
74
80
|
setSSMappingData({
|
|
75
81
|
questions: (questions == null ? void 0 : questions.length) ? modifiedMappingData(questions, "Select all Questions") : [],
|
|
76
82
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? modifiedMappingData(contactProperties, "Select all Contact Properties") : [],
|
|
77
83
|
variables: (variables == null ? void 0 : variables.length) ? modifiedMappingData(variables, "Select all Variables") : [],
|
|
78
84
|
expressions: (expressions == null ? void 0 : expressions.length) ? modifiedMappingData(expressions, "Select all Expressions") : [],
|
|
79
|
-
property: (
|
|
85
|
+
property: (propertyForMapping == null ? void 0 : propertyForMapping.length) ? modifiedMappingData(propertyForMapping, "Select all Properties") : [],
|
|
80
86
|
derivedQuestions: (derivedQuestions == null ? void 0 : derivedQuestions.length) ? modifiedMappingData(derivedQuestions, "Select all Enrich") : []
|
|
81
87
|
});
|
|
82
88
|
} else {
|
|
@@ -93,7 +99,7 @@ const useMappingData = ({
|
|
|
93
99
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? modifiedMappingData(contactProperties, "Select all Contact Properties") : [],
|
|
94
100
|
variables: (variables == null ? void 0 : variables.length) ? modifiedMappingData(variables, "Select all Variables") : [],
|
|
95
101
|
expressions: (expressions == null ? void 0 : expressions.length) ? modifiedMappingData(expressions, "Select all Expressions") : [],
|
|
96
|
-
property: (
|
|
102
|
+
property: (baseMappingPropertyValues == null ? void 0 : baseMappingPropertyValues.length) ? modifiedMappingData(baseMappingPropertyValues, "Select all Properties") : [],
|
|
97
103
|
derivedQuestions: []
|
|
98
104
|
});
|
|
99
105
|
}
|
|
@@ -102,9 +108,9 @@ const useMappingData = ({
|
|
|
102
108
|
} finally {
|
|
103
109
|
setLoader(false);
|
|
104
110
|
}
|
|
105
|
-
}, [surveyId, apiURL, token, surveyProperties, modifiedMappingData]);
|
|
111
|
+
}, [surveyId, apiURL, token, surveyProperties, modifiedMappingData, omitResponsePdf, baseMappingPropertyValues]);
|
|
106
112
|
const fetchAndMergeEditData = useCallback(async () => {
|
|
107
|
-
var _a2;
|
|
113
|
+
var _a2, _b2;
|
|
108
114
|
setLoader(true);
|
|
109
115
|
try {
|
|
110
116
|
const [questions, variables, contactProperties, expressions] = await Promise.all([
|
|
@@ -146,7 +152,7 @@ const useMappingData = ({
|
|
|
146
152
|
variables: mergeWithEnabled(variables || [], enabledVariableIds, "Select all Variables"),
|
|
147
153
|
contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, "Select all Contact Properties"),
|
|
148
154
|
expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, "Select all Expressions"),
|
|
149
|
-
property: mergeWithEnabled(
|
|
155
|
+
property: mergeWithEnabled(baseMappingPropertyValues || [], enabledPropertyIds, "Select all Properties"),
|
|
150
156
|
derivedQuestions: []
|
|
151
157
|
// Enrich not available from API
|
|
152
158
|
};
|
|
@@ -167,7 +173,7 @@ const useMappingData = ({
|
|
|
167
173
|
variables: processField(mappedFields == null ? void 0 : mappedFields.variables, "Select all Variables"),
|
|
168
174
|
contactProperties: processField(mappedFields == null ? void 0 : mappedFields.contactProperties, "Select all Contact Properties"),
|
|
169
175
|
expressions: processField(mappedFields == null ? void 0 : mappedFields.expressions, "Select all Expressions"),
|
|
170
|
-
property: processField(mappedFields == null ? void 0 : mappedFields.property, "Select all Properties"),
|
|
176
|
+
property: processField((_b2 = stripResponsePdfProperty(mappedFields == null ? void 0 : mappedFields.property, omitResponsePdf)) != null ? _b2 : [], "Select all Properties"),
|
|
171
177
|
derivedQuestions: processField(mappedFields == null ? void 0 : mappedFields.derivedQuestions, "Select all Enrich")
|
|
172
178
|
};
|
|
173
179
|
setSSMappingData(updatedSSMappingData);
|
|
@@ -175,7 +181,7 @@ const useMappingData = ({
|
|
|
175
181
|
} finally {
|
|
176
182
|
setLoader(false);
|
|
177
183
|
}
|
|
178
|
-
}, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData]);
|
|
184
|
+
}, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData, omitResponsePdf, baseMappingPropertyValues]);
|
|
179
185
|
const handleFieldValues = useCallback(
|
|
180
186
|
(type, id, value) => {
|
|
181
187
|
const useHierarchy = type === "questions" && isApiData;
|
|
@@ -225,7 +231,7 @@ const useMappingData = ({
|
|
|
225
231
|
});
|
|
226
232
|
}, []);
|
|
227
233
|
useEffect(() => {
|
|
228
|
-
var _a2;
|
|
234
|
+
var _a2, _b2;
|
|
229
235
|
if (!(editField == null ? void 0 : editField.id)) {
|
|
230
236
|
fetchInitialMappingData();
|
|
231
237
|
} else if (editField == null ? void 0 : editField.id) {
|
|
@@ -250,19 +256,22 @@ const useMappingData = ({
|
|
|
250
256
|
"Select all Contact Properties"
|
|
251
257
|
),
|
|
252
258
|
expressions: processField(mappedFields == null ? void 0 : mappedFields.expressions, "Select all Expressions"),
|
|
253
|
-
property: ensureSubmissionIdEnabled(
|
|
259
|
+
property: ensureSubmissionIdEnabled(
|
|
260
|
+
processField((_b2 = stripResponsePdfProperty(mappedFields == null ? void 0 : mappedFields.property, omitResponsePdf)) != null ? _b2 : [], "Select all Properties")
|
|
261
|
+
),
|
|
254
262
|
derivedQuestions: processField(mappedFields == null ? void 0 : mappedFields.derivedQuestions, "Select all Enrich")
|
|
255
263
|
};
|
|
256
264
|
setSSMappingData(updatedSSMappingData);
|
|
257
265
|
setOriginalMappingData(updatedSSMappingData);
|
|
258
266
|
} else {
|
|
259
267
|
const { questions, variables, contactProperties, expressions, property, derivedQuestions } = surveyProperties || {};
|
|
268
|
+
const rawProperty = stripResponsePdfProperty(property, omitResponsePdf);
|
|
260
269
|
const updatedSSMappingData = {
|
|
261
270
|
questions: (questions == null ? void 0 : questions.length) ? questions : [],
|
|
262
271
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? contactProperties : [],
|
|
263
272
|
variables: (variables == null ? void 0 : variables.length) ? variables : [],
|
|
264
273
|
expressions: (expressions == null ? void 0 : expressions.length) ? expressions : [],
|
|
265
|
-
property: (
|
|
274
|
+
property: (rawProperty == null ? void 0 : rawProperty.length) ? rawProperty : [],
|
|
266
275
|
derivedQuestions: (derivedQuestions == null ? void 0 : derivedQuestions.length) ? derivedQuestions : []
|
|
267
276
|
};
|
|
268
277
|
setSSMappingData(updatedSSMappingData);
|
|
@@ -272,7 +281,7 @@ const useMappingData = ({
|
|
|
272
281
|
}
|
|
273
282
|
}
|
|
274
283
|
setIsInitialLoad(false);
|
|
275
|
-
}, [token, surveyId]);
|
|
284
|
+
}, [token, surveyId, hasResponsePDF]);
|
|
276
285
|
useEffect(() => {
|
|
277
286
|
var _a2;
|
|
278
287
|
const importMethod = (_a2 = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a2.importMethod;
|
|
@@ -286,7 +295,7 @@ const useMappingData = ({
|
|
|
286
295
|
return modifiedMappingData(field, label, field.every((item) => item.isEnabled));
|
|
287
296
|
};
|
|
288
297
|
setSSMappingData((prevData) => {
|
|
289
|
-
var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h, _i, _j, _k, _l;
|
|
298
|
+
var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h, _i, _j, _k, _l, _m;
|
|
290
299
|
const newData = {
|
|
291
300
|
questions: processField((_b2 = (_a3 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _a3.mappedFields) == null ? void 0 : _b2.questions, "Select all Questions"),
|
|
292
301
|
variables: processField((_d2 = (_c2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _c2.mappedFields) == null ? void 0 : _d2.variables, "Select all Variables"),
|
|
@@ -295,9 +304,14 @@ const useMappingData = ({
|
|
|
295
304
|
"Select all Contact Properties"
|
|
296
305
|
),
|
|
297
306
|
expressions: processField((_h = (_g2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _g2.mappedFields) == null ? void 0 : _h.expressions, "Select all Expressions"),
|
|
298
|
-
property: ensureSubmissionIdEnabled(
|
|
307
|
+
property: ensureSubmissionIdEnabled(
|
|
308
|
+
processField(
|
|
309
|
+
(_k = stripResponsePdfProperty((_j = (_i = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _i.mappedFields) == null ? void 0 : _j.property, omitResponsePdf)) != null ? _k : [],
|
|
310
|
+
"Select all Properties"
|
|
311
|
+
)
|
|
312
|
+
),
|
|
299
313
|
derivedQuestions: processField(
|
|
300
|
-
(
|
|
314
|
+
(_m = (_l = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _l.mappedFields) == null ? void 0 : _m.derivedQuestions,
|
|
301
315
|
"Select all Enrich"
|
|
302
316
|
)
|
|
303
317
|
};
|
|
@@ -310,13 +324,14 @@ const useMappingData = ({
|
|
|
310
324
|
setSSMappingData((prevData) => {
|
|
311
325
|
var _a3, _b2, _c2, _d2, _e2, _f2;
|
|
312
326
|
const hasAllId = (arr) => arr == null ? void 0 : arr.some((item) => item.id === "ALL");
|
|
327
|
+
const strippedPrevProperty = stripResponsePdfProperty(prevData == null ? void 0 : prevData.property, omitResponsePdf);
|
|
313
328
|
const newData = {
|
|
314
329
|
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") : [],
|
|
315
330
|
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") : [],
|
|
316
331
|
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") : [],
|
|
317
332
|
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") : [],
|
|
318
333
|
property: ensureSubmissionIdEnabled(
|
|
319
|
-
hasAllId(prevData == null ? void 0 : prevData.property) ?
|
|
334
|
+
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") : []
|
|
320
335
|
),
|
|
321
336
|
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") : []
|
|
322
337
|
};
|
|
@@ -327,7 +342,7 @@ const useMappingData = ({
|
|
|
327
342
|
});
|
|
328
343
|
}
|
|
329
344
|
}
|
|
330
|
-
}, [(_a = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a.importMethod]);
|
|
345
|
+
}, [(_a = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a.importMethod, hasResponsePDF]);
|
|
331
346
|
const handleMappingDataChange = useCallback(
|
|
332
347
|
(mappingData) => {
|
|
333
348
|
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":["_a","_b","_c","_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":["_a","_b","_c","_d","_e","_f","_g"],"mappings":"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"}
|
|
@@ -42,7 +42,8 @@ const DynamicMapping = ({
|
|
|
42
42
|
mappingConditions,
|
|
43
43
|
setMappingConditions,
|
|
44
44
|
conditionData,
|
|
45
|
-
conditionDescription
|
|
45
|
+
conditionDescription,
|
|
46
|
+
hasResponsePDF
|
|
46
47
|
}) => {
|
|
47
48
|
const {
|
|
48
49
|
ssMappingData,
|
|
@@ -177,7 +178,8 @@ const DynamicMapping = ({
|
|
|
177
178
|
mappingConditions,
|
|
178
179
|
setMappingConditions,
|
|
179
180
|
conditionData,
|
|
180
|
-
conditionDescription
|
|
181
|
+
conditionDescription,
|
|
182
|
+
hasResponsePDF
|
|
181
183
|
}
|
|
182
184
|
))))
|
|
183
185
|
);
|
|
@@ -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":["React","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":["React","MultiMapping","Mapping"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { styled } from '../packages/frontend-templates/slitches.config.js';
|
|
2
2
|
import { prefixClassName } from '../cascader-dropdown/styled/StyledItem.js';
|
|
3
|
-
import React__default from 'react';
|
|
3
|
+
import React__default, { useState } from 'react';
|
|
4
4
|
import { CascaderDropdown } from '../cascader-dropdown/cascader-dropdown.js';
|
|
5
5
|
import { dataTypes, optionTypes, initialFilterValueSelectorValue } from '../cascader-dropdown/helpers/cascader-dropdown-constants.js';
|
|
6
6
|
import FilterPillValueSelector from './filter-pill-value-selector.js';
|
|
@@ -65,7 +65,15 @@ const FilterPill = ({
|
|
|
65
65
|
onDelete,
|
|
66
66
|
showError = false
|
|
67
67
|
}) => {
|
|
68
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
68
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
69
|
+
const [operatorDismissed, setOperatorDismissed] = useState(false);
|
|
70
|
+
const isConnectorMissing = !((_a = filterPillData.connector) == null ? void 0 : _a.value);
|
|
71
|
+
const effectiveShowError = showError && (!isConnectorMissing || operatorDismissed);
|
|
72
|
+
const handleOperatorOpenChange = (open) => {
|
|
73
|
+
if (!open && isConnectorMissing) {
|
|
74
|
+
setOperatorDismissed(true);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
69
77
|
const onChange = ({
|
|
70
78
|
selectedProperty,
|
|
71
79
|
selectorValue
|
|
@@ -89,12 +97,14 @@ const FilterPill = ({
|
|
|
89
97
|
setFilterPillData(newFilterPillData);
|
|
90
98
|
}
|
|
91
99
|
};
|
|
92
|
-
return /* @__PURE__ */ React__default.createElement(TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ React__default.createElement(StyledFilterPill, { variant:
|
|
100
|
+
return /* @__PURE__ */ React__default.createElement(TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ React__default.createElement(StyledFilterPill, { variant: effectiveShowError ? "error" : variant }, /* @__PURE__ */ React__default.createElement(FilterPillLabel, { icon, label: filterPillData.property.label, labelProps: { css: { color: "$neutral900" } } }), /* @__PURE__ */ React__default.createElement(Flex, null, !((_b = filterPillData.connector) == null ? void 0 : _b.value) && /* @__PURE__ */ React__default.createElement(
|
|
93
101
|
CascaderDropdown,
|
|
94
102
|
{
|
|
95
103
|
data: cascaderDropdownData,
|
|
96
104
|
selectorValue: filterPillData.value,
|
|
97
105
|
onChange,
|
|
106
|
+
defaultOpen: true,
|
|
107
|
+
onOpenChange: handleOperatorOpenChange,
|
|
98
108
|
dropdownContentProps: { align: "start" }
|
|
99
109
|
},
|
|
100
110
|
/* @__PURE__ */ React__default.createElement(StyledValueButton, { css: { borderTopRightRadius: "$lg", borderBottomRightRadius: "$lg" } }, /* @__PURE__ */ React__default.createElement(
|
|
@@ -103,14 +113,14 @@ const FilterPill = ({
|
|
|
103
113
|
css: __spreadValues({
|
|
104
114
|
color: "$neutral700",
|
|
105
115
|
padding: "3px $4 3px $1"
|
|
106
|
-
},
|
|
116
|
+
}, effectiveShowError && {
|
|
107
117
|
color: "$negative700",
|
|
108
118
|
fontWeight: "$5"
|
|
109
119
|
})
|
|
110
120
|
},
|
|
111
121
|
"Choose Condition"
|
|
112
122
|
))
|
|
113
|
-
), ((
|
|
123
|
+
), ((_c = filterPillData.connector) == null ? void 0 : _c.value) && /* @__PURE__ */ React__default.createElement(
|
|
114
124
|
CascaderDropdown,
|
|
115
125
|
{
|
|
116
126
|
data: cascaderDropdownData,
|
|
@@ -118,11 +128,11 @@ const FilterPill = ({
|
|
|
118
128
|
onChange,
|
|
119
129
|
dropdownContentProps: { align: "start" }
|
|
120
130
|
},
|
|
121
|
-
/* @__PURE__ */ React__default.createElement(StyledValueButton, { css: __spreadValues({}, ((
|
|
131
|
+
/* @__PURE__ */ React__default.createElement(StyledValueButton, { css: __spreadValues({}, ((_d = filterPillData.connector) == null ? void 0 : _d.dataType) === "NO_VALUE" && {
|
|
122
132
|
borderTopRightRadius: "$lg",
|
|
123
133
|
borderBottomRightRadius: "$lg"
|
|
124
|
-
}) }, /* @__PURE__ */ React__default.createElement(Text, { css: { color: "$neutral700", padding: "3px $1 3px $1" } }, (
|
|
125
|
-
), ((
|
|
134
|
+
}) }, /* @__PURE__ */ React__default.createElement(Text, { css: { color: "$neutral700", padding: "3px $1 3px $1" } }, (_e = filterPillData.connector) == null ? void 0 : _e.label))
|
|
135
|
+
), ((_f = filterPillData.connector) == null ? void 0 : _f.value) && ((_g = filterPillData.connector) == null ? void 0 : _g.dataType) !== "NO_VALUE" && /* @__PURE__ */ React__default.createElement(
|
|
126
136
|
CascaderDropdown,
|
|
127
137
|
{
|
|
128
138
|
data: cascaderDropdownData,
|
|
@@ -137,12 +147,12 @@ const FilterPill = ({
|
|
|
137
147
|
css: __spreadValues({
|
|
138
148
|
color: "$neutral900",
|
|
139
149
|
padding: "3px $4 3px $2"
|
|
140
|
-
},
|
|
150
|
+
}, effectiveShowError && {
|
|
141
151
|
color: "$negative700"
|
|
142
152
|
}),
|
|
143
153
|
weight: "medium"
|
|
144
154
|
},
|
|
145
|
-
(
|
|
155
|
+
(_h = getDisplayValue(filterPillData)) != null ? _h : "Choose Value"
|
|
146
156
|
))
|
|
147
157
|
)), /* @__PURE__ */ React__default.createElement(Tooltip, { content: "Remove" }, /* @__PURE__ */ React__default.createElement(StyledCloseButton, { className: prefixClassName("filter-pill__close-button"), onClick: () => onDelete() }, /* @__PURE__ */ React__default.createElement(CloseCircleFillIcon, { size: 16 })))));
|
|
148
158
|
};
|