@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":"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":["surveySparrowURL","useMappingData","useMemo","hasValidConditionData","hasAnyMappingData","deriveConditionDataFromSurveyData","_a","Flex","Spinner","Box","Heading","MappingCondition","ConditionCard","Text","RadioGroup","Radio","Tabs","TabsList","mappingTabValues","TabsTrigger","Chip","TabsContentComponent","CustomChip"],"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":["surveySparrowURL","useMappingData","useMemo","hasValidConditionData","hasAnyMappingData","deriveConditionDataFromSurveyData","_a","Flex","Spinner","Box","Heading","MappingCondition","ConditionCard","Text","RadioGroup","Radio","Tabs","TabsList","mappingTabValues","TabsTrigger","Chip","TabsContentComponent","CustomChip"],"mappings":"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"}
|
|
@@ -19,6 +19,15 @@ var __spreadValues = (a, b) => {
|
|
|
19
19
|
return a;
|
|
20
20
|
};
|
|
21
21
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
const RESPONSE_PDF_PROPERTY_ID = "RESPONSE_PDF";
|
|
23
|
+
const stripResponsePdfProperty = (fields, omit) => {
|
|
24
|
+
if (!omit || !(fields == null ? void 0 : fields.length))
|
|
25
|
+
return fields != null ? fields : void 0;
|
|
26
|
+
return fields.filter((f) => {
|
|
27
|
+
var _a;
|
|
28
|
+
return ((_a = f == null ? void 0 : f.id) != null ? _a : f == null ? void 0 : f.name) !== RESPONSE_PDF_PROPERTY_ID;
|
|
29
|
+
});
|
|
30
|
+
};
|
|
22
31
|
const updateFieldEnabledState = (fields, id, value) => {
|
|
23
32
|
if (id === "ALL") {
|
|
24
33
|
return fields.map((field) => __spreadProps(__spreadValues({}, field), { isEnabled: value }));
|
|
@@ -154,6 +163,7 @@ const updateFieldEnabledStateWithHierarchy = (fields, id, value, isHierarchical
|
|
|
154
163
|
exports.filterFieldsBySearch = filterFieldsBySearch;
|
|
155
164
|
exports.isConfigurationFieldVisible = isConfigurationFieldVisible;
|
|
156
165
|
exports.organizeQuestionsWithHierarchy = organizeQuestionsWithHierarchy;
|
|
166
|
+
exports.stripResponsePdfProperty = stripResponsePdfProperty;
|
|
157
167
|
exports.updateFieldEnabledState = updateFieldEnabledState;
|
|
158
168
|
exports.updateFieldEnabledStateWithHierarchy = updateFieldEnabledStateWithHierarchy;
|
|
159
169
|
//# 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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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('../../mapping/services/index.js');
|
|
5
|
-
var index
|
|
4
|
+
var index$1 = require('../../mapping/services/index.js');
|
|
5
|
+
var index = require('../../commons/constants/index.js');
|
|
6
6
|
require('../../node_modules/dayjs/dayjs.min.js');
|
|
7
7
|
var mapping_helpers = require('../helpers/mapping.helpers.js');
|
|
8
8
|
|
|
@@ -27,7 +27,7 @@ var __spreadValues = (a, b) => {
|
|
|
27
27
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
28
28
|
const useMappingData = ({
|
|
29
29
|
surveyId,
|
|
30
|
-
apiURL = index
|
|
30
|
+
apiURL = index.surveySparrowURL,
|
|
31
31
|
token,
|
|
32
32
|
surveyProperties,
|
|
33
33
|
importResponse,
|
|
@@ -35,9 +35,15 @@ const useMappingData = ({
|
|
|
35
35
|
setIsInitialLoad,
|
|
36
36
|
setOriginalMappingData,
|
|
37
37
|
ssMappingData: externalSsMappingData,
|
|
38
|
-
setSSMappingData: externalSetSSMappingData
|
|
38
|
+
setSSMappingData: externalSetSSMappingData,
|
|
39
|
+
hasResponsePDF
|
|
39
40
|
}) => {
|
|
40
41
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
42
|
+
const omitResponsePdf = hasResponsePDF !== true;
|
|
43
|
+
const baseMappingPropertyValues = React.useMemo(
|
|
44
|
+
() => omitResponsePdf ? index.mappingPropertyValues.filter((p) => p.id !== "RESPONSE_PDF") : index.mappingPropertyValues,
|
|
45
|
+
[omitResponsePdf]
|
|
46
|
+
);
|
|
41
47
|
const [loader, setLoader] = React.useState(true);
|
|
42
48
|
const [searchInput, setSearchInput] = React.useState("");
|
|
43
49
|
const [isApiData, setIsApiData] = React.useState(false);
|
|
@@ -67,27 +73,27 @@ const useMappingData = ({
|
|
|
67
73
|
[]
|
|
68
74
|
);
|
|
69
75
|
const fetchInitialMappingData = React.useCallback(async () => {
|
|
70
|
-
var _a2;
|
|
71
76
|
setLoader(true);
|
|
72
77
|
try {
|
|
73
78
|
if (surveyProperties) {
|
|
74
79
|
setIsApiData(false);
|
|
75
80
|
const { questions, variables, contactProperties, expressions, property, derivedQuestions } = surveyProperties;
|
|
81
|
+
const propertyForMapping = mapping_helpers.stripResponsePdfProperty(property, omitResponsePdf);
|
|
76
82
|
setSSMappingData({
|
|
77
83
|
questions: (questions == null ? void 0 : questions.length) ? modifiedMappingData(questions, "Select all Questions") : [],
|
|
78
84
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? modifiedMappingData(contactProperties, "Select all Contact Properties") : [],
|
|
79
85
|
variables: (variables == null ? void 0 : variables.length) ? modifiedMappingData(variables, "Select all Variables") : [],
|
|
80
86
|
expressions: (expressions == null ? void 0 : expressions.length) ? modifiedMappingData(expressions, "Select all Expressions") : [],
|
|
81
|
-
property: (
|
|
87
|
+
property: (propertyForMapping == null ? void 0 : propertyForMapping.length) ? modifiedMappingData(propertyForMapping, "Select all Properties") : [],
|
|
82
88
|
derivedQuestions: (derivedQuestions == null ? void 0 : derivedQuestions.length) ? modifiedMappingData(derivedQuestions, "Select all Enrich") : []
|
|
83
89
|
});
|
|
84
90
|
} else {
|
|
85
91
|
setIsApiData(true);
|
|
86
92
|
const [questions, variables, contactProperties, expressions] = await Promise.all([
|
|
87
|
-
index.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
88
|
-
index.fetchSurveyVariables(apiURL, surveyId, token),
|
|
89
|
-
index.fetchContactProperties(apiURL, token),
|
|
90
|
-
index.fetchSurveyExpression(apiURL, surveyId, token)
|
|
93
|
+
index$1.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
94
|
+
index$1.fetchSurveyVariables(apiURL, surveyId, token),
|
|
95
|
+
index$1.fetchContactProperties(apiURL, token),
|
|
96
|
+
index$1.fetchSurveyExpression(apiURL, surveyId, token)
|
|
91
97
|
]);
|
|
92
98
|
const organizedQuestions = mapping_helpers.organizeQuestionsWithHierarchy(questions || []);
|
|
93
99
|
setSSMappingData({
|
|
@@ -95,7 +101,7 @@ const useMappingData = ({
|
|
|
95
101
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? modifiedMappingData(contactProperties, "Select all Contact Properties") : [],
|
|
96
102
|
variables: (variables == null ? void 0 : variables.length) ? modifiedMappingData(variables, "Select all Variables") : [],
|
|
97
103
|
expressions: (expressions == null ? void 0 : expressions.length) ? modifiedMappingData(expressions, "Select all Expressions") : [],
|
|
98
|
-
property: (
|
|
104
|
+
property: (baseMappingPropertyValues == null ? void 0 : baseMappingPropertyValues.length) ? modifiedMappingData(baseMappingPropertyValues, "Select all Properties") : [],
|
|
99
105
|
derivedQuestions: []
|
|
100
106
|
});
|
|
101
107
|
}
|
|
@@ -104,16 +110,16 @@ const useMappingData = ({
|
|
|
104
110
|
} finally {
|
|
105
111
|
setLoader(false);
|
|
106
112
|
}
|
|
107
|
-
}, [surveyId, apiURL, token, surveyProperties, modifiedMappingData]);
|
|
113
|
+
}, [surveyId, apiURL, token, surveyProperties, modifiedMappingData, omitResponsePdf, baseMappingPropertyValues]);
|
|
108
114
|
const fetchAndMergeEditData = React.useCallback(async () => {
|
|
109
|
-
var _a2;
|
|
115
|
+
var _a2, _b2;
|
|
110
116
|
setLoader(true);
|
|
111
117
|
try {
|
|
112
118
|
const [questions, variables, contactProperties, expressions] = await Promise.all([
|
|
113
|
-
index.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
114
|
-
index.fetchSurveyVariables(apiURL, surveyId, token),
|
|
115
|
-
index.fetchContactProperties(apiURL, token),
|
|
116
|
-
index.fetchSurveyExpression(apiURL, surveyId, token)
|
|
119
|
+
index$1.fetchSurveyQuestions(apiURL, surveyId, token),
|
|
120
|
+
index$1.fetchSurveyVariables(apiURL, surveyId, token),
|
|
121
|
+
index$1.fetchContactProperties(apiURL, token),
|
|
122
|
+
index$1.fetchSurveyExpression(apiURL, surveyId, token)
|
|
117
123
|
]);
|
|
118
124
|
const organizedQuestions = mapping_helpers.organizeQuestionsWithHierarchy(questions || []);
|
|
119
125
|
const editMappedFields = (_a2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _a2.mappedFields;
|
|
@@ -148,7 +154,7 @@ const useMappingData = ({
|
|
|
148
154
|
variables: mergeWithEnabled(variables || [], enabledVariableIds, "Select all Variables"),
|
|
149
155
|
contactProperties: mergeWithEnabled(contactProperties || [], enabledContactPropertyIds, "Select all Contact Properties"),
|
|
150
156
|
expressions: mergeWithEnabled(expressions || [], enabledExpressionIds, "Select all Expressions"),
|
|
151
|
-
property: mergeWithEnabled(
|
|
157
|
+
property: mergeWithEnabled(baseMappingPropertyValues || [], enabledPropertyIds, "Select all Properties"),
|
|
152
158
|
derivedQuestions: []
|
|
153
159
|
// Enrich not available from API
|
|
154
160
|
};
|
|
@@ -169,7 +175,7 @@ const useMappingData = ({
|
|
|
169
175
|
variables: processField(mappedFields == null ? void 0 : mappedFields.variables, "Select all Variables"),
|
|
170
176
|
contactProperties: processField(mappedFields == null ? void 0 : mappedFields.contactProperties, "Select all Contact Properties"),
|
|
171
177
|
expressions: processField(mappedFields == null ? void 0 : mappedFields.expressions, "Select all Expressions"),
|
|
172
|
-
property: processField(mappedFields == null ? void 0 : mappedFields.property, "Select all Properties"),
|
|
178
|
+
property: processField((_b2 = mapping_helpers.stripResponsePdfProperty(mappedFields == null ? void 0 : mappedFields.property, omitResponsePdf)) != null ? _b2 : [], "Select all Properties"),
|
|
173
179
|
derivedQuestions: processField(mappedFields == null ? void 0 : mappedFields.derivedQuestions, "Select all Enrich")
|
|
174
180
|
};
|
|
175
181
|
setSSMappingData(updatedSSMappingData);
|
|
@@ -177,7 +183,7 @@ const useMappingData = ({
|
|
|
177
183
|
} finally {
|
|
178
184
|
setLoader(false);
|
|
179
185
|
}
|
|
180
|
-
}, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData]);
|
|
186
|
+
}, [apiURL, surveyId, token, editField, surveyProperties, modifiedMappingData, setSSMappingData, setOriginalMappingData, omitResponsePdf, baseMappingPropertyValues]);
|
|
181
187
|
const handleFieldValues = React.useCallback(
|
|
182
188
|
(type, id, value) => {
|
|
183
189
|
const useHierarchy = type === "questions" && isApiData;
|
|
@@ -227,7 +233,7 @@ const useMappingData = ({
|
|
|
227
233
|
});
|
|
228
234
|
}, []);
|
|
229
235
|
React.useEffect(() => {
|
|
230
|
-
var _a2;
|
|
236
|
+
var _a2, _b2;
|
|
231
237
|
if (!(editField == null ? void 0 : editField.id)) {
|
|
232
238
|
fetchInitialMappingData();
|
|
233
239
|
} else if (editField == null ? void 0 : editField.id) {
|
|
@@ -252,19 +258,22 @@ const useMappingData = ({
|
|
|
252
258
|
"Select all Contact Properties"
|
|
253
259
|
),
|
|
254
260
|
expressions: processField(mappedFields == null ? void 0 : mappedFields.expressions, "Select all Expressions"),
|
|
255
|
-
property: ensureSubmissionIdEnabled(
|
|
261
|
+
property: ensureSubmissionIdEnabled(
|
|
262
|
+
processField((_b2 = mapping_helpers.stripResponsePdfProperty(mappedFields == null ? void 0 : mappedFields.property, omitResponsePdf)) != null ? _b2 : [], "Select all Properties")
|
|
263
|
+
),
|
|
256
264
|
derivedQuestions: processField(mappedFields == null ? void 0 : mappedFields.derivedQuestions, "Select all Enrich")
|
|
257
265
|
};
|
|
258
266
|
setSSMappingData(updatedSSMappingData);
|
|
259
267
|
setOriginalMappingData(updatedSSMappingData);
|
|
260
268
|
} else {
|
|
261
269
|
const { questions, variables, contactProperties, expressions, property, derivedQuestions } = surveyProperties || {};
|
|
270
|
+
const rawProperty = mapping_helpers.stripResponsePdfProperty(property, omitResponsePdf);
|
|
262
271
|
const updatedSSMappingData = {
|
|
263
272
|
questions: (questions == null ? void 0 : questions.length) ? questions : [],
|
|
264
273
|
contactProperties: (contactProperties == null ? void 0 : contactProperties.length) ? contactProperties : [],
|
|
265
274
|
variables: (variables == null ? void 0 : variables.length) ? variables : [],
|
|
266
275
|
expressions: (expressions == null ? void 0 : expressions.length) ? expressions : [],
|
|
267
|
-
property: (
|
|
276
|
+
property: (rawProperty == null ? void 0 : rawProperty.length) ? rawProperty : [],
|
|
268
277
|
derivedQuestions: (derivedQuestions == null ? void 0 : derivedQuestions.length) ? derivedQuestions : []
|
|
269
278
|
};
|
|
270
279
|
setSSMappingData(updatedSSMappingData);
|
|
@@ -274,7 +283,7 @@ const useMappingData = ({
|
|
|
274
283
|
}
|
|
275
284
|
}
|
|
276
285
|
setIsInitialLoad(false);
|
|
277
|
-
}, [token, surveyId]);
|
|
286
|
+
}, [token, surveyId, hasResponsePDF]);
|
|
278
287
|
React.useEffect(() => {
|
|
279
288
|
var _a2;
|
|
280
289
|
const importMethod = (_a2 = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a2.importMethod;
|
|
@@ -288,7 +297,7 @@ const useMappingData = ({
|
|
|
288
297
|
return modifiedMappingData(field, label, field.every((item) => item.isEnabled));
|
|
289
298
|
};
|
|
290
299
|
setSSMappingData((prevData) => {
|
|
291
|
-
var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h, _i, _j, _k, _l;
|
|
300
|
+
var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h, _i, _j, _k, _l, _m;
|
|
292
301
|
const newData = {
|
|
293
302
|
questions: processField((_b2 = (_a3 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _a3.mappedFields) == null ? void 0 : _b2.questions, "Select all Questions"),
|
|
294
303
|
variables: processField((_d2 = (_c2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _c2.mappedFields) == null ? void 0 : _d2.variables, "Select all Variables"),
|
|
@@ -297,9 +306,14 @@ const useMappingData = ({
|
|
|
297
306
|
"Select all Contact Properties"
|
|
298
307
|
),
|
|
299
308
|
expressions: processField((_h = (_g2 = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _g2.mappedFields) == null ? void 0 : _h.expressions, "Select all Expressions"),
|
|
300
|
-
property: ensureSubmissionIdEnabled(
|
|
309
|
+
property: ensureSubmissionIdEnabled(
|
|
310
|
+
processField(
|
|
311
|
+
(_k = mapping_helpers.stripResponsePdfProperty((_j = (_i = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _i.mappedFields) == null ? void 0 : _j.property, omitResponsePdf)) != null ? _k : [],
|
|
312
|
+
"Select all Properties"
|
|
313
|
+
)
|
|
314
|
+
),
|
|
301
315
|
derivedQuestions: processField(
|
|
302
|
-
(
|
|
316
|
+
(_m = (_l = editField == null ? void 0 : editField.fieldValues) == null ? void 0 : _l.mappedFields) == null ? void 0 : _m.derivedQuestions,
|
|
303
317
|
"Select all Enrich"
|
|
304
318
|
)
|
|
305
319
|
};
|
|
@@ -312,13 +326,14 @@ const useMappingData = ({
|
|
|
312
326
|
setSSMappingData((prevData) => {
|
|
313
327
|
var _a3, _b2, _c2, _d2, _e2, _f2;
|
|
314
328
|
const hasAllId = (arr) => arr == null ? void 0 : arr.some((item) => item.id === "ALL");
|
|
329
|
+
const strippedPrevProperty = mapping_helpers.stripResponsePdfProperty(prevData == null ? void 0 : prevData.property, omitResponsePdf);
|
|
315
330
|
const newData = {
|
|
316
331
|
questions: hasAllId(prevData == null ? void 0 : prevData.questions) ? prevData == null ? void 0 : prevData.questions : ((_a3 = prevData == null ? void 0 : prevData.questions) == null ? void 0 : _a3.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.questions, "Select all Questions") : [],
|
|
317
332
|
variables: hasAllId(prevData == null ? void 0 : prevData.variables) ? prevData == null ? void 0 : prevData.variables : ((_b2 = prevData == null ? void 0 : prevData.variables) == null ? void 0 : _b2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.variables, "Select all Variables") : [],
|
|
318
333
|
contactProperties: hasAllId(prevData == null ? void 0 : prevData.contactProperties) ? prevData == null ? void 0 : prevData.contactProperties : ((_c2 = prevData == null ? void 0 : prevData.contactProperties) == null ? void 0 : _c2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.contactProperties, "Select all Contact Properties") : [],
|
|
319
334
|
expressions: hasAllId(prevData == null ? void 0 : prevData.expressions) ? prevData == null ? void 0 : prevData.expressions : ((_d2 = prevData == null ? void 0 : prevData.expressions) == null ? void 0 : _d2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.expressions, "Select all Expressions") : [],
|
|
320
335
|
property: ensureSubmissionIdEnabled(
|
|
321
|
-
hasAllId(prevData == null ? void 0 : prevData.property) ?
|
|
336
|
+
hasAllId(prevData == null ? void 0 : prevData.property) ? (_e2 = strippedPrevProperty != null ? strippedPrevProperty : prevData == null ? void 0 : prevData.property) != null ? _e2 : [] : (strippedPrevProperty == null ? void 0 : strippedPrevProperty.length) ? modifiedMappingData(strippedPrevProperty, "Select all Properties") : []
|
|
322
337
|
),
|
|
323
338
|
derivedQuestions: hasAllId(prevData == null ? void 0 : prevData.derivedQuestions) ? prevData == null ? void 0 : prevData.derivedQuestions : ((_f2 = prevData == null ? void 0 : prevData.derivedQuestions) == null ? void 0 : _f2.length) ? modifiedMappingData(prevData == null ? void 0 : prevData.derivedQuestions, "Select all Enrich") : []
|
|
324
339
|
};
|
|
@@ -329,7 +344,7 @@ const useMappingData = ({
|
|
|
329
344
|
});
|
|
330
345
|
}
|
|
331
346
|
}
|
|
332
|
-
}, [(_a = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a.importMethod]);
|
|
347
|
+
}, [(_a = importResponse == null ? void 0 : importResponse.value) == null ? void 0 : _a.importMethod, hasResponsePDF]);
|
|
333
348
|
const handleMappingDataChange = React.useCallback(
|
|
334
349
|
(mappingData) => {
|
|
335
350
|
var _a2;
|