@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.
Files changed (35) hide show
  1. package/README.md +663 -0
  2. package/dist/cjs/cascader-dropdown/cascader-dropdown-provider.js +17 -1
  3. package/dist/cjs/cascader-dropdown/cascader-dropdown-provider.js.map +1 -1
  4. package/dist/cjs/cascader-dropdown/cascader-dropdown.js +5 -1
  5. package/dist/cjs/cascader-dropdown/cascader-dropdown.js.map +1 -1
  6. package/dist/cjs/dynamic-mapping/components/mapping.js +4 -2
  7. package/dist/cjs/dynamic-mapping/components/mapping.js.map +1 -1
  8. package/dist/cjs/dynamic-mapping/constants/condition-operators.js +1 -0
  9. package/dist/cjs/dynamic-mapping/constants/condition-operators.js.map +1 -1
  10. package/dist/cjs/dynamic-mapping/helpers/mapping.helpers.js +10 -0
  11. package/dist/cjs/dynamic-mapping/helpers/mapping.helpers.js.map +1 -1
  12. package/dist/cjs/dynamic-mapping/hooks/use-mapping-data.js +44 -29
  13. package/dist/cjs/dynamic-mapping/hooks/use-mapping-data.js.map +1 -1
  14. package/dist/cjs/dynamic-mapping/index.js +4 -2
  15. package/dist/cjs/dynamic-mapping/index.js.map +1 -1
  16. package/dist/cjs/filter/filter-pill.js +19 -9
  17. package/dist/cjs/filter/filter-pill.js.map +1 -1
  18. package/dist/es/cascader-dropdown/cascader-dropdown-provider.js +18 -2
  19. package/dist/es/cascader-dropdown/cascader-dropdown-provider.js.map +1 -1
  20. package/dist/es/cascader-dropdown/cascader-dropdown.js +5 -1
  21. package/dist/es/cascader-dropdown/cascader-dropdown.js.map +1 -1
  22. package/dist/es/dynamic-mapping/components/mapping.js +4 -2
  23. package/dist/es/dynamic-mapping/components/mapping.js.map +1 -1
  24. package/dist/es/dynamic-mapping/constants/condition-operators.js +1 -0
  25. package/dist/es/dynamic-mapping/constants/condition-operators.js.map +1 -1
  26. package/dist/es/dynamic-mapping/helpers/mapping.helpers.js +10 -1
  27. package/dist/es/dynamic-mapping/helpers/mapping.helpers.js.map +1 -1
  28. package/dist/es/dynamic-mapping/hooks/use-mapping-data.js +36 -21
  29. package/dist/es/dynamic-mapping/hooks/use-mapping-data.js.map +1 -1
  30. package/dist/es/dynamic-mapping/index.js +4 -2
  31. package/dist/es/dynamic-mapping/index.js.map +1 -1
  32. package/dist/es/filter/filter-pill.js +20 -10
  33. package/dist/es/filter/filter-pill.js.map +1 -1
  34. package/dist/index.d.ts +6 -2
  35. 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 { surveySparrowURL, mappingPropertyValues } from '../../commons/constants/index.js';
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: (property == null ? void 0 : property.length) ? modifiedMappingData(property, "Select all Properties") : [],
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: ((_a2 = mappingPropertyValues) == null ? void 0 : _a2.length) ? modifiedMappingData(mappingPropertyValues, "Select all Properties") : [],
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(mappingPropertyValues || [], enabledPropertyIds, "Select all Properties"),
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(processField(mappedFields == null ? void 0 : mappedFields.property, "Select all Properties")),
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: (property == null ? void 0 : property.length) ? 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(processField((_j = (_i = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _i.mappedFields) == null ? void 0 : _j.property, "Select all Properties")),
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
- (_l = (_k = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _k.mappedFields) == null ? void 0 : _l.derivedQuestions,
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) ? prevData == null ? void 0 : prevData.property : ((_e2 = prevData == null ? void 0 : prevData.property) == null ? void 0 : _e2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.property, "Select all Properties") : []
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: showError ? "error" : variant }, /* @__PURE__ */ React__default.createElement(FilterPillLabel, { icon, label: filterPillData.property.label, labelProps: { css: { color: "$neutral900" } } }), /* @__PURE__ */ React__default.createElement(Flex, null, !((_a = filterPillData.connector) == null ? void 0 : _a.value) && /* @__PURE__ */ React__default.createElement(
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
- }, showError && {
116
+ }, effectiveShowError && {
107
117
  color: "$negative700",
108
118
  fontWeight: "$5"
109
119
  })
110
120
  },
111
121
  "Choose Condition"
112
122
  ))
113
- ), ((_b = filterPillData.connector) == null ? void 0 : _b.value) && /* @__PURE__ */ React__default.createElement(
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({}, ((_c = filterPillData.connector) == null ? void 0 : _c.dataType) === "NO_VALUE" && {
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" } }, (_d = filterPillData.connector) == null ? void 0 : _d.label))
125
- ), ((_e = filterPillData.connector) == null ? void 0 : _e.value) && ((_f = filterPillData.connector) == null ? void 0 : _f.dataType) !== "NO_VALUE" && /* @__PURE__ */ React__default.createElement(
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
- }, showError && {
150
+ }, effectiveShowError && {
141
151
  color: "$negative700"
142
152
  }),
143
153
  weight: "medium"
144
154
  },
145
- (_g = getDisplayValue(filterPillData)) != null ? _g : "Choose Value"
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
  };