@sparrowengg/integrations-templates-frontend 4.0.0-refold.13 → 4.0.0-refold.15
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/dist/cjs/commons/helpers/index.js +10 -6
- package/dist/cjs/commons/helpers/index.js.map +1 -1
- package/dist/cjs/dynamic-mapping/components/mapping.js +4 -2
- package/dist/cjs/dynamic-mapping/components/mapping.js.map +1 -1
- package/dist/cjs/dynamic-mapping/components/tabs-content-component.js +24 -4
- package/dist/cjs/dynamic-mapping/components/tabs-content-component.js.map +1 -1
- package/dist/cjs/dynamic-mapping/helpers/mapping.helpers.js +97 -0
- package/dist/cjs/dynamic-mapping/helpers/mapping.helpers.js.map +1 -1
- package/dist/cjs/dynamic-mapping/hooks/use-mapping-data.js +127 -38
- package/dist/cjs/dynamic-mapping/hooks/use-mapping-data.js.map +1 -1
- package/dist/cjs/mapping/hooks/use-survey-data.js +4 -1
- package/dist/cjs/mapping/hooks/use-survey-data.js.map +1 -1
- package/dist/es/commons/helpers/index.js +10 -6
- package/dist/es/commons/helpers/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/components/tabs-content-component.js +24 -4
- package/dist/es/dynamic-mapping/components/tabs-content-component.js.map +1 -1
- package/dist/es/dynamic-mapping/helpers/mapping.helpers.js +96 -1
- package/dist/es/dynamic-mapping/helpers/mapping.helpers.js.map +1 -1
- package/dist/es/dynamic-mapping/hooks/use-mapping-data.js +128 -39
- package/dist/es/dynamic-mapping/hooks/use-mapping-data.js.map +1 -1
- package/dist/es/mapping/hooks/use-survey-data.js +4 -1
- package/dist/es/mapping/hooks/use-survey-data.js.map +1 -1
- package/package.json +1 -1
|
@@ -92,12 +92,14 @@ const handleQuestionOptions = (surveyQuestions) => {
|
|
|
92
92
|
existingGroup.options.push(...itemOptions);
|
|
93
93
|
}
|
|
94
94
|
} else if (item.label || item.rtxt) {
|
|
95
|
-
|
|
95
|
+
const baseLabel = item.label || item.rtxt;
|
|
96
|
+
const displayLabel = item.isChild ? `${baseLabel}` : baseLabel;
|
|
97
|
+
result.push(__spreadValues(__spreadProps(__spreadValues({}, item), {
|
|
96
98
|
questionType: (_b = item == null ? void 0 : item.questionType) != null ? _b : item.type,
|
|
97
|
-
label:
|
|
99
|
+
label: displayLabel,
|
|
98
100
|
options: ((_c = item.options) == null ? void 0 : _c.length) ? item.options : [],
|
|
99
101
|
value: (item == null ? void 0 : item.value) ? item.value : item.id
|
|
100
|
-
}));
|
|
102
|
+
}), item.hasChildren && { isDisabled: true }));
|
|
101
103
|
}
|
|
102
104
|
return result;
|
|
103
105
|
}, []);
|
|
@@ -108,11 +110,13 @@ const handleQuestionOptions = (surveyQuestions) => {
|
|
|
108
110
|
});
|
|
109
111
|
const filteredData = updatedData == null ? void 0 : updatedData.filter((item) => !item.label).map((question) => {
|
|
110
112
|
var _a;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
const baseLabel = !!((_a = question.rtxt) == null ? void 0 : _a.length) ? question.rtxt : "Please enter your question";
|
|
114
|
+
const displayLabel = question.isChild ? `-- ${baseLabel}` : baseLabel;
|
|
115
|
+
return __spreadValues({
|
|
116
|
+
label: displayLabel,
|
|
113
117
|
value: question.id,
|
|
114
118
|
questionType: question.type
|
|
115
|
-
};
|
|
119
|
+
}, question.hasChildren && { isDisabled: true });
|
|
116
120
|
});
|
|
117
121
|
const formattedData = [
|
|
118
122
|
...filteredData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/commons/helpers/index.ts"],"sourcesContent":["import { ResultGroupDataOptionsType, ResultGroupDataType } from \"../../mapping/types\";\n\nexport const handleMappingOptions = (\n mappingType: string,\n surveyQuestions: Array<any>,\n contactProperties: Array<any>,\n derivedQuestions: any,\n surveyVariables: Array<any>,\n expressions: Array<any>,\n integrationsNpsSubmissionProperties: Array<any>,\n integrationsClassicSubmissionProperties: Array<any>,\n surveyType: string,\n hasSurveyProperties?: boolean | undefined\n) => {\n let currentOption;\n switch (mappingType) {\n case \"QUESTION\":\n if(hasSurveyProperties){\n currentOption = surveyQuestions?.map((question) => ({\n ...question,\n questionType: question.type\n }));\n } else {\n const filteredQuestions = surveyQuestions.filter((question) => question?.type !== \"Message\" && question?.type !== \"PaymentQuestion\");\n currentOption = handleQuestionOptions(filteredQuestions);\n }\n console.log('currentOption', currentOption);\n break;\n case \"CONTACT\":\n const filteredContactProperties = contactProperties.filter((contact) => contact?.name !== \"team_internal\" && contact?.name !== \"department_internal\");\n currentOption = filteredContactProperties.map((contact) => ({\n label: contact.label,\n value: contact.name\n }));\n break;\n case \"VARIABLE\":\n currentOption = surveyVariables.map((varibles) => ({\n name: varibles.name,\n label: varibles.label,\n value: varibles.id\n }));\n break;\n case \"EXPRESSION\":\n currentOption = expressions.map((expression) => ({\n label: expression.name,\n value: expression.id\n }));\n break;\n case \"SUBMISSION_PROPERTY\":\n currentOption = surveyType?.toLocaleLowerCase() === \"classicform\" ? integrationsClassicSubmissionProperties : integrationsNpsSubmissionProperties;\n break;\n case \"DERIVED_QUESTION\":\n currentOption = derivedQuestions?.map((derivedQuestion: any) => ({\n label: derivedQuestion.label,\n value: derivedQuestion.id,\n ...derivedQuestion\n }));\n break;\n default:\n currentOption = [];\n }\n return currentOption;\n};\n\nconst handleQuestionOptions = (surveyQuestions: Array<any>) => {\n const data = surveyQuestions.map((val) => {\n return { ...val };\n });\n const groupedData = data.reduce((result, item) => {\n const existingGroup = result.find((group: ResultGroupDataType) => group.label === item.label);\n\n if (existingGroup) {\n const itemOptions = item.options?.length ? item.options : [];\n if (itemOptions.length > 0) {\n existingGroup.options.push(...itemOptions);\n }\n } else if (item.label || item.rtxt) {\n result.push({\n ...item,\n questionType: item?.questionType ?? item.type,\n label: item.label || item.rtxt,\n options: item.options?.length ? item.options : [],\n value: item?.value ? item.value : item.id\n });\n }\n return result;\n }, []);\n\n // Extract other data\n const updatedData = data?.filter((question) => {\n if (!groupedData.some((data: ResultGroupDataType) => data.label === question.rtxt)) {\n return question;\n }\n });\n\n const filteredData = updatedData\n ?.filter((item) => !item.label)\n .map((question) => ({\n label: !!question.rtxt?.length ? question.rtxt :'Please enter your question',\n value: question.id,\n questionType: question.type\n }));\n\n const formattedData = [\n ...filteredData,\n ...groupedData.map((data: ResultGroupDataType) => {\n // Only include options property if there are actual sub-options\n // react-select treats items with an empty options array as empty groups\n if (data.options?.length > 0) {\n return {\n ...data,\n options: data.options.map((option: ResultGroupDataOptionsType) => ({\n ...option,\n label: `- ${option.label}`\n }))\n };\n }\n // Remove the options property for flat items so react-select treats them as selectable options\n const { options, ...flatItem } = data;\n return flatItem;\n })\n ];\n return formattedData;\n};\n\n\nexport const generateUniqueId = (): string => {\n return `id-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n};"],"names":["data"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/commons/helpers/index.ts"],"sourcesContent":["import { ResultGroupDataOptionsType, ResultGroupDataType } from \"../../mapping/types\";\n\nexport const handleMappingOptions = (\n mappingType: string,\n surveyQuestions: Array<any>,\n contactProperties: Array<any>,\n derivedQuestions: any,\n surveyVariables: Array<any>,\n expressions: Array<any>,\n integrationsNpsSubmissionProperties: Array<any>,\n integrationsClassicSubmissionProperties: Array<any>,\n surveyType: string,\n hasSurveyProperties?: boolean | undefined\n) => {\n let currentOption;\n switch (mappingType) {\n case \"QUESTION\":\n if(hasSurveyProperties){\n currentOption = surveyQuestions?.map((question) => ({\n ...question,\n questionType: question.type\n }));\n } else {\n const filteredQuestions = surveyQuestions.filter((question) => question?.type !== \"Message\" && question?.type !== \"PaymentQuestion\");\n currentOption = handleQuestionOptions(filteredQuestions);\n }\n console.log('currentOption', currentOption);\n break;\n case \"CONTACT\":\n const filteredContactProperties = contactProperties.filter((contact) => contact?.name !== \"team_internal\" && contact?.name !== \"department_internal\");\n currentOption = filteredContactProperties.map((contact) => ({\n label: contact.label,\n value: contact.name\n }));\n break;\n case \"VARIABLE\":\n currentOption = surveyVariables.map((varibles) => ({\n name: varibles.name,\n label: varibles.label,\n value: varibles.id\n }));\n break;\n case \"EXPRESSION\":\n currentOption = expressions.map((expression) => ({\n label: expression.name,\n value: expression.id\n }));\n break;\n case \"SUBMISSION_PROPERTY\":\n currentOption = surveyType?.toLocaleLowerCase() === \"classicform\" ? integrationsClassicSubmissionProperties : integrationsNpsSubmissionProperties;\n break;\n case \"DERIVED_QUESTION\":\n currentOption = derivedQuestions?.map((derivedQuestion: any) => ({\n label: derivedQuestion.label,\n value: derivedQuestion.id,\n ...derivedQuestion\n }));\n break;\n default:\n currentOption = [];\n }\n return currentOption;\n};\n\nconst handleQuestionOptions = (surveyQuestions: Array<any>) => {\n const data = surveyQuestions.map((val) => {\n return { ...val };\n });\n const groupedData = data.reduce((result, item) => {\n const existingGroup = result.find((group: ResultGroupDataType) => group.label === item.label);\n\n if (existingGroup) {\n const itemOptions = item.options?.length ? item.options : [];\n if (itemOptions.length > 0) {\n existingGroup.options.push(...itemOptions);\n }\n } else if (item.label || item.rtxt) {\n // Determine the label - add \"--\" prefix for child questions\n const baseLabel = item.label || item.rtxt;\n const displayLabel = item.isChild ? `${baseLabel}` : baseLabel;\n \n result.push({\n ...item,\n questionType: item?.questionType ?? item.type,\n label: displayLabel,\n options: item.options?.length ? item.options : [],\n value: item?.value ? item.value : item.id,\n // Disable parent questions that have children (they can't be selected directly)\n ...(item.hasChildren && { isDisabled: true }),\n });\n }\n return result;\n }, []);\n\n // Extract other data\n const updatedData = data?.filter((question) => {\n if (!groupedData.some((data: ResultGroupDataType) => data.label === question.rtxt)) {\n return question;\n }\n });\n\n const filteredData = updatedData\n ?.filter((item) => !item.label)\n .map((question) => {\n // Determine the label - add \"--\" prefix for child questions\n const baseLabel = !!question.rtxt?.length ? question.rtxt : 'Please enter your question';\n const displayLabel = question.isChild ? `-- ${baseLabel}` : baseLabel;\n \n return {\n label: displayLabel,\n value: question.id,\n questionType: question.type,\n // Disable parent questions that have children (they can't be selected directly)\n ...(question.hasChildren && { isDisabled: true }),\n };\n });\n\n const formattedData = [\n ...filteredData,\n ...groupedData.map((data: ResultGroupDataType) => {\n // Only include options property if there are actual sub-options\n // react-select treats items with an empty options array as empty groups\n if (data.options?.length > 0) {\n return {\n ...data,\n options: data.options.map((option: ResultGroupDataOptionsType) => ({\n ...option,\n label: `- ${option.label}`\n }))\n };\n }\n // Remove the options property for flat items so react-select treats them as selectable options\n const { options, ...flatItem } = data;\n return flatItem;\n })\n ];\n return formattedData;\n};\n\n\nexport const generateUniqueId = (): string => {\n return `id-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n};"],"names":["data"],"mappings":"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"}
|
|
@@ -43,7 +43,8 @@ const Mapping = ({
|
|
|
43
43
|
ssMappingData: hookSsMappingData,
|
|
44
44
|
handleFieldValues,
|
|
45
45
|
getMappingCount,
|
|
46
|
-
getAllMappingCount
|
|
46
|
+
getAllMappingCount,
|
|
47
|
+
isApiData
|
|
47
48
|
} = useMappingData.useMappingData({
|
|
48
49
|
surveyId,
|
|
49
50
|
apiURL,
|
|
@@ -188,7 +189,8 @@ const Mapping = ({
|
|
|
188
189
|
value: "QUESTIONS",
|
|
189
190
|
placeholder: "Questions",
|
|
190
191
|
fields: mappingData == null ? void 0 : mappingData.questions,
|
|
191
|
-
handleFieldValues: (field, value) => handleFieldValues("questions", field == null ? void 0 : field.id, value)
|
|
192
|
+
handleFieldValues: (field, value) => handleFieldValues("questions", field == null ? void 0 : field.id, value),
|
|
193
|
+
isApiData
|
|
192
194
|
}
|
|
193
195
|
), /* @__PURE__ */ React.createElement(
|
|
194
196
|
tabsContentComponent.TabsContentComponent,
|
|
@@ -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 } = 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 />\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=\"Derived Questions\"\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}\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=\"Derived Questions\"\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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"}
|
|
@@ -12,13 +12,33 @@ var tooltip = require('../../node_modules/@sparrowengg/twigs-react/dist/es/toolt
|
|
|
12
12
|
var checkbox = require('../../node_modules/@sparrowengg/twigs-react/dist/es/checkbox/checkbox.js');
|
|
13
13
|
var text = require('../../node_modules/@sparrowengg/twigs-react/dist/es/text/text.js');
|
|
14
14
|
|
|
15
|
+
var __defProp = Object.defineProperty;
|
|
16
|
+
var __defProps = Object.defineProperties;
|
|
17
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
18
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
19
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
20
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
21
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
22
|
+
var __spreadValues = (a, b) => {
|
|
23
|
+
for (var prop in b || (b = {}))
|
|
24
|
+
if (__hasOwnProp.call(b, prop))
|
|
25
|
+
__defNormalProp(a, prop, b[prop]);
|
|
26
|
+
if (__getOwnPropSymbols)
|
|
27
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
28
|
+
if (__propIsEnum.call(b, prop))
|
|
29
|
+
__defNormalProp(a, prop, b[prop]);
|
|
30
|
+
}
|
|
31
|
+
return a;
|
|
32
|
+
};
|
|
33
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
15
34
|
const TabsContentComponent = ({
|
|
16
35
|
value,
|
|
17
36
|
searchInput,
|
|
18
37
|
setSearchInput,
|
|
19
38
|
fields,
|
|
20
39
|
handleFieldValues,
|
|
21
|
-
placeholder
|
|
40
|
+
placeholder,
|
|
41
|
+
isApiData = false
|
|
22
42
|
}) => {
|
|
23
43
|
const filteredFields = React.useMemo(
|
|
24
44
|
() => mapping_helpers.filterFieldsBySearch(fields || [], searchInput),
|
|
@@ -59,7 +79,7 @@ const TabsContentComponent = ({
|
|
|
59
79
|
box.Box,
|
|
60
80
|
{
|
|
61
81
|
key: field.id,
|
|
62
|
-
css: {
|
|
82
|
+
css: __spreadProps(__spreadValues({}, isApiData && field.isChild && { paddingLeft: "24px" }), {
|
|
63
83
|
label: {
|
|
64
84
|
color: "$neutral900",
|
|
65
85
|
fontSize: "$sm",
|
|
@@ -70,7 +90,7 @@ const TabsContentComponent = ({
|
|
|
70
90
|
whiteSpace: "nowrap",
|
|
71
91
|
cursor: "pointer"
|
|
72
92
|
}
|
|
73
|
-
}
|
|
93
|
+
})
|
|
74
94
|
},
|
|
75
95
|
/* @__PURE__ */ React.createElement(
|
|
76
96
|
tooltip.Tooltip,
|
|
@@ -89,7 +109,7 @@ const TabsContentComponent = ({
|
|
|
89
109
|
disabled: field.disabled,
|
|
90
110
|
onChange: (value2) => handleFieldValues(field, value2)
|
|
91
111
|
},
|
|
92
|
-
field.name
|
|
112
|
+
isApiData && field.isChild ? `-- ${field.name}` : field.name
|
|
93
113
|
))
|
|
94
114
|
)
|
|
95
115
|
))) : /* @__PURE__ */ React.createElement(flex.Flex, { alignItems: "center", justifyContent: "center", css: { marginTop: "$40" } }, /* @__PURE__ */ React.createElement(text.Text, { size: "sm" }, "No Results Found"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-content-component.js","sources":["../../../../src/dynamic-mapping/components/tabs-content-component.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo } from 'react';\nimport { Box, Flex, Input, Text, Checkbox, Tooltip, TabsContent } from '@sparrowengg/twigs-react';\nimport { SearchIcon } from '@sparrowengg/twigs-react-icons';\nimport { filterFieldsBySearch } from '../helpers';\n\n/* ----- Types / Interfaces ----- */\n\ninterface TabsContentComponentProps {\n value: string;\n searchInput: string;\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\n fields: any[];\n handleFieldValues: (field: any, value: boolean) => void;\n placeholder: string;\n}\n\n/* ----- Main Component ----- */\n\n/**\n * Tabs content component for mapping fields\n * \n * @param {TabsContentComponentProps} props - Component props\n * @returns {JSX.Element} Tabs content component\n * \n * @example\n * <TabsContentComponent\n * value=\"QUESTIONS\"\n * searchInput={search}\n * fields={questions}\n * handleFieldValues={handleChange}\n * placeholder=\"Questions\"\n * />\n */\nexport const TabsContentComponent = ({\n value,\n searchInput,\n setSearchInput,\n fields,\n handleFieldValues,\n placeholder,\n}: TabsContentComponentProps): JSX.Element => {\n const filteredFields = useMemo(\n () => filterFieldsBySearch(fields || [], searchInput),\n [fields, searchInput]\n );\n\n\n const hasResults = useMemo(() => filteredFields?.length > 0, [filteredFields]);\n\n return (\n <TabsContent value={value} css={{ padding: 0, position: 'relative' }} key={value}>\n <Input\n leftIcon={<SearchIcon color=\"#848484\" />}\n variant=\"filled\"\n placeholder={`Search ${placeholder}`}\n size=\"lg\"\n css={{ marginTop: '$8' }}\n value={searchInput}\n onChange={(event) => setSearchInput(event.currentTarget.value)}\n />\n \n <Flex\n css={{\n padding: '$8 $4 $32 $4',\n marginTop: '$8',\n height: 'calc(100vh - 408px)',\n overflow: 'auto',\n scrollbarWidth: 'thin',\n '&::-webkit-scrollbar': {\n width: '4px',\n },\n '& label': {\n lineHeight: '$sm',\n },\n }}\n flexDirection=\"column\"\n gap=\"$8\"\n >\n {hasResults ? (\n <>\n {filteredFields.map((field: any) => (\n <Box\n key={field.id}\n css={{\n label: {\n color: '$neutral900',\n fontSize: '$sm',\n maxWidth: '520px',\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n },\n }}\n >\n <Tooltip\n content={field.tooltip || ''}\n css={{\n fontFamily: 'DM Sans !important',\n zIndex: '9999999 !important',\n }}\n >\n <Flex css={{ width: 'fit-content !important' }}>\n <Checkbox\n size=\"sm\"\n checked={field.isEnabled}\n disabled={field.disabled}\n onChange={(value) => handleFieldValues(field, value as boolean)}\n >\n
|
|
1
|
+
{"version":3,"file":"tabs-content-component.js","sources":["../../../../src/dynamic-mapping/components/tabs-content-component.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo } from 'react';\nimport { Box, Flex, Input, Text, Checkbox, Tooltip, TabsContent } from '@sparrowengg/twigs-react';\nimport { SearchIcon } from '@sparrowengg/twigs-react-icons';\nimport { filterFieldsBySearch } from '../helpers';\n\n/* ----- Types / Interfaces ----- */\n\ninterface TabsContentComponentProps {\n value: string;\n searchInput: string;\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\n fields: any[];\n handleFieldValues: (field: any, value: boolean) => void;\n placeholder: string;\n /** Whether the data is from API (enables hierarchical display for questions) */\n isApiData?: boolean;\n}\n\n/* ----- Main Component ----- */\n\n/**\n * Tabs content component for mapping fields\n * \n * @param {TabsContentComponentProps} props - Component props\n * @returns {JSX.Element} Tabs content component\n * \n * @example\n * <TabsContentComponent\n * value=\"QUESTIONS\"\n * searchInput={search}\n * fields={questions}\n * handleFieldValues={handleChange}\n * placeholder=\"Questions\"\n * />\n */\nexport const TabsContentComponent = ({\n value,\n searchInput,\n setSearchInput,\n fields,\n handleFieldValues,\n placeholder,\n isApiData = false,\n}: TabsContentComponentProps): JSX.Element => {\n const filteredFields = useMemo(\n () => filterFieldsBySearch(fields || [], searchInput),\n [fields, searchInput]\n );\n\n\n const hasResults = useMemo(() => filteredFields?.length > 0, [filteredFields]);\n\n return (\n <TabsContent value={value} css={{ padding: 0, position: 'relative' }} key={value}>\n <Input\n leftIcon={<SearchIcon color=\"#848484\" />}\n variant=\"filled\"\n placeholder={`Search ${placeholder}`}\n size=\"lg\"\n css={{ marginTop: '$8' }}\n value={searchInput}\n onChange={(event) => setSearchInput(event.currentTarget.value)}\n />\n \n <Flex\n css={{\n padding: '$8 $4 $32 $4',\n marginTop: '$8',\n height: 'calc(100vh - 408px)',\n overflow: 'auto',\n scrollbarWidth: 'thin',\n '&::-webkit-scrollbar': {\n width: '4px',\n },\n '& label': {\n lineHeight: '$sm',\n },\n }}\n flexDirection=\"column\"\n gap=\"$8\"\n >\n {hasResults ? (\n <>\n {filteredFields.map((field: any) => (\n <Box\n key={field.id}\n css={{\n // Add left padding for child questions when isApiData is true\n ...(isApiData && field.isChild && { paddingLeft: '24px' }),\n label: {\n color: '$neutral900',\n fontSize: '$sm',\n maxWidth: '520px',\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n },\n }}\n >\n <Tooltip\n content={field.tooltip || ''}\n css={{\n fontFamily: 'DM Sans !important',\n zIndex: '9999999 !important',\n }}\n >\n <Flex css={{ width: 'fit-content !important' }}>\n <Checkbox\n size=\"sm\"\n checked={field.isEnabled}\n disabled={field.disabled}\n onChange={(value) => handleFieldValues(field, value as boolean)}\n >\n {isApiData && field.isChild ? `-- ${field.name}` : field.name}\n </Checkbox>\n </Flex>\n </Tooltip>\n </Box>\n ))}\n </>\n ) : (\n <Flex alignItems=\"center\" justifyContent=\"center\" css={{ marginTop: '$40' }}>\n <Text size=\"sm\">No Results Found</Text>\n </Flex>\n )}\n </Flex>\n \n <Box\n css={{\n position: 'absolute',\n pointerEvents: 'none',\n top: '88%',\n height: '$25',\n width: '100%',\n background:\n 'linear-gradient(to top, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0))',\n }}\n />\n </TabsContent>\n );\n};\n"],"names":["useMemo","filterFieldsBySearch","TabsContent","Input","SearchIcon","Flex","Box","Tooltip","Checkbox","value","Text"],"mappings":"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"}
|
|
@@ -55,8 +55,105 @@ const filterFieldsBySearch = (fields, searchInput) => {
|
|
|
55
55
|
}
|
|
56
56
|
);
|
|
57
57
|
};
|
|
58
|
+
const organizeQuestionsWithHierarchy = (questions) => {
|
|
59
|
+
if (!(questions == null ? void 0 : questions.length))
|
|
60
|
+
return [];
|
|
61
|
+
const parents = questions.filter((q) => q.parent_question_id === null || q.parent_question_id === void 0);
|
|
62
|
+
const children = questions.filter((q) => q.parent_question_id !== null && q.parent_question_id !== void 0);
|
|
63
|
+
const childrenMap = /* @__PURE__ */ new Map();
|
|
64
|
+
children.forEach((child) => {
|
|
65
|
+
const parentId = child.parent_question_id;
|
|
66
|
+
if (!childrenMap.has(parentId)) {
|
|
67
|
+
childrenMap.set(parentId, []);
|
|
68
|
+
}
|
|
69
|
+
childrenMap.get(parentId).push(child);
|
|
70
|
+
});
|
|
71
|
+
childrenMap.forEach((childList) => {
|
|
72
|
+
childList.sort((a, b) => parseFloat(a.position || "0") - parseFloat(b.position || "0"));
|
|
73
|
+
});
|
|
74
|
+
parents.sort((a, b) => {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
const sectionA = parseFloat(((_a = a.section) == null ? void 0 : _a.position) || "0");
|
|
77
|
+
const sectionB = parseFloat(((_b = b.section) == null ? void 0 : _b.position) || "0");
|
|
78
|
+
if (sectionA !== sectionB)
|
|
79
|
+
return sectionA - sectionB;
|
|
80
|
+
return parseFloat(a.position || "0") - parseFloat(b.position || "0");
|
|
81
|
+
});
|
|
82
|
+
const result = [];
|
|
83
|
+
parents.forEach((parent) => {
|
|
84
|
+
const hasChildren = childrenMap.has(parent.id);
|
|
85
|
+
result.push(__spreadProps(__spreadValues({}, parent), {
|
|
86
|
+
isChild: false,
|
|
87
|
+
parentId: null,
|
|
88
|
+
hasChildren
|
|
89
|
+
}));
|
|
90
|
+
const parentChildren = childrenMap.get(parent.id) || [];
|
|
91
|
+
parentChildren.forEach((child) => {
|
|
92
|
+
result.push(__spreadProps(__spreadValues({}, child), {
|
|
93
|
+
isChild: true,
|
|
94
|
+
parentId: parent.id,
|
|
95
|
+
hasChildren: false
|
|
96
|
+
}));
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
return result;
|
|
100
|
+
};
|
|
101
|
+
const updateFieldEnabledStateWithHierarchy = (fields, id, value, isHierarchical = false) => {
|
|
102
|
+
if (!isHierarchical) {
|
|
103
|
+
return updateFieldEnabledState(fields, id, value);
|
|
104
|
+
}
|
|
105
|
+
if (id === "ALL") {
|
|
106
|
+
return fields.map((field) => __spreadProps(__spreadValues({}, field), { isEnabled: value }));
|
|
107
|
+
}
|
|
108
|
+
const targetField = fields.find((f) => f.id === id);
|
|
109
|
+
if (!targetField) {
|
|
110
|
+
return updateFieldEnabledState(fields, id, value);
|
|
111
|
+
}
|
|
112
|
+
let modifiedFields = [...fields];
|
|
113
|
+
if (!targetField.isChild && targetField.hasChildren) {
|
|
114
|
+
modifiedFields = modifiedFields.map((field) => {
|
|
115
|
+
if (field.id === id || field.parentId === id) {
|
|
116
|
+
return __spreadProps(__spreadValues({}, field), { isEnabled: value });
|
|
117
|
+
}
|
|
118
|
+
return __spreadValues({}, field);
|
|
119
|
+
});
|
|
120
|
+
} else if (targetField.isChild) {
|
|
121
|
+
modifiedFields = modifiedFields.map((field) => {
|
|
122
|
+
if (field.id === id) {
|
|
123
|
+
return __spreadProps(__spreadValues({}, field), { isEnabled: value });
|
|
124
|
+
}
|
|
125
|
+
return __spreadValues({}, field);
|
|
126
|
+
});
|
|
127
|
+
const parentId = targetField.parentId;
|
|
128
|
+
const siblings = modifiedFields.filter((f) => f.parentId === parentId);
|
|
129
|
+
const allSiblingsEnabled = siblings.every((s) => s.isEnabled);
|
|
130
|
+
modifiedFields = modifiedFields.map((field) => {
|
|
131
|
+
if (field.id === parentId) {
|
|
132
|
+
return __spreadProps(__spreadValues({}, field), { isEnabled: allSiblingsEnabled });
|
|
133
|
+
}
|
|
134
|
+
return field;
|
|
135
|
+
});
|
|
136
|
+
} else {
|
|
137
|
+
modifiedFields = modifiedFields.map((field) => {
|
|
138
|
+
if (field.id === id) {
|
|
139
|
+
return __spreadProps(__spreadValues({}, field), { isEnabled: value });
|
|
140
|
+
}
|
|
141
|
+
return __spreadValues({}, field);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const allNonAllFieldsEnabled = modifiedFields.filter((field) => (field == null ? void 0 : field.id) !== "ALL").every((field) => field.isEnabled);
|
|
145
|
+
modifiedFields = modifiedFields.map((field) => {
|
|
146
|
+
if ((field == null ? void 0 : field.id) === "ALL") {
|
|
147
|
+
return __spreadProps(__spreadValues({}, field), { isEnabled: allNonAllFieldsEnabled });
|
|
148
|
+
}
|
|
149
|
+
return field;
|
|
150
|
+
});
|
|
151
|
+
return modifiedFields;
|
|
152
|
+
};
|
|
58
153
|
|
|
59
154
|
exports.filterFieldsBySearch = filterFieldsBySearch;
|
|
60
155
|
exports.isConfigurationFieldVisible = isConfigurationFieldVisible;
|
|
156
|
+
exports.organizeQuestionsWithHierarchy = organizeQuestionsWithHierarchy;
|
|
61
157
|
exports.updateFieldEnabledState = updateFieldEnabledState;
|
|
158
|
+
exports.updateFieldEnabledStateWithHierarchy = updateFieldEnabledStateWithHierarchy;
|
|
62
159
|
//# 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.name?.toLowerCase().includes(searchInput.toLowerCase())\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuEO,MAAM,uBAAA,GAA0B,CACrC,MAAA,EACA,EAAA,EACA,KAAA,KACU;AACV,EAAA,IAAI,OAAO,KAAA,EAAO;AAChB,IAAA,OAAO,MAAA,CAAO,IAAI,CAAC,KAAA,KAAgB,iCAAK,KAAA,CAAA,EAAL,EAAY,SAAA,EAAW,KAAA,EAAM,CAAE,CAAA;AAAA,EACpE;AAEA,EAAA,IAAI,cAAA,GAAiB,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAe;AAC9C,IAAA,IAAA,CAAI,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,QAAO,EAAA,EAAI;AACpB,MAAA,OAAO,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,KAAA,CAAA,EAAL,EAAY,SAAA,EAAW,KAAA,EAAM,CAAA;AAAA,IACtC;AACA,IAAA,OAAO,cAAA,CAAA,EAAA,EAAK,KAAA,CAAA;AAAA,EACd,CAAC,CAAA;AAED,EAAA,MAAM,sBAAA,GAAyB,cAAA,CAC5B,MAAA,CAAO,CAAC,KAAA,KAAA,CAAe,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA,MAAO,KAAK,CAAA,CAC1C,KAAA,CAAM,CAAC,KAAA,KAAe,MAAM,SAAS,CAAA;AAExC,EAAA,cAAA,GAAiB,cAAA,CAAe,GAAA,CAAI,CAAC,KAAA,KAAe;AAClD,IAAA,IAAA,CAAI,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,QAAO,KAAA,EAAO;AACvB,MAAA,OAAO,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,KAAA,CAAA,EAAL,EAAY,SAAA,EAAW,sBAAA,EAAuB,CAAA;AAAA,IACvD;AACA,IAAA,OAAO,KAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,OAAO,cAAA;AACT;AAYO,MAAM,2BAAA,GAA8B,CAAC,KAAA,EAAY,gBAAA,KAAmC;AA/G3F,EAAA,IAAA,EAAA;AAgHE,EAAA,IAAA,CAAI,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,QAAO,aAAA,EAAe;AAC/B,IAAA,OAAO,CAAC,EAAA,CAAC,EAAA,GAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAkB,MAAA,KAAlB,IAAA,GAAA,MAAA,GAAA,EAAA,CAA0B,KAAA,CAAA;AAAA,EACrC;AACA,EAAA,OAAO,IAAA;AACT;AAYO,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAAe,WAAA,KAA+B;AACjF,EAAA,IAAI,CAAC,WAAA;AAAa,IAAA,OAAO,MAAA;AACzB,EAAA,OAAO,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,MAAA;AAAA,IAAO,CAAC,KAAA,KAAY;AAlIrC,MAAA,IAAA,EAAA;AAmII,MAAA,OAAA,CAAA,EAAA,GAAA,KAAA,CAAM,IAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,WAAA,EAAA,CAAc,QAAA,CAAS,YAAY,WAAA,EAAY,CAAA;AAAA,IAAA;AAAA,GAAA;AAE/D;;;;;;"}
|
|
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.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;\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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"}
|