@sparrowengg/integrations-templates-frontend 6.0.7 → 7.0.0-bulkify.2
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/dynamic-mapping/components/mapping.js +4 -2
- package/dist/cjs/dynamic-mapping/components/mapping.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/es/dynamic-mapping/components/mapping.js +4 -2
- package/dist/es/dynamic-mapping/components/mapping.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/index.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mapping-data.js","sources":["../../../../src/dynamic-mapping/hooks/use-mapping-data.ts"],"sourcesContent":["/* ----- Imports ----- */\n\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport {\n fetchSurveyQuestions,\n fetchSurveyVariables,\n fetchContactProperties,\n fetchSurveyExpression,\n} from '../../mapping/services';\nimport { surveySparrowURL, mappingPropertyValues } from '../../commons/constants';\nimport {\n processFieldForMapping,\n updateFieldEnabledState,\n organizeQuestionsWithHierarchy,\n updateFieldEnabledStateWithHierarchy,\n} from '../helpers';\nimport { MappingData } from '../../commons/types/enhanced';\n\n/* ----- Types / Interfaces ----- */\n\ninterface UseMappingDataProps {\n surveyId: string | number;\n apiURL?: string;\n token?: string;\n surveyProperties?: any;\n importResponse: any;\n editField?: any;\n setIsInitialLoad: (value: boolean) => void;\n setOriginalMappingData: (value: MappingData) => void;\n ssMappingData?: MappingData;\n setSSMappingData?: React.Dispatch<React.SetStateAction<MappingData>>;\n}\n\ninterface UseMappingDataReturn {\n loader: boolean;\n searchInput: string;\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\n ssMappingData: MappingData;\n setSSMappingData: React.Dispatch<React.SetStateAction<MappingData>>;\n handleFieldValues: (type: string, id: string | number, value: boolean) => void;\n getMappingCount: (mappingField: string) => number;\n getAllMappingCount: (mappingField: string) => number;\n isApiData: boolean;\n}\n\n/* ----- Main Hook ----- */\n\n/**\n * Custom hook to manage mapping data fetching and state\n * \n * @param {UseMappingDataProps} props - Props for mapping data\n * @returns {UseMappingDataReturn} State and handlers for mapping data\n * \n * @example\n * const { ssMappingData, handleFieldValues } = useMappingData({\n * surveyId,\n * token,\n * importResponse,\n * });\n */\nexport const useMappingData = ({\n surveyId,\n apiURL = surveySparrowURL,\n token,\n surveyProperties,\n importResponse,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n ssMappingData: externalSsMappingData,\n setSSMappingData: externalSetSSMappingData,\n}: UseMappingDataProps): UseMappingDataReturn => {\n const [loader, setLoader] = useState(true);\n const [searchInput, setSearchInput] = useState('');\n const [isApiData, setIsApiData] = useState(false);\n \n // Use external state if provided, otherwise use internal state\n const [internalSsMappingData, internalSetSSMappingData] = useState<MappingData>({\n questions: [],\n variables: [],\n contactProperties: [],\n expressions: [],\n property: [],\n derivedQuestions: [],\n });\n\n const ssMappingData = externalSsMappingData ?? internalSsMappingData;\n const setSSMappingData = externalSetSSMappingData ?? internalSetSSMappingData;\n\n const modifiedMappingData = useCallback(\n (mappingData: any, commonLabel: string, isEnabled: boolean = false) => {\n const fields = mappingData.map((data: any) => ({\n ...data,\n id: data?.id ?? data?.name,\n name: data?.rtxt ?? data?.name,\n isEnabled: data?.isEnabled ?? false,\n }));\n fields.unshift({ id: 'ALL', name: commonLabel, isEnabled });\n return fields;\n },\n []\n );\n\n const fetchInitialMappingData = useCallback(async () => {\n setLoader(true);\n try {\n if (surveyProperties) {\n // Data from surveyProperties - no hierarchy processing needed\n setIsApiData(false);\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties;\n setSSMappingData({\n questions: questions?.length\n ? modifiedMappingData(questions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: property?.length ? modifiedMappingData(property, 'Select all Properties') : [],\n derivedQuestions: derivedQuestions?.length\n ? modifiedMappingData(derivedQuestions, 'Select all Enrich')\n : [],\n });\n } else {\n // Data from API - apply hierarchy processing for questions\n setIsApiData(true);\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n \n // Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n \n setSSMappingData({\n questions: organizedQuestions?.length\n ? modifiedMappingData(organizedQuestions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: mappingPropertyValues?.length\n ? modifiedMappingData(mappingPropertyValues, 'Select all Properties')\n : [],\n derivedQuestions: [],\n });\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoader(false);\n }\n }, [surveyId, apiURL, token, surveyProperties, modifiedMappingData]);\n\n /**\n * Fetches data from API and merges with enabled states from edit data\n * Used in edit flow when token and apiURL are available\n */\n const fetchAndMergeEditData = useCallback(async () => {\n setLoader(true);\n try {\n // 1. Fetch fresh data from API\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n\n // 2. Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n\n // 3. Get enabled IDs from edit data (mappedFields or surveyProperties)\n const editMappedFields = editField?.fieldValues?.mappedFields;\n const getEnabledIds = (fields: any[]) => {\n if (!fields?.length) return new Set<any>();\n return new Set(\n fields\n .filter((f) => f.isEnabled)\n .map((f) => f.id ?? f.name)\n );\n };\n\n const enabledQuestionIds = getEnabledIds(editMappedFields?.questions || surveyProperties?.questions);\n const enabledVariableIds = getEnabledIds(editMappedFields?.variables || surveyProperties?.variables);\n const enabledContactPropertyIds = getEnabledIds(editMappedFields?.contactProperties || surveyProperties?.contactProperties);\n const enabledExpressionIds = getEnabledIds(editMappedFields?.expressions || surveyProperties?.expressions);\n const enabledPropertyIds = getEnabledIds(editMappedFields?.property || surveyProperties?.property);\n const enabledDerivedQuestionIds = getEnabledIds(editMappedFields?.derivedQuestions || surveyProperties?.derivedQuestions);\n\n // 4. Merge: apply isEnabled based on edit data\n const mergeWithEnabled = (apiData: any[], enabledIds: Set<any>, label: string) => {\n if (!apiData?.length) return [];\n const merged = apiData.map((item) => ({\n ...item,\n isEnabled: enabledIds.has(item.id) || enabledIds.has(item.name),\n }));\n const allEnabled = merged.every((m) => m.isEnabled);\n return modifiedMappingData(merged, label, allEnabled);\n };\n\n // 5. Set data with isApiData = true for hierarchy support\n setIsApiData(true);\n const updatedSSMappingData = {\n questions: mergeWithEnabled(organizedQuestions, enabledQuestionIds, 'Select all Questions'),\n variables: mergeWithEnabled(variables || [], enabledVariableIds, 'Select all Variables'),\n contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, 'Select all Contact Properties'),\n expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, 'Select all Expressions'),\n property: mergeWithEnabled(mappingPropertyValues || [], enabledPropertyIds, 'Select all Properties'),\n derivedQuestions: [], // Enrich not available from API\n };\n \n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } catch (error) {\n console.error('Error fetching and merging edit data:', error);\n // Fallback to existing behavior on error\n const { fieldValues: { mappedFields } } = editField;\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(mappedFields?.contactProperties, 'Select all Contact Properties'),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: processField(mappedFields?.property, 'Select all Properties'),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } finally {\n setLoader(false);\n }\n }, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData]);\n\n const handleFieldValues = useCallback(\n (type: string, id: string | number, value: boolean) => {\n // Use hierarchical update for questions when data is from API\n const useHierarchy = type === 'questions' && isApiData;\n const updatedFields = updateFieldEnabledStateWithHierarchy(\n ssMappingData[type as keyof MappingData],\n id,\n value,\n useHierarchy\n );\n const mappedFields = {\n ...ssMappingData,\n [type]: updatedFields,\n };\n setSSMappingData(mappedFields);\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappedFields,\n });\n },\n [ssMappingData, importResponse, isApiData]\n );\n\n const getMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.filter((field: any) => field?.id !== 'ALL' && field.isEnabled).length || 0;\n },\n [ssMappingData]\n );\n\n const getAllMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.length || 0;\n },\n [ssMappingData]\n );\n\n /**\n * Ensures SUBMISSION_ID property is enabled, disabled and has tooltip when in SELECTED_DATA mode\n */\n const ensureSubmissionIdEnabled = useCallback((propertyFields: any[]) => {\n if (!propertyFields?.length) return propertyFields;\n return propertyFields.map((field: any) => {\n if (field.id === 'SUBMISSION_ID') {\n return {\n ...field,\n isEnabled: true,\n disabled: true,\n tooltip: 'This is a mandatory field',\n };\n }\n return field;\n });\n }, []);\n\n useEffect(() => {\n if (!editField?.id) {\n fetchInitialMappingData();\n } else if (editField?.id) {\n // Edit flow - check if we should fetch from API for hierarchy support\n const shouldFetchFromApi = !!token && !!apiURL;\n \n if (shouldFetchFromApi) {\n // Fetch from API and merge with enabled states from edit data\n // This ensures parent-child hierarchy metadata is available\n fetchAndMergeEditData();\n } else {\n // Fallback: use existing behavior when token/apiURL not available\n const { fieldValues: { mappedFields } } = editField;\n if (importResponse?.value?.importMethod === 'SELECTED_DATA') {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(processField(mappedFields?.property, 'Select all Properties')),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } else {\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties || {};\n const updatedSSMappingData = {\n questions: questions?.length ? questions : [],\n contactProperties: contactProperties?.length ? contactProperties : [],\n variables: variables?.length ? variables : [],\n expressions: expressions?.length ? expressions : [],\n property: property?.length ? property : [],\n derivedQuestions: derivedQuestions?.length ? derivedQuestions : [],\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n }\n setLoader(false);\n }\n }\n setIsInitialLoad(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token, surveyId]);\n\n useEffect(() => {\n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SELECTED_DATA') {\n if (editField?.id) {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n \n setSSMappingData((prevData) => {\n const newData = {\n questions: processField(editField?.fieldValues?.mappedFields?.questions, 'Select all Questions'),\n variables: processField(editField?.fieldValues?.mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n editField?.fieldValues?.mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(editField?.fieldValues?.mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(processField(editField?.fieldValues?.mappedFields?.property, 'Select all Properties')),\n derivedQuestions: processField(\n editField?.fieldValues?.mappedFields?.derivedQuestions,\n 'Select all Enrich'\n ),\n };\n \n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n } else {\n setSSMappingData((prevData) => {\n const hasAllId = (arr: any[]) => arr?.some((item: any) => item.id === 'ALL');\n \n const newData = {\n questions: hasAllId(prevData?.questions)\n ? prevData?.questions\n : prevData?.questions?.length\n ? modifiedMappingData(prevData?.questions, 'Select all Questions')\n : [],\n variables: hasAllId(prevData?.variables)\n ? prevData?.variables\n : prevData?.variables?.length\n ? modifiedMappingData(prevData?.variables, 'Select all Variables')\n : [],\n contactProperties: hasAllId(prevData?.contactProperties)\n ? prevData?.contactProperties\n : prevData?.contactProperties?.length\n ? modifiedMappingData(prevData?.contactProperties, 'Select all Contact Properties')\n : [],\n expressions: hasAllId(prevData?.expressions)\n ? prevData?.expressions\n : prevData?.expressions?.length\n ? modifiedMappingData(prevData?.expressions, 'Select all Expressions')\n : [],\n property: ensureSubmissionIdEnabled(\n hasAllId(prevData?.property)\n ? prevData?.property\n : prevData?.property?.length\n ? modifiedMappingData(prevData?.property, 'Select all Properties')\n : []\n ),\n derivedQuestions: hasAllId(prevData?.derivedQuestions)\n ? prevData?.derivedQuestions\n : prevData?.derivedQuestions?.length\n ? modifiedMappingData(prevData?.derivedQuestions, 'Select all Enrich')\n : [],\n };\n \n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [importResponse?.value?.importMethod]);\n\n // Memoize the onChangeHandler to prevent unnecessary re-renders\n const handleMappingDataChange = useCallback(\n (mappingData: MappingData) => {\n if (!importResponse?.onChangeHandler) return;\n \n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SEND_ALL_DATA') {\n const updatedFieldValues = Object.keys(mappingData).reduce((acc: any, key: any) => {\n acc[key] = mappingData[key as keyof MappingData].map((field: any) => {\n if (field?.id !== 'ALL') {\n return { ...field, isEnabled: true };\n }\n return field;\n });\n return acc;\n }, {});\n \n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: updatedFieldValues,\n });\n } else if (importMethod === 'SELECTED_DATA') {\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappingData,\n });\n }\n },\n [importResponse]\n );\n\n useEffect(() => {\n if (\n ssMappingData?.questions?.length ||\n ssMappingData?.variables?.length ||\n ssMappingData?.contactProperties?.length ||\n ssMappingData?.expressions?.length ||\n ssMappingData?.property?.length\n ) {\n handleMappingDataChange(ssMappingData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n ssMappingData?.questions?.length,\n ssMappingData?.variables?.length,\n ssMappingData?.contactProperties?.length,\n ssMappingData?.expressions?.length,\n ssMappingData?.property?.length,\n importResponse?.value?.importMethod,\n ]);\n\n return {\n loader,\n searchInput,\n setSearchInput,\n ssMappingData,\n setSSMappingData,\n handleFieldValues,\n getMappingCount,\n getAllMappingCount,\n isApiData,\n };\n};\n"],"names":["surveySparrowURL","useState","useCallback","_a","_b","_c","fetchSurveyQuestions","fetchSurveyVariables","fetchContactProperties","fetchSurveyExpression","organizeQuestionsWithHierarchy","mappingPropertyValues","updateFieldEnabledStateWithHierarchy","useEffect","_d","_e","_f","_g"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-mapping-data.js","sources":["../../../../src/dynamic-mapping/hooks/use-mapping-data.ts"],"sourcesContent":["/* ----- Imports ----- */\n\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport {\n fetchSurveyQuestions,\n fetchSurveyVariables,\n fetchContactProperties,\n fetchSurveyExpression,\n} from '../../mapping/services';\nimport { surveySparrowURL, mappingPropertyValues } from '../../commons/constants';\nimport {\n processFieldForMapping,\n updateFieldEnabledState,\n organizeQuestionsWithHierarchy,\n updateFieldEnabledStateWithHierarchy,\n stripResponsePdfProperty,\n} from '../helpers';\nimport { MappingData } from '../../commons/types/enhanced';\n\n/* ----- Types / Interfaces ----- */\n\ninterface UseMappingDataProps {\n surveyId: string | number;\n apiURL?: string;\n token?: string;\n surveyProperties?: any;\n importResponse: any;\n editField?: any;\n setIsInitialLoad: (value: boolean) => void;\n setOriginalMappingData: (value: MappingData) => void;\n ssMappingData?: MappingData;\n setSSMappingData?: React.Dispatch<React.SetStateAction<MappingData>>;\n /** When true, includes RESPONSE_PDF; when omitted or false, it is hidden. */\n hasResponsePDF?: boolean;\n}\n\ninterface UseMappingDataReturn {\n loader: boolean;\n searchInput: string;\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\n ssMappingData: MappingData;\n setSSMappingData: React.Dispatch<React.SetStateAction<MappingData>>;\n handleFieldValues: (type: string, id: string | number, value: boolean) => void;\n getMappingCount: (mappingField: string) => number;\n getAllMappingCount: (mappingField: string) => number;\n isApiData: boolean;\n}\n\n/* ----- Main Hook ----- */\n\n/**\n * Custom hook to manage mapping data fetching and state\n * \n * @param {UseMappingDataProps} props - Props for mapping data\n * @returns {UseMappingDataReturn} State and handlers for mapping data\n * \n * @example\n * const { ssMappingData, handleFieldValues } = useMappingData({\n * surveyId,\n * token,\n * importResponse,\n * });\n */\nexport const useMappingData = ({\n surveyId,\n apiURL = surveySparrowURL,\n token,\n surveyProperties,\n importResponse,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n ssMappingData: externalSsMappingData,\n setSSMappingData: externalSetSSMappingData,\n hasResponsePDF,\n}: UseMappingDataProps): UseMappingDataReturn => {\n const omitResponsePdf = hasResponsePDF !== true;\n\n const baseMappingPropertyValues = useMemo(\n () =>\n omitResponsePdf\n ? mappingPropertyValues.filter((p) => p.id !== 'RESPONSE_PDF')\n : mappingPropertyValues,\n [omitResponsePdf]\n );\n const [loader, setLoader] = useState(true);\n const [searchInput, setSearchInput] = useState('');\n const [isApiData, setIsApiData] = useState(false);\n \n // Use external state if provided, otherwise use internal state\n const [internalSsMappingData, internalSetSSMappingData] = useState<MappingData>({\n questions: [],\n variables: [],\n contactProperties: [],\n expressions: [],\n property: [],\n derivedQuestions: [],\n });\n\n const ssMappingData = externalSsMappingData ?? internalSsMappingData;\n const setSSMappingData = externalSetSSMappingData ?? internalSetSSMappingData;\n\n const modifiedMappingData = useCallback(\n (mappingData: any, commonLabel: string, isEnabled: boolean = false) => {\n const fields = mappingData.map((data: any) => ({\n ...data,\n id: data?.id ?? data?.name,\n name: data?.rtxt ?? data?.name,\n isEnabled: data?.isEnabled ?? false,\n }));\n fields.unshift({ id: 'ALL', name: commonLabel, isEnabled });\n return fields;\n },\n []\n );\n\n const fetchInitialMappingData = useCallback(async () => {\n setLoader(true);\n try {\n if (surveyProperties) {\n // Data from surveyProperties - no hierarchy processing needed\n setIsApiData(false);\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties;\n const propertyForMapping = stripResponsePdfProperty(property, omitResponsePdf);\n setSSMappingData({\n questions: questions?.length\n ? modifiedMappingData(questions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: propertyForMapping?.length\n ? modifiedMappingData(propertyForMapping, 'Select all Properties')\n : [],\n derivedQuestions: derivedQuestions?.length\n ? modifiedMappingData(derivedQuestions, 'Select all Enrich')\n : [],\n });\n } else {\n // Data from API - apply hierarchy processing for questions\n setIsApiData(true);\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n \n // Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n \n setSSMappingData({\n questions: organizedQuestions?.length\n ? modifiedMappingData(organizedQuestions, 'Select all Questions')\n : [],\n contactProperties: contactProperties?.length\n ? modifiedMappingData(contactProperties, 'Select all Contact Properties')\n : [],\n variables: variables?.length ? modifiedMappingData(variables, 'Select all Variables') : [],\n expressions: expressions?.length\n ? modifiedMappingData(expressions, 'Select all Expressions')\n : [],\n property: baseMappingPropertyValues?.length\n ? modifiedMappingData(baseMappingPropertyValues, 'Select all Properties')\n : [],\n derivedQuestions: [],\n });\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoader(false);\n }\n }, [surveyId, apiURL, token, surveyProperties, modifiedMappingData, omitResponsePdf, baseMappingPropertyValues]);\n\n /**\n * Fetches data from API and merges with enabled states from edit data\n * Used in edit flow when token and apiURL are available\n */\n const fetchAndMergeEditData = useCallback(async () => {\n setLoader(true);\n try {\n // 1. Fetch fresh data from API\n const [questions, variables, contactProperties, expressions] = await Promise.all([\n fetchSurveyQuestions(apiURL, surveyId, token),\n fetchSurveyVariables(apiURL, surveyId, token),\n fetchContactProperties(apiURL, token),\n fetchSurveyExpression(apiURL, surveyId, token),\n ]);\n\n // 2. Organize questions with parent-child hierarchy\n const organizedQuestions = organizeQuestionsWithHierarchy(questions || []);\n\n // 3. Get enabled IDs from edit data (mappedFields or surveyProperties)\n const editMappedFields = editField?.fieldValues?.mappedFields;\n const getEnabledIds = (fields: any[]) => {\n if (!fields?.length) return new Set<any>();\n return new Set(\n fields\n .filter((f) => f.isEnabled)\n .map((f) => f.id ?? f.name)\n );\n };\n\n const enabledQuestionIds = getEnabledIds(editMappedFields?.questions || surveyProperties?.questions);\n const enabledVariableIds = getEnabledIds(editMappedFields?.variables || surveyProperties?.variables);\n const enabledContactPropertyIds = getEnabledIds(editMappedFields?.contactProperties || surveyProperties?.contactProperties);\n const enabledExpressionIds = getEnabledIds(editMappedFields?.expressions || surveyProperties?.expressions);\n const enabledPropertyIds = getEnabledIds(editMappedFields?.property || surveyProperties?.property);\n const enabledDerivedQuestionIds = getEnabledIds(editMappedFields?.derivedQuestions || surveyProperties?.derivedQuestions);\n\n // 4. Merge: apply isEnabled based on edit data\n const mergeWithEnabled = (apiData: any[], enabledIds: Set<any>, label: string) => {\n if (!apiData?.length) return [];\n const merged = apiData.map((item) => ({\n ...item,\n isEnabled: enabledIds.has(item.id) || enabledIds.has(item.name),\n }));\n const allEnabled = merged.every((m) => m.isEnabled);\n return modifiedMappingData(merged, label, allEnabled);\n };\n\n // 5. Set data with isApiData = true for hierarchy support\n setIsApiData(true);\n const updatedSSMappingData = {\n questions: mergeWithEnabled(organizedQuestions, enabledQuestionIds, 'Select all Questions'),\n variables: mergeWithEnabled(variables || [], enabledVariableIds, 'Select all Variables'),\n contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, 'Select all Contact Properties'),\n expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, 'Select all Expressions'),\n property: mergeWithEnabled(baseMappingPropertyValues || [], enabledPropertyIds, 'Select all Properties'),\n derivedQuestions: [], // Enrich not available from API\n };\n \n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } catch (error) {\n console.error('Error fetching and merging edit data:', error);\n // Fallback to existing behavior on error\n const { fieldValues: { mappedFields } } = editField;\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(mappedFields?.contactProperties, 'Select all Contact Properties'),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: processField(stripResponsePdfProperty(mappedFields?.property, omitResponsePdf) ?? [], 'Select all Properties'),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } finally {\n setLoader(false);\n }\n }, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData, omitResponsePdf, baseMappingPropertyValues]);\n\n const handleFieldValues = useCallback(\n (type: string, id: string | number, value: boolean) => {\n // Use hierarchical update for questions when data is from API\n const useHierarchy = type === 'questions' && isApiData;\n const updatedFields = updateFieldEnabledStateWithHierarchy(\n ssMappingData[type as keyof MappingData],\n id,\n value,\n useHierarchy\n );\n const mappedFields = {\n ...ssMappingData,\n [type]: updatedFields,\n };\n setSSMappingData(mappedFields);\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappedFields,\n });\n },\n [ssMappingData, importResponse, isApiData]\n );\n\n const getMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.filter((field: any) => field?.id !== 'ALL' && field.isEnabled).length || 0;\n },\n [ssMappingData]\n );\n\n const getAllMappingCount = useCallback(\n (mappingField: string) => {\n const mappedField = ssMappingData[mappingField as keyof MappingData];\n return mappedField?.length || 0;\n },\n [ssMappingData]\n );\n\n /**\n * Ensures SUBMISSION_ID property is enabled, disabled and has tooltip when in SELECTED_DATA mode\n */\n const ensureSubmissionIdEnabled = useCallback((propertyFields: any[]) => {\n if (!propertyFields?.length) return propertyFields;\n return propertyFields.map((field: any) => {\n if (field.id === 'SUBMISSION_ID') {\n return {\n ...field,\n isEnabled: true,\n disabled: true,\n tooltip: 'This is a mandatory field',\n };\n }\n return field;\n });\n }, []);\n\n useEffect(() => {\n if (!editField?.id) {\n fetchInitialMappingData();\n } else if (editField?.id) {\n // Edit flow - check if we should fetch from API for hierarchy support\n const shouldFetchFromApi = !!token && !!apiURL;\n \n if (shouldFetchFromApi) {\n // Fetch from API and merge with enabled states from edit data\n // This ensures parent-child hierarchy metadata is available\n fetchAndMergeEditData();\n } else {\n // Fallback: use existing behavior when token/apiURL not available\n const { fieldValues: { mappedFields } } = editField;\n if (importResponse?.value?.importMethod === 'SELECTED_DATA') {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n\n const updatedSSMappingData = {\n questions: processField(mappedFields?.questions, 'Select all Questions'),\n variables: processField(mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(\n processField(stripResponsePdfProperty(mappedFields?.property, omitResponsePdf) ?? [], 'Select all Properties')\n ),\n derivedQuestions: processField(mappedFields?.derivedQuestions, 'Select all Enrich'),\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n } else {\n const { questions, variables, contactProperties, expressions, property, derivedQuestions } =\n surveyProperties || {};\n const rawProperty = stripResponsePdfProperty(property, omitResponsePdf);\n const updatedSSMappingData = {\n questions: questions?.length ? questions : [],\n contactProperties: contactProperties?.length ? contactProperties : [],\n variables: variables?.length ? variables : [],\n expressions: expressions?.length ? expressions : [],\n property: rawProperty?.length ? rawProperty : [],\n derivedQuestions: derivedQuestions?.length ? derivedQuestions : [],\n };\n setSSMappingData(updatedSSMappingData);\n setOriginalMappingData(updatedSSMappingData);\n }\n setLoader(false);\n }\n }\n setIsInitialLoad(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token, surveyId, hasResponsePDF]);\n\n useEffect(() => {\n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SELECTED_DATA') {\n if (editField?.id) {\n const processField = (field: any[], label: string) => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n return modifiedMappingData(field, label, field.every((item) => item.isEnabled));\n };\n \n setSSMappingData((prevData) => {\n const newData = {\n questions: processField(editField?.fieldValues?.mappedFields?.questions, 'Select all Questions'),\n variables: processField(editField?.fieldValues?.mappedFields?.variables, 'Select all Variables'),\n contactProperties: processField(\n editField?.fieldValues?.mappedFields?.contactProperties,\n 'Select all Contact Properties'\n ),\n expressions: processField(editField?.fieldValues?.mappedFields?.expressions, 'Select all Expressions'),\n property: ensureSubmissionIdEnabled(\n processField(\n stripResponsePdfProperty(editField?.fieldValues?.mappedFields?.property, omitResponsePdf) ?? [],\n 'Select all Properties'\n )\n ),\n derivedQuestions: processField(\n editField?.fieldValues?.mappedFields?.derivedQuestions,\n 'Select all Enrich'\n ),\n };\n\n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n } else {\n setSSMappingData((prevData) => {\n const hasAllId = (arr: any[]) => arr?.some((item: any) => item.id === 'ALL');\n const strippedPrevProperty = stripResponsePdfProperty(prevData?.property, omitResponsePdf);\n\n const newData = {\n questions: hasAllId(prevData?.questions)\n ? prevData?.questions\n : prevData?.questions?.length\n ? modifiedMappingData(prevData?.questions, 'Select all Questions')\n : [],\n variables: hasAllId(prevData?.variables)\n ? prevData?.variables\n : prevData?.variables?.length\n ? modifiedMappingData(prevData?.variables, 'Select all Variables')\n : [],\n contactProperties: hasAllId(prevData?.contactProperties)\n ? prevData?.contactProperties\n : prevData?.contactProperties?.length\n ? modifiedMappingData(prevData?.contactProperties, 'Select all Contact Properties')\n : [],\n expressions: hasAllId(prevData?.expressions)\n ? prevData?.expressions\n : prevData?.expressions?.length\n ? modifiedMappingData(prevData?.expressions, 'Select all Expressions')\n : [],\n property: ensureSubmissionIdEnabled(\n hasAllId(prevData?.property)\n ? strippedPrevProperty ?? prevData?.property ?? []\n : strippedPrevProperty?.length\n ? modifiedMappingData(strippedPrevProperty, 'Select all Properties')\n : []\n ),\n derivedQuestions: hasAllId(prevData?.derivedQuestions)\n ? prevData?.derivedQuestions\n : prevData?.derivedQuestions?.length\n ? modifiedMappingData(prevData?.derivedQuestions, 'Select all Enrich')\n : [],\n };\n\n // Only update if data actually changed\n if (JSON.stringify(prevData) === JSON.stringify(newData)) {\n return prevData;\n }\n return newData;\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [importResponse?.value?.importMethod, hasResponsePDF]);\n\n // Memoize the onChangeHandler to prevent unnecessary re-renders\n const handleMappingDataChange = useCallback(\n (mappingData: MappingData) => {\n if (!importResponse?.onChangeHandler) return;\n \n const importMethod = importResponse?.value?.importMethod;\n \n if (importMethod === 'SEND_ALL_DATA') {\n const updatedFieldValues = Object.keys(mappingData).reduce((acc: any, key: any) => {\n acc[key] = mappingData[key as keyof MappingData].map((field: any) => {\n if (field?.id !== 'ALL') {\n return { ...field, isEnabled: true };\n }\n return field;\n });\n return acc;\n }, {});\n \n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: updatedFieldValues,\n });\n } else if (importMethod === 'SELECTED_DATA') {\n importResponse.onChangeHandler({\n id: 'mappedFields',\n value: mappingData,\n });\n }\n },\n [importResponse]\n );\n\n useEffect(() => {\n if (\n ssMappingData?.questions?.length ||\n ssMappingData?.variables?.length ||\n ssMappingData?.contactProperties?.length ||\n ssMappingData?.expressions?.length ||\n ssMappingData?.property?.length\n ) {\n handleMappingDataChange(ssMappingData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n ssMappingData?.questions?.length,\n ssMappingData?.variables?.length,\n ssMappingData?.contactProperties?.length,\n ssMappingData?.expressions?.length,\n ssMappingData?.property?.length,\n importResponse?.value?.importMethod,\n ]);\n\n return {\n loader,\n searchInput,\n setSearchInput,\n ssMappingData,\n setSSMappingData,\n handleFieldValues,\n getMappingCount,\n getAllMappingCount,\n isApiData,\n };\n};\n"],"names":["surveySparrowURL","useMemo","mappingPropertyValues","useState","useCallback","_a","_b","_c","stripResponsePdfProperty","fetchSurveyQuestions","fetchSurveyVariables","fetchContactProperties","fetchSurveyExpression","organizeQuestionsWithHierarchy","updateFieldEnabledStateWithHierarchy","useEffect","_d","_e","_f","_g"],"mappings":"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"}
|
|
@@ -44,7 +44,8 @@ const DynamicMapping = ({
|
|
|
44
44
|
mappingConditions,
|
|
45
45
|
setMappingConditions,
|
|
46
46
|
conditionData,
|
|
47
|
-
conditionDescription
|
|
47
|
+
conditionDescription,
|
|
48
|
+
hasResponsePDF
|
|
48
49
|
}) => {
|
|
49
50
|
const {
|
|
50
51
|
ssMappingData,
|
|
@@ -179,7 +180,8 @@ const DynamicMapping = ({
|
|
|
179
180
|
mappingConditions,
|
|
180
181
|
setMappingConditions,
|
|
181
182
|
conditionData,
|
|
182
|
-
conditionDescription
|
|
183
|
+
conditionDescription,
|
|
184
|
+
hasResponsePDF
|
|
183
185
|
}
|
|
184
186
|
))))
|
|
185
187
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/dynamic-mapping/index.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { Box, Flex, ThemeProvider, TooltipProvider } from '@sparrowengg/twigs-react';\nimport { surveySparrowURL } from '../commons/constants';\nimport { Mapping as MultiMapping } from '../mapping/components/mapping';\nimport {\n IntegrationField,\n ConfigurationFieldValue,\n MappingData,\n} from '../commons/types/enhanced';\nimport { FieldType, CustomListFieldType, OldResponseFieldType } from '../mapping/types';\nimport { MappingHeader, ConfigurationSetup, Mapping } from './components';\nimport { useDynamicMappingState, useFieldChanges } from './hooks';\n\n/* ----- Types / Interfaces ----- */\n\ntype DynamicMappingPropsType = {\n forceDisableMappingCTA?: boolean;\n mappingType?: string;\n hasDerivedQuestions?: boolean;\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n currentMappingName?: string;\n setMappingName?: (value: string) => void;\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string | unknown } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: any;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n surveyType: string;\n havingTypeDropdown: boolean;\n fields: Array<FieldType>;\n setFields: React.Dispatch<React.SetStateAction<Array<FieldType>>>;\n surveyId: string | number;\n integrationName: string;\n customList: CustomListFieldType;\n oldResponse: OldResponseFieldType;\n hasNamingModal?: boolean;\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Dynamic mapping component for configuring and mapping integration fields\n * \n * @param {DynamicMappingPropsType} props - Component props\n * @returns {JSX.Element} Dynamic mapping component\n * \n * @example\n * <DynamicMapping\n * integrationFields={fields}\n * configuration={config}\n * surveyDetails={survey}\n * onSaveHandler={handleSave}\n * />\n */\nexport const DynamicMapping = ({\n forceDisableMappingCTA,\n mappingType,\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n hasDerivedQuestions,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n surveyType,\n havingTypeDropdown,\n fields,\n setFields,\n surveyId,\n integrationName,\n customList,\n oldResponse,\n hasNamingModal,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n}: DynamicMappingPropsType): JSX.Element => {\n const {\n ssMappingData,\n setSSMappingData,\n isEditConfirmationOpen,\n setIsEditConfirmationOpen,\n originalMappingData,\n setOriginalMappingData,\n originalConfigurationFields,\n setOriginalConfigurationFields,\n originalConfiguredFields,\n setOriginalConfiguredFields,\n originalImportResponse,\n setOriginalImportResponse,\n isInitialLoad,\n setIsInitialLoad,\n essentialFields,\n commonFields,\n } = useDynamicMappingState(fields);\n\n const hasFieldsChanged = useFieldChanges({\n editField,\n originalMappingData,\n ssMappingData,\n originalConfigurationFields,\n configurationFields: configuration.configurationFields,\n originalConfiguredFields,\n configuredFields: configuration.configuredFields,\n originalImportResponse,\n importResponse,\n isInitialLoad,\n });\n\n const handleSaveConfiguration = useCallback(async () => {\n return configuration.onSaveHandler();\n }, [configuration]);\n\n const handleNavigateConfigPage = useCallback(() => {\n navigateMappingPage(false);\n }, [navigateMappingPage]);\n\n const handleSave = useCallback(() => {\n onSaveHandler(editField?.id ? editField : {});\n }, [onSaveHandler, editField]);\n\n const isMultiMapping = useMemo(\n () => mappingType === 'MULTI_MAPPING',\n [mappingType]\n );\n\n const showConfiguration = useMemo(\n () => !isMappingPage && configuration.hasConfiguration,\n [isMappingPage, configuration.hasConfiguration]\n );\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: 'DM Sans, Roboto Mono, sans-serif',\n heading: 'DM Sans, Roboto Mono, sans-serif',\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: '100%' }}>\n <MappingHeader\n forceDisableMappingCTA={forceDisableMappingCTA}\n hasNamingModal={hasNamingModal}\n mappingType={mappingType ?? ''}\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSave}\n essentialFields={essentialFields}\n commonFields={commonFields}\n />\n\n {showConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: '$40' }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <>\n {isMultiMapping ? (\n <MultiMapping\n hasDerivedQuestions={hasDerivedQuestions}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n fields={fields}\n setFields={setFields}\n surveyDetails={surveyDetails}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n surveyId={surveyDetails.surveyId}\n token={token}\n apiURL={apiURL}\n integrationName={integrationName}\n customList={customList}\n oldResponse={oldResponse}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n />\n ) : (\n <Mapping\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n />\n )}\n </>\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n"],"names":["surveySparrowURL","useDynamicMappingState","useFieldChanges","useCallback","useMemo","ThemeProvider","TooltipProvider","Box","MappingHeader","Flex","ConfigurationSetup","MultiMapping","Mapping"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/dynamic-mapping/index.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { Box, Flex, ThemeProvider, TooltipProvider } from '@sparrowengg/twigs-react';\nimport { surveySparrowURL } from '../commons/constants';\nimport { Mapping as MultiMapping } from '../mapping/components/mapping';\nimport {\n IntegrationField,\n ConfigurationFieldValue,\n MappingData,\n} from '../commons/types/enhanced';\nimport { FieldType, CustomListFieldType, OldResponseFieldType } from '../mapping/types';\nimport { MappingHeader, ConfigurationSetup, Mapping } from './components';\nimport { useDynamicMappingState, useFieldChanges } from './hooks';\n\n/* ----- Types / Interfaces ----- */\n\ntype DynamicMappingPropsType = {\n forceDisableMappingCTA?: boolean;\n mappingType?: string;\n hasDerivedQuestions?: boolean;\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n currentMappingName?: string;\n setMappingName?: (value: string) => void;\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string | unknown } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: any;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n surveyType: string;\n havingTypeDropdown: boolean;\n fields: Array<FieldType>;\n setFields: React.Dispatch<React.SetStateAction<Array<FieldType>>>;\n surveyId: string | number;\n integrationName: string;\n customList: CustomListFieldType;\n oldResponse: OldResponseFieldType;\n hasNamingModal?: boolean;\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n /** When true, includes Response PDF in submission properties; when omitted, it is hidden. */\n hasResponsePDF?: boolean;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Dynamic mapping component for configuring and mapping integration fields\n * \n * @param {DynamicMappingPropsType} props - Component props\n * @returns {JSX.Element} Dynamic mapping component\n * \n * @example\n * <DynamicMapping\n * integrationFields={fields}\n * configuration={config}\n * surveyDetails={survey}\n * onSaveHandler={handleSave}\n * />\n */\nexport const DynamicMapping = ({\n forceDisableMappingCTA,\n mappingType,\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n hasDerivedQuestions,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n surveyType,\n havingTypeDropdown,\n fields,\n setFields,\n surveyId,\n integrationName,\n customList,\n oldResponse,\n hasNamingModal,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n hasResponsePDF,\n}: DynamicMappingPropsType): JSX.Element => {\n const {\n ssMappingData,\n setSSMappingData,\n isEditConfirmationOpen,\n setIsEditConfirmationOpen,\n originalMappingData,\n setOriginalMappingData,\n originalConfigurationFields,\n setOriginalConfigurationFields,\n originalConfiguredFields,\n setOriginalConfiguredFields,\n originalImportResponse,\n setOriginalImportResponse,\n isInitialLoad,\n setIsInitialLoad,\n essentialFields,\n commonFields,\n } = useDynamicMappingState(fields);\n\n const hasFieldsChanged = useFieldChanges({\n editField,\n originalMappingData,\n ssMappingData,\n originalConfigurationFields,\n configurationFields: configuration.configurationFields,\n originalConfiguredFields,\n configuredFields: configuration.configuredFields,\n originalImportResponse,\n importResponse,\n isInitialLoad,\n });\n\n const handleSaveConfiguration = useCallback(async () => {\n return configuration.onSaveHandler();\n }, [configuration]);\n\n const handleNavigateConfigPage = useCallback(() => {\n navigateMappingPage(false);\n }, [navigateMappingPage]);\n\n const handleSave = useCallback(() => {\n onSaveHandler(editField?.id ? editField : {});\n }, [onSaveHandler, editField]);\n\n const isMultiMapping = useMemo(\n () => mappingType === 'MULTI_MAPPING',\n [mappingType]\n );\n\n const showConfiguration = useMemo(\n () => !isMappingPage && configuration.hasConfiguration,\n [isMappingPage, configuration.hasConfiguration]\n );\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: 'DM Sans, Roboto Mono, sans-serif',\n heading: 'DM Sans, Roboto Mono, sans-serif',\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: '100%' }}>\n <MappingHeader\n forceDisableMappingCTA={forceDisableMappingCTA}\n hasNamingModal={hasNamingModal}\n mappingType={mappingType ?? ''}\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSave}\n essentialFields={essentialFields}\n commonFields={commonFields}\n />\n\n {showConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: '$40' }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <>\n {isMultiMapping ? (\n <MultiMapping\n hasDerivedQuestions={hasDerivedQuestions}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n fields={fields}\n setFields={setFields}\n surveyDetails={surveyDetails}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n surveyId={surveyDetails.surveyId}\n token={token}\n apiURL={apiURL}\n integrationName={integrationName}\n customList={customList}\n oldResponse={oldResponse}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n />\n ) : (\n <Mapping\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n hasResponsePDF={hasResponsePDF}\n />\n )}\n </>\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n"],"names":["surveySparrowURL","useDynamicMappingState","useFieldChanges","useCallback","useMemo","ThemeProvider","TooltipProvider","Box","MappingHeader","Flex","ConfigurationSetup","MultiMapping","Mapping"],"mappings":"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"}
|
|
@@ -31,7 +31,8 @@ const Mapping = ({
|
|
|
31
31
|
setSSMappingData,
|
|
32
32
|
editField,
|
|
33
33
|
setIsInitialLoad,
|
|
34
|
-
setOriginalMappingData
|
|
34
|
+
setOriginalMappingData,
|
|
35
|
+
hasResponsePDF
|
|
35
36
|
}) => {
|
|
36
37
|
var _a, _b, _c;
|
|
37
38
|
const {
|
|
@@ -53,7 +54,8 @@ const Mapping = ({
|
|
|
53
54
|
setIsInitialLoad,
|
|
54
55
|
setOriginalMappingData,
|
|
55
56
|
ssMappingData,
|
|
56
|
-
setSSMappingData
|
|
57
|
+
setSSMappingData,
|
|
58
|
+
hasResponsePDF
|
|
57
59
|
});
|
|
58
60
|
const mappingData = hookSsMappingData;
|
|
59
61
|
const effectiveConditionData = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sources":["../../../../src/dynamic-mapping/components/mapping.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo } from 'react';\nimport {\n Box,\n Flex,\n Heading,\n Text,\n Radio,\n RadioGroup,\n Tabs,\n TabsList,\n TabsTrigger,\n Chip,\n} from '@sparrowengg/twigs-react';\nimport { surveySparrowURL, mappingTabValues } from '../../commons/constants';\nimport Spinner from '../../commons/components/spinner';\nimport MappingCondition from '../../commons/components/mapping-conditions';\nimport { ConditionCard } from '../../mapping/utils/conditionDescriptionBuilder';\nimport { useMappingData } from '../hooks';\nimport { TabsContentComponent } from './tabs-content-component';\nimport { CustomChip } from './custom-chip';\nimport { deriveConditionDataFromSurveyData, hasValidConditionData, hasAnyMappingData } from '../helpers';\n\n/* ----- Types / Interfaces ----- */\n\ninterface MappingProps {\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n surveyId: string | number;\n apiURL?: string;\n token?: string;\n surveyProperties?: any;\n importResponse: any;\n ssMappingData: any;\n setSSMappingData: React.Dispatch<React.SetStateAction<any>>;\n editField?: any;\n setIsInitialLoad: (value: boolean) => void;\n setOriginalMappingData: (value: any) => void;\n integrationFields?: any;\n setIntegrationFields?: any;\n}\n\n/* ----- Main Component ----- */\n\n/**\n * Mapping component for dynamic field selection\n * \n * @param {MappingProps} props - Component props\n * @returns {JSX.Element} Mapping component\n * \n * @example\n * <Mapping\n * surveyId={123}\n * token=\"token\"\n * importResponse={response}\n * ssMappingData={data}\n * setSSMappingData={setData}\n * />\n */\nexport const Mapping = ({\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n surveyId,\n apiURL = surveySparrowURL,\n token,\n surveyProperties,\n importResponse,\n ssMappingData,\n setSSMappingData,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n}: MappingProps): JSX.Element => {\n const {\n loader,\n searchInput,\n setSearchInput,\n ssMappingData: hookSsMappingData,\n setSSMappingData: hookSetSSMappingData,\n handleFieldValues,\n getMappingCount,\n getAllMappingCount,\n isApiData,\n } = useMappingData({\n surveyId,\n apiURL,\n token,\n surveyProperties,\n importResponse,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n ssMappingData,\n setSSMappingData,\n });\n\n // Use the hook's data which is synced with parent\n const mappingData = hookSsMappingData;\n\n // Compute effective conditionData - use prop if provided, otherwise derive from survey data\n const effectiveConditionData = useMemo(() => {\n // If conditionData prop is provided and valid, use it directly\n if (hasValidConditionData(conditionData)) {\n return conditionData;\n }\n // Priority: surveyProperties > external ssMappingData > hook ssMappingData\n const sourceData = surveyProperties || ssMappingData || hookSsMappingData;\n if (sourceData && hasAnyMappingData(sourceData)) {\n return deriveConditionDataFromSurveyData(sourceData);\n }\n return [];\n }, [conditionData, surveyProperties, ssMappingData, hookSsMappingData]);\n\n const isSelectedDataMode = useMemo(\n () => importResponse?.value?.importMethod === 'SELECTED_DATA',\n [importResponse?.value?.importMethod]\n );\n\n const handleImportMethodChange = useMemo(\n () => (value: string) => {\n importResponse.onChangeHandler({\n id: 'importMethod',\n value,\n });\n },\n [importResponse]\n );\n\n const handleConditionClear = useMemo(\n () => () => {\n setMappingConditions?.(undefined);\n },\n [setMappingConditions]\n );\n\n if (loader) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n css={{ height: 'calc(100vh - 57px)' }}\n >\n <Spinner />\n </Flex>\n </Flex>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Box css={{ maxWidth: 650, width: '100%', marginBlock: '$40' }}>\n {importResponse?.hasImportResponse && (\n <Flex flexDirection=\"column\">\n <Heading size=\"h5\" css={{ color: '$neutral900' }}>\n Select Import Data\n </Heading>\n\n {hasConditions && (\n <Flex css={{ marginTop: '$3' }}>\n {mappingConditions?.filterGroups?.length ? (\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n conditionData={effectiveConditionData}\n renderTrigger={(onEditClick) => (\n <ConditionCard\n isEditable\n conditionsData={mappingConditions}\n onEditClick={onEditClick}\n onClearClick={handleConditionClear}\n showMoreMenu\n />\n )}\n />\n ) : (\n <Flex gap=\"$2\" css={{ marginTop: '$2' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n {conditionDescription}\n </Text>\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n conditionData={effectiveConditionData}\n />\n </Flex>\n )}\n </Flex>\n )}\n\n <RadioGroup\n defaultValue={importResponse?.value?.importMethod}\n onChange={handleImportMethodChange}\n >\n <Flex\n alignItems=\"center\"\n gap=\"$20\"\n css={{\n marginTop: '$9',\n '& label': { color: '$neutral800', cursor: 'pointer' },\n }}\n >\n <Radio size=\"md\" value=\"SEND_ALL_DATA\" css={{ cursor: 'pointer' }}>\n Send all data\n </Radio>\n <Radio size=\"md\" value=\"SELECTED_DATA\" css={{ cursor: 'pointer' }}>\n Send selected data\n </Radio>\n </Flex>\n </RadioGroup>\n </Flex>\n )}\n\n {isSelectedDataMode ? (\n <Box css={{ marginTop: '$24' }}>\n <Tabs defaultValue=\"QUESTIONS\">\n <TabsList\n css={{\n borderBottom: '$borderWidths$xs solid $neutral200',\n }}\n >\n {mappingTabValues.map((tab) => {\n if (\n tab.value === 'DERIVED_QUESTIONS' &&\n getAllMappingCount(tab.placeholder) < 1\n ) {\n return null;\n }\n\n return (\n <TabsTrigger\n key={tab?.id}\n value={tab?.value}\n css={{\n padding: '$6 $4 !important',\n }}\n onClick={() => setSearchInput('')}\n >\n <Text size=\"sm\" weight=\"bold\">\n {tab.name}\n </Text>\n {!!getMappingCount(tab.placeholder) && (\n <Chip\n css={{\n marginLeft: '$2',\n borderRadius: '5px',\n color: '$neutral800',\n }}\n variant=\"outline\"\n rounded=\"sm\"\n >\n {getMappingCount(tab.placeholder)}\n </Chip>\n )}\n </TabsTrigger>\n );\n })}\n </TabsList>\n\n <TabsContentComponent\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n value=\"QUESTIONS\"\n placeholder=\"Questions\"\n fields={mappingData?.questions}\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('questions', field?.id, value)\n }\n isApiData={isApiData}\n />\n <TabsContentComponent\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n fields={mappingData.variables}\n value=\"VARIABLE\"\n placeholder=\"Variables\"\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('variables', field?.id, value)\n }\n />\n <TabsContentComponent\n fields={mappingData.contactProperties}\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n value=\"CONTACT\"\n placeholder=\"Contacts\"\n handleFieldValues={(field, value) =>\n handleFieldValues('contactProperties', field?.id, value)\n }\n />\n <TabsContentComponent\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n value=\"EXPRESSION\"\n placeholder=\"Expressions\"\n fields={mappingData.expressions}\n handleFieldValues={(field, value) =>\n handleFieldValues('expressions', field?.id, value)\n }\n />\n <TabsContentComponent\n value=\"PROPERTY\"\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n placeholder=\"Properties\"\n fields={mappingData.property}\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('property', field?.id, value)\n }\n />\n <TabsContentComponent\n value=\"DERIVED_QUESTIONS\"\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n placeholder=\"Enrich\"\n fields={mappingData.derivedQuestions}\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('derivedQuestions', field?.id, value)\n }\n />\n </Tabs>\n </Box>\n ) : (\n <Flex css={{ marginTop: '$16' }} alignItems=\"center\" gap=\"$6\">\n <Text\n size=\"sm\"\n weight=\"regular\"\n css={{ width: '90px', color: '$neutral900' }}\n >\n This Includes:\n </Text>\n <Flex alignItems=\"center\" gap=\"$4\">\n {getAllMappingCount('questions') - 1 > 0 && (\n <CustomChip bgColor=\"#E5F2FF\">\n {getAllMappingCount('questions') - 1} Questions\n </CustomChip>\n )}\n {getAllMappingCount('derivedQuestions') - 1 > 0 && (\n <CustomChip bgColor=\"#E5F2FF\">\n {getAllMappingCount('derivedQuestions') - 1} Enrich\n </CustomChip>\n )}\n {getAllMappingCount('variables') - 1 > 0 && (\n <CustomChip bgColor=\"#E8F4E3\">\n {getAllMappingCount('variables') - 1} Variables\n </CustomChip>\n )}\n {getAllMappingCount('contactProperties') - 1 > 0 && (\n <CustomChip bgColor=\"#FDEDE8\">\n {getAllMappingCount('contactProperties') - 1} Contacts\n </CustomChip>\n )}\n {getAllMappingCount('expressions') - 1 > 0 && (\n <CustomChip bgColor=\"#F1F1F1\">\n {getAllMappingCount('expressions') - 1} Expressions\n </CustomChip>\n )}\n {getAllMappingCount('property') - 1 > 0 && (\n <CustomChip bgColor=\"#4A9CA626\">\n {getAllMappingCount('property') - 1} Properties\n </CustomChip>\n )}\n </Flex>\n </Flex>\n )}\n </Box>\n </Flex>\n );\n};\n"],"names":["_a","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mapping.js","sources":["../../../../src/dynamic-mapping/components/mapping.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo } from 'react';\nimport {\n Box,\n Flex,\n Heading,\n Text,\n Radio,\n RadioGroup,\n Tabs,\n TabsList,\n TabsTrigger,\n Chip,\n} from '@sparrowengg/twigs-react';\nimport { surveySparrowURL, mappingTabValues } from '../../commons/constants';\nimport Spinner from '../../commons/components/spinner';\nimport MappingCondition from '../../commons/components/mapping-conditions';\nimport { ConditionCard } from '../../mapping/utils/conditionDescriptionBuilder';\nimport { useMappingData } from '../hooks';\nimport { TabsContentComponent } from './tabs-content-component';\nimport { CustomChip } from './custom-chip';\nimport { deriveConditionDataFromSurveyData, hasValidConditionData, hasAnyMappingData } from '../helpers';\n\n/* ----- Types / Interfaces ----- */\n\ninterface MappingProps {\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n surveyId: string | number;\n apiURL?: string;\n token?: string;\n surveyProperties?: any;\n importResponse: any;\n ssMappingData: any;\n setSSMappingData: React.Dispatch<React.SetStateAction<any>>;\n editField?: any;\n setIsInitialLoad: (value: boolean) => void;\n setOriginalMappingData: (value: any) => void;\n integrationFields?: any;\n setIntegrationFields?: any;\n hasResponsePDF?: boolean;\n}\n\n/* ----- Main Component ----- */\n\n/**\n * Mapping component for dynamic field selection\n * \n * @param {MappingProps} props - Component props\n * @returns {JSX.Element} Mapping component\n * \n * @example\n * <Mapping\n * surveyId={123}\n * token=\"token\"\n * importResponse={response}\n * ssMappingData={data}\n * setSSMappingData={setData}\n * />\n */\nexport const Mapping = ({\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n surveyId,\n apiURL = surveySparrowURL,\n token,\n surveyProperties,\n importResponse,\n ssMappingData,\n setSSMappingData,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n hasResponsePDF,\n}: MappingProps): JSX.Element => {\n const {\n loader,\n searchInput,\n setSearchInput,\n ssMappingData: hookSsMappingData,\n setSSMappingData: hookSetSSMappingData,\n handleFieldValues,\n getMappingCount,\n getAllMappingCount,\n isApiData,\n } = useMappingData({\n surveyId,\n apiURL,\n token,\n surveyProperties,\n importResponse,\n editField,\n setIsInitialLoad,\n setOriginalMappingData,\n ssMappingData,\n setSSMappingData,\n hasResponsePDF,\n });\n\n // Use the hook's data which is synced with parent\n const mappingData = hookSsMappingData;\n\n // Compute effective conditionData - use prop if provided, otherwise derive from survey data\n const effectiveConditionData = useMemo(() => {\n // If conditionData prop is provided and valid, use it directly\n if (hasValidConditionData(conditionData)) {\n return conditionData;\n }\n // Priority: surveyProperties > external ssMappingData > hook ssMappingData\n const sourceData = surveyProperties || ssMappingData || hookSsMappingData;\n if (sourceData && hasAnyMappingData(sourceData)) {\n return deriveConditionDataFromSurveyData(sourceData);\n }\n return [];\n }, [conditionData, surveyProperties, ssMappingData, hookSsMappingData]);\n\n const isSelectedDataMode = useMemo(\n () => importResponse?.value?.importMethod === 'SELECTED_DATA',\n [importResponse?.value?.importMethod]\n );\n\n const handleImportMethodChange = useMemo(\n () => (value: string) => {\n importResponse.onChangeHandler({\n id: 'importMethod',\n value,\n });\n },\n [importResponse]\n );\n\n const handleConditionClear = useMemo(\n () => () => {\n setMappingConditions?.(undefined);\n },\n [setMappingConditions]\n );\n\n if (loader) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n css={{ height: 'calc(100vh - 57px)' }}\n >\n <Spinner />\n </Flex>\n </Flex>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Box css={{ maxWidth: 650, width: '100%', marginBlock: '$40' }}>\n {importResponse?.hasImportResponse && (\n <Flex flexDirection=\"column\">\n <Heading size=\"h5\" css={{ color: '$neutral900' }}>\n Select Import Data\n </Heading>\n\n {hasConditions && (\n <Flex css={{ marginTop: '$3' }}>\n {mappingConditions?.filterGroups?.length ? (\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n conditionData={effectiveConditionData}\n renderTrigger={(onEditClick) => (\n <ConditionCard\n isEditable\n conditionsData={mappingConditions}\n onEditClick={onEditClick}\n onClearClick={handleConditionClear}\n showMoreMenu\n />\n )}\n />\n ) : (\n <Flex gap=\"$2\" css={{ marginTop: '$2' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n {conditionDescription}\n </Text>\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n conditionData={effectiveConditionData}\n />\n </Flex>\n )}\n </Flex>\n )}\n\n <RadioGroup\n defaultValue={importResponse?.value?.importMethod}\n onChange={handleImportMethodChange}\n >\n <Flex\n alignItems=\"center\"\n gap=\"$20\"\n css={{\n marginTop: '$9',\n '& label': { color: '$neutral800', cursor: 'pointer' },\n }}\n >\n <Radio size=\"md\" value=\"SEND_ALL_DATA\" css={{ cursor: 'pointer' }}>\n Send all data\n </Radio>\n <Radio size=\"md\" value=\"SELECTED_DATA\" css={{ cursor: 'pointer' }}>\n Send selected data\n </Radio>\n </Flex>\n </RadioGroup>\n </Flex>\n )}\n\n {isSelectedDataMode ? (\n <Box css={{ marginTop: '$24' }}>\n <Tabs defaultValue=\"QUESTIONS\">\n <TabsList\n css={{\n borderBottom: '$borderWidths$xs solid $neutral200',\n }}\n >\n {mappingTabValues.map((tab) => {\n if (\n tab.value === 'DERIVED_QUESTIONS' &&\n getAllMappingCount(tab.placeholder) < 1\n ) {\n return null;\n }\n\n return (\n <TabsTrigger\n key={tab?.id}\n value={tab?.value}\n css={{\n padding: '$6 $4 !important',\n }}\n onClick={() => setSearchInput('')}\n >\n <Text size=\"sm\" weight=\"bold\">\n {tab.name}\n </Text>\n {!!getMappingCount(tab.placeholder) && (\n <Chip\n css={{\n marginLeft: '$2',\n borderRadius: '5px',\n color: '$neutral800',\n }}\n variant=\"outline\"\n rounded=\"sm\"\n >\n {getMappingCount(tab.placeholder)}\n </Chip>\n )}\n </TabsTrigger>\n );\n })}\n </TabsList>\n\n <TabsContentComponent\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n value=\"QUESTIONS\"\n placeholder=\"Questions\"\n fields={mappingData?.questions}\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('questions', field?.id, value)\n }\n isApiData={isApiData}\n />\n <TabsContentComponent\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n fields={mappingData.variables}\n value=\"VARIABLE\"\n placeholder=\"Variables\"\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('variables', field?.id, value)\n }\n />\n <TabsContentComponent\n fields={mappingData.contactProperties}\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n value=\"CONTACT\"\n placeholder=\"Contacts\"\n handleFieldValues={(field, value) =>\n handleFieldValues('contactProperties', field?.id, value)\n }\n />\n <TabsContentComponent\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n value=\"EXPRESSION\"\n placeholder=\"Expressions\"\n fields={mappingData.expressions}\n handleFieldValues={(field, value) =>\n handleFieldValues('expressions', field?.id, value)\n }\n />\n <TabsContentComponent\n value=\"PROPERTY\"\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n placeholder=\"Properties\"\n fields={mappingData.property}\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('property', field?.id, value)\n }\n />\n <TabsContentComponent\n value=\"DERIVED_QUESTIONS\"\n searchInput={searchInput}\n setSearchInput={setSearchInput}\n placeholder=\"Enrich\"\n fields={mappingData.derivedQuestions}\n handleFieldValues={(field: any, value: boolean) =>\n handleFieldValues('derivedQuestions', field?.id, value)\n }\n />\n </Tabs>\n </Box>\n ) : (\n <Flex css={{ marginTop: '$16' }} alignItems=\"center\" gap=\"$6\">\n <Text\n size=\"sm\"\n weight=\"regular\"\n css={{ width: '90px', color: '$neutral900' }}\n >\n This Includes:\n </Text>\n <Flex alignItems=\"center\" gap=\"$4\">\n {getAllMappingCount('questions') - 1 > 0 && (\n <CustomChip bgColor=\"#E5F2FF\">\n {getAllMappingCount('questions') - 1} Questions\n </CustomChip>\n )}\n {getAllMappingCount('derivedQuestions') - 1 > 0 && (\n <CustomChip bgColor=\"#E5F2FF\">\n {getAllMappingCount('derivedQuestions') - 1} Enrich\n </CustomChip>\n )}\n {getAllMappingCount('variables') - 1 > 0 && (\n <CustomChip bgColor=\"#E8F4E3\">\n {getAllMappingCount('variables') - 1} Variables\n </CustomChip>\n )}\n {getAllMappingCount('contactProperties') - 1 > 0 && (\n <CustomChip bgColor=\"#FDEDE8\">\n {getAllMappingCount('contactProperties') - 1} Contacts\n </CustomChip>\n )}\n {getAllMappingCount('expressions') - 1 > 0 && (\n <CustomChip bgColor=\"#F1F1F1\">\n {getAllMappingCount('expressions') - 1} Expressions\n </CustomChip>\n )}\n {getAllMappingCount('property') - 1 > 0 && (\n <CustomChip bgColor=\"#4A9CA626\">\n {getAllMappingCount('property') - 1} Properties\n </CustomChip>\n )}\n </Flex>\n </Flex>\n )}\n </Box>\n </Flex>\n );\n};\n"],"names":["_a","React"],"mappings":"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"}
|
|
@@ -17,6 +17,15 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
return a;
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
const RESPONSE_PDF_PROPERTY_ID = "RESPONSE_PDF";
|
|
21
|
+
const stripResponsePdfProperty = (fields, omit) => {
|
|
22
|
+
if (!omit || !(fields == null ? void 0 : fields.length))
|
|
23
|
+
return fields != null ? fields : void 0;
|
|
24
|
+
return fields.filter((f) => {
|
|
25
|
+
var _a;
|
|
26
|
+
return ((_a = f == null ? void 0 : f.id) != null ? _a : f == null ? void 0 : f.name) !== RESPONSE_PDF_PROPERTY_ID;
|
|
27
|
+
});
|
|
28
|
+
};
|
|
20
29
|
const updateFieldEnabledState = (fields, id, value) => {
|
|
21
30
|
if (id === "ALL") {
|
|
22
31
|
return fields.map((field) => __spreadProps(__spreadValues({}, field), { isEnabled: value }));
|
|
@@ -149,5 +158,5 @@ const updateFieldEnabledStateWithHierarchy = (fields, id, value, isHierarchical
|
|
|
149
158
|
return modifiedFields;
|
|
150
159
|
};
|
|
151
160
|
|
|
152
|
-
export { filterFieldsBySearch, isConfigurationFieldVisible, organizeQuestionsWithHierarchy, updateFieldEnabledState, updateFieldEnabledStateWithHierarchy };
|
|
161
|
+
export { filterFieldsBySearch, isConfigurationFieldVisible, organizeQuestionsWithHierarchy, stripResponsePdfProperty, updateFieldEnabledState, updateFieldEnabledStateWithHierarchy };
|
|
153
162
|
//# sourceMappingURL=mapping.helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.helpers.js","sources":["../../../../src/dynamic-mapping/helpers/mapping.helpers.ts"],"sourcesContent":["/* ----- Imports ----- */\n\nimport { MappingData } from '../../commons/types/enhanced';\n\n/* ----- Helper Functions ----- */\n\n/**\n * Processes field array for mapping\n * \n * @param {any[]} field - Field array to process\n * @param {string} label - Label for \"select all\" option\n * @returns {any[]} Processed field array\n * \n * @example\n * const processed = processFieldForMapping(questions, \"Select all Questions\");\n */\nexport const processFieldForMapping = (field: any[], label: string): any[] => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n \n const modifiedData = field.map((data: any) => ({\n ...data,\n id: data?.id ?? data?.name,\n name: data?.rtxt ?? data?.name,\n isEnabled: data?.isEnabled ?? false,\n }));\n \n const isAllEnabled = field.every((item) => item.isEnabled);\n modifiedData.unshift({ id: 'ALL', name: label, isEnabled: isAllEnabled });\n \n return modifiedData;\n};\n\n/**\n * Gets count of enabled mapping fields\n * \n * @param {any[]} mappingField - Array of mapping fields\n * @returns {number} Count of enabled fields\n * \n * @example\n * const count = getEnabledMappingCount(questions);\n */\nexport const getEnabledMappingCount = (mappingField: any[]): number => {\n if (!mappingField) return 0;\n return mappingField.filter((field: any) => field?.id !== 'ALL' && field.isEnabled).length;\n};\n\n/**\n * Gets total count of mapping fields (excluding \"ALL\")\n * \n * @param {any[]} mappingField - Array of mapping fields\n * @returns {number} Total count of fields\n * \n * @example\n * const total = getTotalMappingCount(questions);\n */\nexport const getTotalMappingCount = (mappingField: any[]): number => {\n return mappingField?.length || 0;\n};\n\n/**\n * Updates field enabled state in mapping data\n * \n * @param {any[]} fields - Array of fields\n * @param {string | number} id - Field ID to update\n * @param {boolean} value - New enabled value\n * @returns {any[]} Updated fields array\n * \n * @example\n * const updated = updateFieldEnabledState(questions, \"q1\", true);\n */\nexport const updateFieldEnabledState = (\n fields: any[],\n id: string | number,\n value: boolean\n): any[] => {\n if (id === 'ALL') {\n return fields.map((field: any) => ({ ...field, isEnabled: value }));\n }\n\n let modifiedFields = fields.map((field: any) => {\n if (field?.id === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n\n const allNonAllFieldsEnabled = modifiedFields\n .filter((field: any) => field?.id !== 'ALL')\n .every((field: any) => field.isEnabled);\n\n modifiedFields = modifiedFields.map((field: any) => {\n if (field?.id === 'ALL') {\n return { ...field, isEnabled: allNonAllFieldsEnabled };\n }\n return field;\n });\n\n return modifiedFields;\n};\n\n/**\n * Checks if configuration field should be visible\n * \n * @param {any} field - Configuration field\n * @param {any} configuredFields - All configured fields\n * @returns {boolean} Whether field should be visible\n * \n * @example\n * const isVisible = isConfigurationFieldVisible(field, configuredFields);\n */\nexport const isConfigurationFieldVisible = (field: any, configuredFields: any): boolean => {\n if (field?.id === 'spreadsheet') {\n return !!configuredFields?.action?.value;\n }\n return true;\n};\n\n/**\n * Filters fields based on search input\n * \n * @param {any[]} fields - Array of fields to filter\n * @param {string} searchInput - Search query\n * @returns {any[]} Filtered fields array\n * \n * @example\n * const filtered = filterFieldsBySearch(questions, \"email\");\n */\nexport const filterFieldsBySearch = (fields: any[], searchInput: string): any[] => {\n if (!searchInput) return fields;\n return fields?.filter((field: any) =>\n field.id === 'ALL' ||\n String(field.name ?? '').toLowerCase().includes(searchInput.toLowerCase())\n );\n};\n\n/**\n * Organizes questions with parent-child hierarchy for display\n * Parent questions are followed by their children in the array\n * Adds isChild and parentId metadata for UI rendering\n * \n * @param {any[]} questions - Flat array of questions from API\n * @returns {any[]} Organized array with hierarchy metadata\n * \n * @example\n * const organized = organizeQuestionsWithHierarchy(apiQuestions);\n */\nexport const organizeQuestionsWithHierarchy = (questions: any[]): any[] => {\n if (!questions?.length) return [];\n\n // Separate parents and children\n const parents = questions.filter((q) => q.parent_question_id === null || q.parent_question_id === undefined);\n const children = questions.filter((q) => q.parent_question_id !== null && q.parent_question_id !== undefined);\n\n // Create a map of parentId -> children[]\n const childrenMap = new Map<number | string, any[]>();\n children.forEach((child) => {\n const parentId = child.parent_question_id;\n if (!childrenMap.has(parentId)) {\n childrenMap.set(parentId, []);\n }\n childrenMap.get(parentId)!.push(child);\n });\n\n // Sort children by position within each parent group\n childrenMap.forEach((childList) => {\n childList.sort((a, b) => parseFloat(a.position || '0') - parseFloat(b.position || '0'));\n });\n\n // Sort parents by section position then by position\n parents.sort((a, b) => {\n const sectionA = parseFloat(a.section?.position || '0');\n const sectionB = parseFloat(b.section?.position || '0');\n if (sectionA !== sectionB) return sectionA - sectionB;\n return parseFloat(a.position || '0') - parseFloat(b.position || '0');\n });\n\n // Build result: for each parent, add parent then its children\n const result: any[] = [];\n parents.forEach((parent) => {\n const hasChildren = childrenMap.has(parent.id);\n result.push({\n ...parent,\n isChild: false,\n parentId: null,\n hasChildren,\n });\n\n const parentChildren = childrenMap.get(parent.id) || [];\n parentChildren.forEach((child) => {\n result.push({\n ...child,\n isChild: true,\n parentId: parent.id,\n hasChildren: false,\n });\n });\n });\n\n return result?.filter((question) => question?.type !== \"Message\" && question?.type !== \"PaymentQuestion\");\n};\n\n/**\n * Updates field enabled state with parent-child cascade logic for questions\n * - When parent is toggled: all children follow\n * - When child is deselected: parent is deselected\n * - When all children are selected: parent is selected\n * \n * @param {any[]} fields - Array of fields\n * @param {string | number} id - Field ID to update\n * @param {boolean} value - New enabled value\n * @param {boolean} isHierarchical - Whether to apply parent-child cascade logic\n * @returns {any[]} Updated fields array\n * \n * @example\n * const updated = updateFieldEnabledStateWithHierarchy(questions, \"q1\", true, true);\n */\nexport const updateFieldEnabledStateWithHierarchy = (\n fields: any[],\n id: string | number,\n value: boolean,\n isHierarchical: boolean = false\n): any[] => {\n // If not hierarchical, use the standard logic\n if (!isHierarchical) {\n return updateFieldEnabledState(fields, id, value);\n }\n\n // Handle \"ALL\" selection\n if (id === 'ALL') {\n return fields.map((field: any) => ({ ...field, isEnabled: value }));\n }\n\n const targetField = fields.find((f) => f.id === id);\n if (!targetField) {\n return updateFieldEnabledState(fields, id, value);\n }\n\n let modifiedFields = [...fields];\n\n if (!targetField.isChild && targetField.hasChildren) {\n // Parent toggled - update parent and all its children\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === id || field.parentId === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n } else if (targetField.isChild) {\n // Child toggled\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n\n // Check parent state\n const parentId = targetField.parentId;\n const siblings = modifiedFields.filter((f) => f.parentId === parentId);\n const allSiblingsEnabled = siblings.every((s) => s.isEnabled);\n\n // Update parent based on children state\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === parentId) {\n return { ...field, isEnabled: allSiblingsEnabled };\n }\n return field;\n });\n } else {\n // Regular field without children\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n }\n\n // Update \"ALL\" checkbox state\n const allNonAllFieldsEnabled = modifiedFields\n .filter((field: any) => field?.id !== 'ALL')\n .every((field: any) => field.isEnabled);\n\n modifiedFields = modifiedFields.map((field: any) => {\n if (field?.id === 'ALL') {\n return { ...field, isEnabled: allNonAllFieldsEnabled };\n }\n return field;\n });\n\n return modifiedFields;\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mapping.helpers.js","sources":["../../../../src/dynamic-mapping/helpers/mapping.helpers.ts"],"sourcesContent":["/* ----- Imports ----- */\n\nimport { MappingData } from '../../commons/types/enhanced';\n\nconst RESPONSE_PDF_PROPERTY_ID = 'RESPONSE_PDF';\n\n/**\n * When omit is true, removes the Response PDF submission property from a list (by id/name).\n */\nexport const stripResponsePdfProperty = (\n fields: any[] | undefined | null,\n omit: boolean\n): any[] | undefined | null => {\n if (!omit || !fields?.length) return fields ?? undefined;\n return fields.filter((f: any) => (f?.id ?? f?.name) !== RESPONSE_PDF_PROPERTY_ID);\n};\n\n/* ----- Helper Functions ----- */\n\n/**\n * Processes field array for mapping\n * \n * @param {any[]} field - Field array to process\n * @param {string} label - Label for \"select all\" option\n * @returns {any[]} Processed field array\n * \n * @example\n * const processed = processFieldForMapping(questions, \"Select all Questions\");\n */\nexport const processFieldForMapping = (field: any[], label: string): any[] => {\n if (!field?.length) return [];\n if (field?.some((item) => item.id === 'ALL')) return field;\n \n const modifiedData = field.map((data: any) => ({\n ...data,\n id: data?.id ?? data?.name,\n name: data?.rtxt ?? data?.name,\n isEnabled: data?.isEnabled ?? false,\n }));\n \n const isAllEnabled = field.every((item) => item.isEnabled);\n modifiedData.unshift({ id: 'ALL', name: label, isEnabled: isAllEnabled });\n \n return modifiedData;\n};\n\n/**\n * Gets count of enabled mapping fields\n * \n * @param {any[]} mappingField - Array of mapping fields\n * @returns {number} Count of enabled fields\n * \n * @example\n * const count = getEnabledMappingCount(questions);\n */\nexport const getEnabledMappingCount = (mappingField: any[]): number => {\n if (!mappingField) return 0;\n return mappingField.filter((field: any) => field?.id !== 'ALL' && field.isEnabled).length;\n};\n\n/**\n * Gets total count of mapping fields (excluding \"ALL\")\n * \n * @param {any[]} mappingField - Array of mapping fields\n * @returns {number} Total count of fields\n * \n * @example\n * const total = getTotalMappingCount(questions);\n */\nexport const getTotalMappingCount = (mappingField: any[]): number => {\n return mappingField?.length || 0;\n};\n\n/**\n * Updates field enabled state in mapping data\n * \n * @param {any[]} fields - Array of fields\n * @param {string | number} id - Field ID to update\n * @param {boolean} value - New enabled value\n * @returns {any[]} Updated fields array\n * \n * @example\n * const updated = updateFieldEnabledState(questions, \"q1\", true);\n */\nexport const updateFieldEnabledState = (\n fields: any[],\n id: string | number,\n value: boolean\n): any[] => {\n if (id === 'ALL') {\n return fields.map((field: any) => ({ ...field, isEnabled: value }));\n }\n\n let modifiedFields = fields.map((field: any) => {\n if (field?.id === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n\n const allNonAllFieldsEnabled = modifiedFields\n .filter((field: any) => field?.id !== 'ALL')\n .every((field: any) => field.isEnabled);\n\n modifiedFields = modifiedFields.map((field: any) => {\n if (field?.id === 'ALL') {\n return { ...field, isEnabled: allNonAllFieldsEnabled };\n }\n return field;\n });\n\n return modifiedFields;\n};\n\n/**\n * Checks if configuration field should be visible\n * \n * @param {any} field - Configuration field\n * @param {any} configuredFields - All configured fields\n * @returns {boolean} Whether field should be visible\n * \n * @example\n * const isVisible = isConfigurationFieldVisible(field, configuredFields);\n */\nexport const isConfigurationFieldVisible = (field: any, configuredFields: any): boolean => {\n if (field?.id === 'spreadsheet') {\n return !!configuredFields?.action?.value;\n }\n return true;\n};\n\n/**\n * Filters fields based on search input\n * \n * @param {any[]} fields - Array of fields to filter\n * @param {string} searchInput - Search query\n * @returns {any[]} Filtered fields array\n * \n * @example\n * const filtered = filterFieldsBySearch(questions, \"email\");\n */\nexport const filterFieldsBySearch = (fields: any[], searchInput: string): any[] => {\n if (!searchInput) return fields;\n return fields?.filter((field: any) =>\n field.id === 'ALL' ||\n String(field.name ?? '').toLowerCase().includes(searchInput.toLowerCase())\n );\n};\n\n/**\n * Organizes questions with parent-child hierarchy for display\n * Parent questions are followed by their children in the array\n * Adds isChild and parentId metadata for UI rendering\n * \n * @param {any[]} questions - Flat array of questions from API\n * @returns {any[]} Organized array with hierarchy metadata\n * \n * @example\n * const organized = organizeQuestionsWithHierarchy(apiQuestions);\n */\nexport const organizeQuestionsWithHierarchy = (questions: any[]): any[] => {\n if (!questions?.length) return [];\n\n // Separate parents and children\n const parents = questions.filter((q) => q.parent_question_id === null || q.parent_question_id === undefined);\n const children = questions.filter((q) => q.parent_question_id !== null && q.parent_question_id !== undefined);\n\n // Create a map of parentId -> children[]\n const childrenMap = new Map<number | string, any[]>();\n children.forEach((child) => {\n const parentId = child.parent_question_id;\n if (!childrenMap.has(parentId)) {\n childrenMap.set(parentId, []);\n }\n childrenMap.get(parentId)!.push(child);\n });\n\n // Sort children by position within each parent group\n childrenMap.forEach((childList) => {\n childList.sort((a, b) => parseFloat(a.position || '0') - parseFloat(b.position || '0'));\n });\n\n // Sort parents by section position then by position\n parents.sort((a, b) => {\n const sectionA = parseFloat(a.section?.position || '0');\n const sectionB = parseFloat(b.section?.position || '0');\n if (sectionA !== sectionB) return sectionA - sectionB;\n return parseFloat(a.position || '0') - parseFloat(b.position || '0');\n });\n\n // Build result: for each parent, add parent then its children\n const result: any[] = [];\n parents.forEach((parent) => {\n const hasChildren = childrenMap.has(parent.id);\n result.push({\n ...parent,\n isChild: false,\n parentId: null,\n hasChildren,\n });\n\n const parentChildren = childrenMap.get(parent.id) || [];\n parentChildren.forEach((child) => {\n result.push({\n ...child,\n isChild: true,\n parentId: parent.id,\n hasChildren: false,\n });\n });\n });\n\n return result?.filter((question) => question?.type !== \"Message\" && question?.type !== \"PaymentQuestion\");\n};\n\n/**\n * Updates field enabled state with parent-child cascade logic for questions\n * - When parent is toggled: all children follow\n * - When child is deselected: parent is deselected\n * - When all children are selected: parent is selected\n * \n * @param {any[]} fields - Array of fields\n * @param {string | number} id - Field ID to update\n * @param {boolean} value - New enabled value\n * @param {boolean} isHierarchical - Whether to apply parent-child cascade logic\n * @returns {any[]} Updated fields array\n * \n * @example\n * const updated = updateFieldEnabledStateWithHierarchy(questions, \"q1\", true, true);\n */\nexport const updateFieldEnabledStateWithHierarchy = (\n fields: any[],\n id: string | number,\n value: boolean,\n isHierarchical: boolean = false\n): any[] => {\n // If not hierarchical, use the standard logic\n if (!isHierarchical) {\n return updateFieldEnabledState(fields, id, value);\n }\n\n // Handle \"ALL\" selection\n if (id === 'ALL') {\n return fields.map((field: any) => ({ ...field, isEnabled: value }));\n }\n\n const targetField = fields.find((f) => f.id === id);\n if (!targetField) {\n return updateFieldEnabledState(fields, id, value);\n }\n\n let modifiedFields = [...fields];\n\n if (!targetField.isChild && targetField.hasChildren) {\n // Parent toggled - update parent and all its children\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === id || field.parentId === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n } else if (targetField.isChild) {\n // Child toggled\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n\n // Check parent state\n const parentId = targetField.parentId;\n const siblings = modifiedFields.filter((f) => f.parentId === parentId);\n const allSiblingsEnabled = siblings.every((s) => s.isEnabled);\n\n // Update parent based on children state\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === parentId) {\n return { ...field, isEnabled: allSiblingsEnabled };\n }\n return field;\n });\n } else {\n // Regular field without children\n modifiedFields = modifiedFields.map((field: any) => {\n if (field.id === id) {\n return { ...field, isEnabled: value };\n }\n return { ...field };\n });\n }\n\n // Update \"ALL\" checkbox state\n const allNonAllFieldsEnabled = modifiedFields\n .filter((field: any) => field?.id !== 'ALL')\n .every((field: any) => field.isEnabled);\n\n modifiedFields = modifiedFields.map((field: any) => {\n if (field?.id === 'ALL') {\n return { ...field, isEnabled: allNonAllFieldsEnabled };\n }\n return field;\n });\n\n return modifiedFields;\n};\n"],"names":[],"mappings":"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"}
|