@sparrowengg/integrations-templates-frontend 2.1.0-notion-release.46 → 2.1.0-notion-release.47

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.
@@ -114,7 +114,21 @@ const ContactImportMapping = ({
114
114
  }
115
115
  },
116
116
  /* @__PURE__ */ React.createElement(table.Thead, { css: { zIndex: 5, position: "sticky", top: "-31px" } }, /* @__PURE__ */ React.createElement(table.Th, null, `${integrationName} Profile Fields Data`), /* @__PURE__ */ React.createElement(table.Th, { css: { borderLeft: "$borderWidths$xs solid $neutral100" } }, "SurveySparrow Mapping")),
117
- /* @__PURE__ */ React.createElement(table.Tbody, null, contactImportField.fields.map((field) => {
117
+ /* @__PURE__ */ React.createElement(table.Tbody, null, [...contactImportField.fields].sort((a, b) => {
118
+ const aIsAutoMapped = !a.mapped && a.surveySparrowField;
119
+ const bIsAutoMapped = !b.mapped && b.surveySparrowField;
120
+ if (aIsAutoMapped && !bIsAutoMapped)
121
+ return -1;
122
+ if (!aIsAutoMapped && bIsAutoMapped)
123
+ return 1;
124
+ const aIsManuallyMapped = a.mapped && a.surveySparrowField;
125
+ const bIsManuallyMapped = b.mapped && b.surveySparrowField;
126
+ if (aIsManuallyMapped && !bIsManuallyMapped)
127
+ return -1;
128
+ if (!aIsManuallyMapped && bIsManuallyMapped)
129
+ return 1;
130
+ return 0;
131
+ }).map((field) => {
118
132
  var _a, _b;
119
133
  const hasSurveyFieldValue = contactProperties.some(
120
134
  (contact) => contact.value === field.surveySparrowField
@@ -1 +1 @@
1
- {"version":3,"file":"contact-import-mapping.js","sources":["../../../../src/contact-import/components/contact-import-mapping.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n FormInput,\n FormLabel,\n Heading,\n IconButton,\n Select,\n Table,\n Tbody,\n Td,\n Text,\n Th,\n Thead,\n Tr,\n} from \"@sparrowengg/twigs-react\";\nimport { DeleteIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useEffect, useRef } from \"react\";\nimport { ContactImportMappingProps } from \"../types\";\nimport { SelectOption } from \"../../commons/types/enhanced\";\n\n// Define the Field type with all the properties used in the component\ntype Field = {\n id: string | number;\n integrationField: string | number | null;\n surveySparrowField: string | number | null;\n sampleData?: Array<string>;\n property?: \"custom\" | \"default\";\n mapped?: boolean;\n surveySparrowFieldError?: boolean;\n};\n\n\nconst defaultFieldValue: Omit<Field, \"id\"> = {\n integrationField: null,\n surveySparrowField: null,\n sampleData: [],\n property: \"custom\",\n mapped: false,\n surveySparrowFieldError: false,\n};\n\nconst ContactImportMapping: React.FC<ContactImportMappingProps> = ({\n contactImportField,\n setContactImportField,\n integrationName,\n contactProperties,\n}) => {\n const customPropertyRef = useRef<HTMLDivElement | null>(null);\n const initialRenderRef = useRef(true);\n\n useEffect(() => {\n if (!initialRenderRef.current && customPropertyRef?.current) {\n customPropertyRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n });\n }\n initialRenderRef.current = false;\n }, [contactImportField]);\n\n const customFieldHandler = (\n id: string | number,\n property: keyof Field,\n value: string | number | boolean | null\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id ? { ...field, [property]: value } : field\n ),\n }));\n };\n\n const updateSurveySparrowField = (\n value: string | number,\n id: string | number,\n manuallyMapped: boolean\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id\n ? {\n ...field,\n surveySparrowField: value,\n ...(manuallyMapped && { mapped: true }),\n }\n : field\n ),\n }));\n };\n\n const addCustomProperty = () => {\n setContactImportField((prev) => ({\n ...prev,\n fields: [\n ...prev.fields,\n {\n id: prev.fields.length\n ? (typeof prev.fields[prev.fields.length - 1].id === 'number' \n ? (prev.fields[prev.fields.length - 1].id as number) + 1 \n : Date.now())\n : 1,\n ...defaultFieldValue,\n },\n ],\n }));\n };\n\n const deleteCustomProperty = (id: string | number) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.filter((field) => field.id !== id),\n }));\n };\n\n return (\n <Flex justifyContent=\"center\">\n <Box css={{ marginTop: \"$40\", maxWidth: \"90%\", width: \"100%\" }}>\n <Box css={{ paddingLeft: \"$28\" }}>\n <Heading size=\"h5\">Map Contact Properties</Heading>\n <Text css={{ marginTop: \"$4\", color: \"$neutral600\" }} size=\"md\">\n Review these mappings before importing. Unmapped columns will be\n ignored.\n </Text>\n </Box>\n <Box\n css={{\n height: \"calc(100vh - 291px)\",\n paddingTop: \"$16\",\n overflowY: \"auto\",\n position: \"relative\",\n background: \"$white900\",\n paddingLeft: \"$28\",\n }}\n >\n <Table\n css={{\n width: \"100%\",\n background: \"$white900\",\n borderRadius: \"5px\",\n borderCollapse: \"collapse\",\n }}\n >\n <Thead css={{ zIndex: 5, position: \"sticky\", top: \"-31px\" }}>\n <Th>{`${integrationName} Profile Fields Data`}</Th>\n <Th css={{ borderLeft: \"$borderWidths$xs solid $neutral100\" }}>\n SurveySparrow Mapping\n </Th>\n </Thead>\n <Tbody>\n {contactImportField.fields.map((field) => {\n const hasSurveyFieldValue = contactProperties.some(\n (contact) => contact.value === field.surveySparrowField\n );\n\n return (\n <Tr key={field.id}>\n <Td css={{ width: 560 }}>\n {field.property !== \"custom\" ? (\n <>\n <Text size=\"sm\" weight=\"medium\">\n {typeof field.integrationField === 'string' \n ? field.integrationField.replace(\"_\", \" \")\n : field.integrationField}\n </Text>\n {field.sampleData?.map((sample, index) => (\n <Text\n key={index}\n size=\"xs\"\n css={{ lineHeight: \"$xs\" }}\n >\n {sample.length > 40\n ? `${sample.slice(0, 40)}...`\n : sample}\n </Text>\n ))}\n </>\n ) : (\n <Box css={{ position: \"relative\" }}>\n <FormInput\n size=\"lg\"\n onChange={(event: any) =>\n customFieldHandler(\n field.id,\n \"integrationField\",\n event.target.value\n )\n }\n />\n <FormLabel\n css={{ marginTop: \"$4\", color: \"$neutral400\" }}\n >\n Enter the exact custom property name for accurate\n mapping. It is case-sensitive.\n </FormLabel>\n <IconButton\n css={{\n position: \"absolute\",\n top: \"0\",\n left: \"-70px\",\n }}\n size=\"lg\"\n variant=\"ghost\"\n color=\"secondary\"\n onClick={() => deleteCustomProperty(field.id)}\n icon={<DeleteIcon />}\n />\n </Box>\n )}\n </Td>\n <Td\n css={{\n width: 560,\n borderLeft: \"$borderWidths$xs solid $neutral100\",\n }}\n >\n <Select\n size=\"lg\"\n placeholder=\"--Choose Property--\"\n value={\n field.surveySparrowField\n ? {\n label: contactProperties.find(\n (contact) =>\n contact.value === field.surveySparrowField\n )?.label,\n value: field.surveySparrowField,\n }\n : null\n }\n options={contactProperties.filter(\n (contact) => contact.type !== \"DEPENDENT_FIELD\"\n )}\n onChange={(currentField: any) =>\n updateSurveySparrowField(\n currentField.value,\n field.id,\n true\n )\n }\n />\n {hasSurveyFieldValue && (\n <FormLabel\n size=\"xs\"\n css={{\n color: field.mapped ? \"$neutral600\" : \"#0F966C\",\n marginBlock: \"$4\",\n }}\n >\n {field.mapped\n ? \"Manually mapped by you\"\n : \"Automatically mapped\"}\n </FormLabel>\n )}\n {!field.surveySparrowField &&\n field.surveySparrowFieldError && (\n <FormLabel\n css={{ color: \"$negative500\", marginTop: \"$4\" }}\n size=\"xs\"\n >\n Please select the property\n </FormLabel>\n )}\n </Td>\n </Tr>\n );\n })}\n <Tr>\n <Td colSpan={2}>\n <Button\n size=\"md\"\n variant=\"ghost\"\n leftIcon={<PlusIcon />}\n onClick={addCustomProperty}\n >\n Add Custom Property\n </Button>\n </Td>\n </Tr>\n </Tbody>\n </Table>\n </Box>\n </Box>\n </Flex>\n );\n};\n\nexport default ContactImportMapping;\n"],"names":["useRef","useEffect","Flex","Box","Heading","Text","Table","Thead","Th","Tbody","Tr","Td","FormInput","FormLabel","IconButton","DeleteIcon","Select","Button","PlusIcon"],"mappings":"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"}
1
+ {"version":3,"file":"contact-import-mapping.js","sources":["../../../../src/contact-import/components/contact-import-mapping.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n FormInput,\n FormLabel,\n Heading,\n IconButton,\n Select,\n Table,\n Tbody,\n Td,\n Text,\n Th,\n Thead,\n Tr,\n} from \"@sparrowengg/twigs-react\";\nimport { DeleteIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useEffect, useRef } from \"react\";\nimport { ContactImportMappingProps } from \"../types\";\nimport { SelectOption } from \"../../commons/types/enhanced\";\n\n// Define the Field type with all the properties used in the component\ntype Field = {\n id: string | number;\n integrationField: string | number | null;\n surveySparrowField: string | number | null;\n sampleData?: Array<string>;\n property?: \"custom\" | \"default\";\n mapped?: boolean;\n surveySparrowFieldError?: boolean;\n};\n\n\nconst defaultFieldValue: Omit<Field, \"id\"> = {\n integrationField: null,\n surveySparrowField: null,\n sampleData: [],\n property: \"custom\",\n mapped: false,\n surveySparrowFieldError: false,\n};\n\nconst ContactImportMapping: React.FC<ContactImportMappingProps> = ({\n contactImportField,\n setContactImportField,\n integrationName,\n contactProperties,\n}) => {\n const customPropertyRef = useRef<HTMLDivElement | null>(null);\n const initialRenderRef = useRef(true);\n\n useEffect(() => {\n if (!initialRenderRef.current && customPropertyRef?.current) {\n customPropertyRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n });\n }\n initialRenderRef.current = false;\n }, [contactImportField]);\n\n const customFieldHandler = (\n id: string | number,\n property: keyof Field,\n value: string | number | boolean | null\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id ? { ...field, [property]: value } : field\n ),\n }));\n };\n\n const updateSurveySparrowField = (\n value: string | number,\n id: string | number,\n manuallyMapped: boolean\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id\n ? {\n ...field,\n surveySparrowField: value,\n ...(manuallyMapped && { mapped: true }),\n }\n : field\n ),\n }));\n };\n\n const addCustomProperty = () => {\n setContactImportField((prev) => ({\n ...prev,\n fields: [\n ...prev.fields,\n {\n id: prev.fields.length\n ? (typeof prev.fields[prev.fields.length - 1].id === 'number' \n ? (prev.fields[prev.fields.length - 1].id as number) + 1 \n : Date.now())\n : 1,\n ...defaultFieldValue,\n },\n ],\n }));\n };\n\n const deleteCustomProperty = (id: string | number) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.filter((field) => field.id !== id),\n }));\n };\n\n return (\n <Flex justifyContent=\"center\">\n <Box css={{ marginTop: \"$40\", maxWidth: \"90%\", width: \"100%\" }}>\n <Box css={{ paddingLeft: \"$28\" }}>\n <Heading size=\"h5\">Map Contact Properties</Heading>\n <Text css={{ marginTop: \"$4\", color: \"$neutral600\" }} size=\"md\">\n Review these mappings before importing. Unmapped columns will be\n ignored.\n </Text>\n </Box>\n <Box\n css={{\n height: \"calc(100vh - 291px)\",\n paddingTop: \"$16\",\n overflowY: \"auto\",\n position: \"relative\",\n background: \"$white900\",\n paddingLeft: \"$28\",\n }}\n >\n <Table\n css={{\n width: \"100%\",\n background: \"$white900\",\n borderRadius: \"5px\",\n borderCollapse: \"collapse\",\n }}\n >\n <Thead css={{ zIndex: 5, position: \"sticky\", top: \"-31px\" }}>\n <Th>{`${integrationName} Profile Fields Data`}</Th>\n <Th css={{ borderLeft: \"$borderWidths$xs solid $neutral100\" }}>\n SurveySparrow Mapping\n </Th>\n </Thead>\n <Tbody>\n {[...contactImportField.fields]\n .sort((a, b) => {\n // Automatically mapped (not manually mapped and has surveySparrowField) come first\n const aIsAutoMapped = !a.mapped && a.surveySparrowField;\n const bIsAutoMapped = !b.mapped && b.surveySparrowField;\n \n if (aIsAutoMapped && !bIsAutoMapped) return -1;\n if (!aIsAutoMapped && bIsAutoMapped) return 1;\n \n // Then manually mapped\n const aIsManuallyMapped = a.mapped && a.surveySparrowField;\n const bIsManuallyMapped = b.mapped && b.surveySparrowField;\n \n if (aIsManuallyMapped && !bIsManuallyMapped) return -1;\n if (!aIsManuallyMapped && bIsManuallyMapped) return 1;\n \n // Keep original order for items in the same category\n return 0;\n })\n .map((field) => {\n const hasSurveyFieldValue = contactProperties.some(\n (contact) => contact.value === field.surveySparrowField\n );\n\n return (\n <Tr key={field.id}>\n <Td css={{ width: 560 }}>\n {field.property !== \"custom\" ? (\n <>\n <Text size=\"sm\" weight=\"medium\">\n {typeof field.integrationField === 'string' \n ? field.integrationField.replace(\"_\", \" \")\n : field.integrationField}\n </Text>\n {field.sampleData?.map((sample, index) => (\n <Text\n key={index}\n size=\"xs\"\n css={{ lineHeight: \"$xs\" }}\n >\n {sample.length > 40\n ? `${sample.slice(0, 40)}...`\n : sample}\n </Text>\n ))}\n </>\n ) : (\n <Box css={{ position: \"relative\" }}>\n <FormInput\n size=\"lg\"\n onChange={(event: any) =>\n customFieldHandler(\n field.id,\n \"integrationField\",\n event.target.value\n )\n }\n />\n <FormLabel\n css={{ marginTop: \"$4\", color: \"$neutral400\" }}\n >\n Enter the exact custom property name for accurate\n mapping. It is case-sensitive.\n </FormLabel>\n <IconButton\n css={{\n position: \"absolute\",\n top: \"0\",\n left: \"-70px\",\n }}\n size=\"lg\"\n variant=\"ghost\"\n color=\"secondary\"\n onClick={() => deleteCustomProperty(field.id)}\n icon={<DeleteIcon />}\n />\n </Box>\n )}\n </Td>\n <Td\n css={{\n width: 560,\n borderLeft: \"$borderWidths$xs solid $neutral100\",\n }}\n >\n <Select\n size=\"lg\"\n placeholder=\"--Choose Property--\"\n value={\n field.surveySparrowField\n ? {\n label: contactProperties.find(\n (contact) =>\n contact.value === field.surveySparrowField\n )?.label,\n value: field.surveySparrowField,\n }\n : null\n }\n options={contactProperties.filter(\n (contact) => contact.type !== \"DEPENDENT_FIELD\"\n )}\n onChange={(currentField: any) =>\n updateSurveySparrowField(\n currentField.value,\n field.id,\n true\n )\n }\n />\n {hasSurveyFieldValue && (\n <FormLabel\n size=\"xs\"\n css={{\n color: field.mapped ? \"$neutral600\" : \"#0F966C\",\n marginBlock: \"$4\",\n }}\n >\n {field.mapped\n ? \"Manually mapped by you\"\n : \"Automatically mapped\"}\n </FormLabel>\n )}\n {!field.surveySparrowField &&\n field.surveySparrowFieldError && (\n <FormLabel\n css={{ color: \"$negative500\", marginTop: \"$4\" }}\n size=\"xs\"\n >\n Please select the property\n </FormLabel>\n )}\n </Td>\n </Tr>\n );\n })}\n <Tr>\n <Td colSpan={2}>\n <Button\n size=\"md\"\n variant=\"ghost\"\n leftIcon={<PlusIcon />}\n onClick={addCustomProperty}\n >\n Add Custom Property\n </Button>\n </Td>\n </Tr>\n </Tbody>\n </Table>\n </Box>\n </Box>\n </Flex>\n );\n};\n\nexport default ContactImportMapping;\n"],"names":["useRef","useEffect","Flex","Box","Heading","Text","Table","Thead","Th","Tbody","Tr","Td","FormInput","FormLabel","IconButton","DeleteIcon","Select","Button","PlusIcon"],"mappings":"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"}
@@ -110,7 +110,21 @@ const ContactImportMapping = ({
110
110
  }
111
111
  },
112
112
  /* @__PURE__ */ React__default.createElement(Thead, { css: { zIndex: 5, position: "sticky", top: "-31px" } }, /* @__PURE__ */ React__default.createElement(Th, null, `${integrationName} Profile Fields Data`), /* @__PURE__ */ React__default.createElement(Th, { css: { borderLeft: "$borderWidths$xs solid $neutral100" } }, "SurveySparrow Mapping")),
113
- /* @__PURE__ */ React__default.createElement(Tbody, null, contactImportField.fields.map((field) => {
113
+ /* @__PURE__ */ React__default.createElement(Tbody, null, [...contactImportField.fields].sort((a, b) => {
114
+ const aIsAutoMapped = !a.mapped && a.surveySparrowField;
115
+ const bIsAutoMapped = !b.mapped && b.surveySparrowField;
116
+ if (aIsAutoMapped && !bIsAutoMapped)
117
+ return -1;
118
+ if (!aIsAutoMapped && bIsAutoMapped)
119
+ return 1;
120
+ const aIsManuallyMapped = a.mapped && a.surveySparrowField;
121
+ const bIsManuallyMapped = b.mapped && b.surveySparrowField;
122
+ if (aIsManuallyMapped && !bIsManuallyMapped)
123
+ return -1;
124
+ if (!aIsManuallyMapped && bIsManuallyMapped)
125
+ return 1;
126
+ return 0;
127
+ }).map((field) => {
114
128
  var _a, _b;
115
129
  const hasSurveyFieldValue = contactProperties.some(
116
130
  (contact) => contact.value === field.surveySparrowField
@@ -1 +1 @@
1
- {"version":3,"file":"contact-import-mapping.js","sources":["../../../../src/contact-import/components/contact-import-mapping.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n FormInput,\n FormLabel,\n Heading,\n IconButton,\n Select,\n Table,\n Tbody,\n Td,\n Text,\n Th,\n Thead,\n Tr,\n} from \"@sparrowengg/twigs-react\";\nimport { DeleteIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useEffect, useRef } from \"react\";\nimport { ContactImportMappingProps } from \"../types\";\nimport { SelectOption } from \"../../commons/types/enhanced\";\n\n// Define the Field type with all the properties used in the component\ntype Field = {\n id: string | number;\n integrationField: string | number | null;\n surveySparrowField: string | number | null;\n sampleData?: Array<string>;\n property?: \"custom\" | \"default\";\n mapped?: boolean;\n surveySparrowFieldError?: boolean;\n};\n\n\nconst defaultFieldValue: Omit<Field, \"id\"> = {\n integrationField: null,\n surveySparrowField: null,\n sampleData: [],\n property: \"custom\",\n mapped: false,\n surveySparrowFieldError: false,\n};\n\nconst ContactImportMapping: React.FC<ContactImportMappingProps> = ({\n contactImportField,\n setContactImportField,\n integrationName,\n contactProperties,\n}) => {\n const customPropertyRef = useRef<HTMLDivElement | null>(null);\n const initialRenderRef = useRef(true);\n\n useEffect(() => {\n if (!initialRenderRef.current && customPropertyRef?.current) {\n customPropertyRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n });\n }\n initialRenderRef.current = false;\n }, [contactImportField]);\n\n const customFieldHandler = (\n id: string | number,\n property: keyof Field,\n value: string | number | boolean | null\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id ? { ...field, [property]: value } : field\n ),\n }));\n };\n\n const updateSurveySparrowField = (\n value: string | number,\n id: string | number,\n manuallyMapped: boolean\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id\n ? {\n ...field,\n surveySparrowField: value,\n ...(manuallyMapped && { mapped: true }),\n }\n : field\n ),\n }));\n };\n\n const addCustomProperty = () => {\n setContactImportField((prev) => ({\n ...prev,\n fields: [\n ...prev.fields,\n {\n id: prev.fields.length\n ? (typeof prev.fields[prev.fields.length - 1].id === 'number' \n ? (prev.fields[prev.fields.length - 1].id as number) + 1 \n : Date.now())\n : 1,\n ...defaultFieldValue,\n },\n ],\n }));\n };\n\n const deleteCustomProperty = (id: string | number) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.filter((field) => field.id !== id),\n }));\n };\n\n return (\n <Flex justifyContent=\"center\">\n <Box css={{ marginTop: \"$40\", maxWidth: \"90%\", width: \"100%\" }}>\n <Box css={{ paddingLeft: \"$28\" }}>\n <Heading size=\"h5\">Map Contact Properties</Heading>\n <Text css={{ marginTop: \"$4\", color: \"$neutral600\" }} size=\"md\">\n Review these mappings before importing. Unmapped columns will be\n ignored.\n </Text>\n </Box>\n <Box\n css={{\n height: \"calc(100vh - 291px)\",\n paddingTop: \"$16\",\n overflowY: \"auto\",\n position: \"relative\",\n background: \"$white900\",\n paddingLeft: \"$28\",\n }}\n >\n <Table\n css={{\n width: \"100%\",\n background: \"$white900\",\n borderRadius: \"5px\",\n borderCollapse: \"collapse\",\n }}\n >\n <Thead css={{ zIndex: 5, position: \"sticky\", top: \"-31px\" }}>\n <Th>{`${integrationName} Profile Fields Data`}</Th>\n <Th css={{ borderLeft: \"$borderWidths$xs solid $neutral100\" }}>\n SurveySparrow Mapping\n </Th>\n </Thead>\n <Tbody>\n {contactImportField.fields.map((field) => {\n const hasSurveyFieldValue = contactProperties.some(\n (contact) => contact.value === field.surveySparrowField\n );\n\n return (\n <Tr key={field.id}>\n <Td css={{ width: 560 }}>\n {field.property !== \"custom\" ? (\n <>\n <Text size=\"sm\" weight=\"medium\">\n {typeof field.integrationField === 'string' \n ? field.integrationField.replace(\"_\", \" \")\n : field.integrationField}\n </Text>\n {field.sampleData?.map((sample, index) => (\n <Text\n key={index}\n size=\"xs\"\n css={{ lineHeight: \"$xs\" }}\n >\n {sample.length > 40\n ? `${sample.slice(0, 40)}...`\n : sample}\n </Text>\n ))}\n </>\n ) : (\n <Box css={{ position: \"relative\" }}>\n <FormInput\n size=\"lg\"\n onChange={(event: any) =>\n customFieldHandler(\n field.id,\n \"integrationField\",\n event.target.value\n )\n }\n />\n <FormLabel\n css={{ marginTop: \"$4\", color: \"$neutral400\" }}\n >\n Enter the exact custom property name for accurate\n mapping. It is case-sensitive.\n </FormLabel>\n <IconButton\n css={{\n position: \"absolute\",\n top: \"0\",\n left: \"-70px\",\n }}\n size=\"lg\"\n variant=\"ghost\"\n color=\"secondary\"\n onClick={() => deleteCustomProperty(field.id)}\n icon={<DeleteIcon />}\n />\n </Box>\n )}\n </Td>\n <Td\n css={{\n width: 560,\n borderLeft: \"$borderWidths$xs solid $neutral100\",\n }}\n >\n <Select\n size=\"lg\"\n placeholder=\"--Choose Property--\"\n value={\n field.surveySparrowField\n ? {\n label: contactProperties.find(\n (contact) =>\n contact.value === field.surveySparrowField\n )?.label,\n value: field.surveySparrowField,\n }\n : null\n }\n options={contactProperties.filter(\n (contact) => contact.type !== \"DEPENDENT_FIELD\"\n )}\n onChange={(currentField: any) =>\n updateSurveySparrowField(\n currentField.value,\n field.id,\n true\n )\n }\n />\n {hasSurveyFieldValue && (\n <FormLabel\n size=\"xs\"\n css={{\n color: field.mapped ? \"$neutral600\" : \"#0F966C\",\n marginBlock: \"$4\",\n }}\n >\n {field.mapped\n ? \"Manually mapped by you\"\n : \"Automatically mapped\"}\n </FormLabel>\n )}\n {!field.surveySparrowField &&\n field.surveySparrowFieldError && (\n <FormLabel\n css={{ color: \"$negative500\", marginTop: \"$4\" }}\n size=\"xs\"\n >\n Please select the property\n </FormLabel>\n )}\n </Td>\n </Tr>\n );\n })}\n <Tr>\n <Td colSpan={2}>\n <Button\n size=\"md\"\n variant=\"ghost\"\n leftIcon={<PlusIcon />}\n onClick={addCustomProperty}\n >\n Add Custom Property\n </Button>\n </Td>\n </Tr>\n </Tbody>\n </Table>\n </Box>\n </Box>\n </Flex>\n );\n};\n\nexport default ContactImportMapping;\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,iBAAuC,GAAA;AAAA,EAC3C,gBAAkB,EAAA,IAAA;AAAA,EAClB,kBAAoB,EAAA,IAAA;AAAA,EACpB,YAAY,EAAC;AAAA,EACb,QAAU,EAAA,QAAA;AAAA,EACV,MAAQ,EAAA,KAAA;AAAA,EACR,uBAAyB,EAAA,KAAA;AAC3B,CAAA,CAAA;AAEA,MAAM,uBAA4D,CAAC;AAAA,EACjE,kBAAA;AAAA,EACA,qBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AACF,CAAM,KAAA;AACJ,EAAM,MAAA,iBAAA,GAAoB,OAA8B,IAAI,CAAA,CAAA;AAC5D,EAAM,MAAA,gBAAA,GAAmB,OAAO,IAAI,CAAA,CAAA;AAEpC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,gBAAA,CAAiB,OAAW,KAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAmB,OAAS,CAAA,EAAA;AAC3D,MAAA,iBAAA,CAAkB,QAAQ,cAAe,CAAA;AAAA,QACvC,QAAU,EAAA,QAAA;AAAA,QACV,KAAO,EAAA,KAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACH;AACA,IAAA,gBAAA,CAAiB,OAAU,GAAA,KAAA,CAAA;AAAA,GAC7B,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,EAAA,MAAM,kBAAqB,GAAA,CACzB,EACA,EAAA,QAAA,EACA,KACG,KAAA;AACH,IAAsB,qBAAA,CAAA,CAAC,IAAU,KAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAC5B,IAD4B,CAAA,EAAA;AAAA,MAE/B,MAAA,EAAQ,KAAK,MAAO,CAAA,GAAA;AAAA,QAAI,CAAC,KAAA,KACvB,KAAM,CAAA,EAAA,KAAO,EAAK,GAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,KAAL,CAAA,EAAA,EAAY,CAAC,QAAQ,GAAG,KAAA,EAAU,CAAA,GAAA,KAAA;AAAA,OACtD;AAAA,KACA,CAAA,CAAA,CAAA;AAAA,GACJ,CAAA;AAEA,EAAA,MAAM,wBAA2B,GAAA,CAC/B,KACA,EAAA,EAAA,EACA,cACG,KAAA;AACH,IAAsB,qBAAA,CAAA,CAAC,IAAU,KAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAC5B,IAD4B,CAAA,EAAA;AAAA,MAE/B,MAAA,EAAQ,KAAK,MAAO,CAAA,GAAA;AAAA,QAAI,CAAC,KACvB,KAAA,KAAA,CAAM,EAAO,KAAA,EAAA,GACT,gDACK,KADL,CAAA,EAAA;AAAA,UAEE,kBAAoB,EAAA,KAAA;AAAA,SAAA,CAAA,EAChB,cAAkB,IAAA,EAAE,MAAQ,EAAA,IAAA,EAElC,CAAA,GAAA,KAAA;AAAA,OACN;AAAA,KACA,CAAA,CAAA,CAAA;AAAA,GACJ,CAAA;AAEA,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAsB,qBAAA,CAAA,CAAC,IAAU,KAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAC5B,IAD4B,CAAA,EAAA;AAAA,MAE/B,MAAQ,EAAA;AAAA,QACN,GAAG,IAAK,CAAA,MAAA;AAAA,QACR,cAAA,CAAA;AAAA,UACE,EAAA,EAAI,IAAK,CAAA,MAAA,CAAO,MACX,GAAA,OAAO,KAAK,MAAO,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA,GAAS,CAAC,CAAA,CAAE,OAAO,QAC9C,GAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA,GAAS,CAAC,CAAA,CAAE,EAAgB,GAAA,CAAA,GACrD,IAAK,CAAA,GAAA,EACT,GAAA,CAAA;AAAA,SACD,EAAA,iBAAA,CAAA;AAAA,OAEP;AAAA,KACA,CAAA,CAAA,CAAA;AAAA,GACJ,CAAA;AAEA,EAAM,MAAA,oBAAA,GAAuB,CAAC,EAAwB,KAAA;AACpD,IAAsB,qBAAA,CAAA,CAAC,IAAU,KAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAC5B,IAD4B,CAAA,EAAA;AAAA,MAE/B,MAAA,EAAQ,KAAK,MAAO,CAAA,MAAA,CAAO,CAAC,KAAU,KAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,KACrD,CAAA,CAAA,CAAA;AAAA,GACJ,CAAA;AAEA,EAAA,oDACG,IAAK,EAAA,EAAA,cAAA,EAAe,4BAClBA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,KAAK,EAAE,SAAA,EAAW,KAAO,EAAA,QAAA,EAAU,OAAO,KAAO,EAAA,MAAA,sBACnDA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,KAAK,EAAE,WAAA,EAAa,KAAM,EAAA,EAAA,+CAC5B,OAAQ,EAAA,EAAA,IAAA,EAAK,QAAK,wBAAsB,CAAA,+CACxC,IAAK,EAAA,EAAA,GAAA,EAAK,EAAE,SAAW,EAAA,IAAA,EAAM,OAAO,aAAc,EAAA,EAAG,MAAK,IAAK,EAAA,EAAA,2EAGhE,CACF,CACA,kBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA;AAAA,QACH,MAAQ,EAAA,qBAAA;AAAA,QACR,UAAY,EAAA,KAAA;AAAA,QACZ,SAAW,EAAA,MAAA;AAAA,QACX,QAAU,EAAA,UAAA;AAAA,QACV,UAAY,EAAA,WAAA;AAAA,QACZ,WAAa,EAAA,KAAA;AAAA,OACf;AAAA,KAAA;AAAA,oBAEAA,cAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA;AAAA,UACH,KAAO,EAAA,MAAA;AAAA,UACP,UAAY,EAAA,WAAA;AAAA,UACZ,YAAc,EAAA,KAAA;AAAA,UACd,cAAgB,EAAA,UAAA;AAAA,SAClB;AAAA,OAAA;AAAA,sBAEAA,cAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,GAAA,EAAK,EAAE,MAAA,EAAQ,GAAG,QAAU,EAAA,QAAA,EAAU,GAAK,EAAA,OAAA,EAChD,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAI,CAAG,EAAA,eAAe,CAAuB,oBAAA,CAAA,CAAA,kBAC7CA,cAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAG,GAAK,EAAA,EAAE,UAAY,EAAA,oCAAA,EAAwC,EAAA,EAAA,uBAE/D,CACF,CAAA;AAAA,mDACC,KACE,EAAA,IAAA,EAAA,kBAAA,CAAmB,MAAO,CAAA,GAAA,CAAI,CAAC,KAAU,KAAA;AAzJxD,QAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA0JgB,QAAA,MAAM,sBAAsB,iBAAkB,CAAA,IAAA;AAAA,UAC5C,CAAC,OAAA,KAAY,OAAQ,CAAA,KAAA,KAAU,KAAM,CAAA,kBAAA;AAAA,SACvC,CAAA;AAEA,QAAA,oDACG,EAAG,EAAA,EAAA,GAAA,EAAK,MAAM,EACb,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,MAAG,GAAK,EAAA,EAAE,KAAO,EAAA,GAAA,MACf,KAAM,CAAA,QAAA,KAAa,2BAEhBA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,IAAK,EAAA,IAAA,EAAK,MAAO,EAAA,QAAA,EAAA,EACpB,OAAO,KAAM,CAAA,gBAAA,KAAqB,WAC/B,KAAM,CAAA,gBAAA,CAAiB,QAAQ,GAAK,EAAA,GAAG,IACvC,KAAM,CAAA,gBACZ,IACC,EAAM,GAAA,KAAA,CAAA,UAAA,KAAN,mBAAkB,GAAI,CAAA,CAAC,QAAQ,KAC9B,qBAAAA,cAAA,CAAA,aAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,GAAK,EAAA,KAAA;AAAA,YACL,IAAK,EAAA,IAAA;AAAA,YACL,GAAA,EAAK,EAAE,UAAA,EAAY,KAAM,EAAA;AAAA,WAAA;AAAA,UAExB,MAAA,CAAO,SAAS,EACb,GAAA,CAAA,EAAG,OAAO,KAAM,CAAA,CAAA,EAAG,EAAE,CAAC,CACtB,GAAA,CAAA,GAAA,MAAA;AAAA,SACN,CAEJ,oBAECA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,KAAK,EAAE,QAAA,EAAU,YACpB,EAAA,kBAAAA,cAAA,CAAA,aAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,IAAK,EAAA,IAAA;AAAA,YACL,QAAA,EAAU,CAAC,KACT,KAAA,kBAAA;AAAA,cACE,KAAM,CAAA,EAAA;AAAA,cACN,kBAAA;AAAA,cACA,MAAM,MAAO,CAAA,KAAA;AAAA,aACf;AAAA,WAAA;AAAA,SAGJ,kBAAAA,cAAA,CAAA,aAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,GAAK,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,OAAO,aAAc,EAAA;AAAA,WAAA;AAAA,UAC9C,kFAAA;AAAA,SAID,kBAAAA,cAAA,CAAA,aAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,GAAK,EAAA;AAAA,cACH,QAAU,EAAA,UAAA;AAAA,cACV,GAAK,EAAA,GAAA;AAAA,cACL,IAAM,EAAA,OAAA;AAAA,aACR;AAAA,YACA,IAAK,EAAA,IAAA;AAAA,YACL,OAAQ,EAAA,OAAA;AAAA,YACR,KAAM,EAAA,WAAA;AAAA,YACN,OAAS,EAAA,MAAM,oBAAqB,CAAA,KAAA,CAAM,EAAE,CAAA;AAAA,YAC5C,IAAA,+CAAO,UAAW,EAAA,IAAA,CAAA;AAAA,WAAA;AAAA,SAEtB,CAEJ,CACA,kBAAAA,cAAA,CAAA,aAAA;AAAA,UAAC,EAAA;AAAA,UAAA;AAAA,YACC,GAAK,EAAA;AAAA,cACH,KAAO,EAAA,GAAA;AAAA,cACP,UAAY,EAAA,oCAAA;AAAA,aACd;AAAA,WAAA;AAAA,0BAEAA,cAAA,CAAA,aAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,IAAA;AAAA,cACL,WAAY,EAAA,qBAAA;AAAA,cACZ,KAAA,EACE,MAAM,kBACF,GAAA;AAAA,gBACE,QAAO,EAAkB,GAAA,iBAAA,CAAA,IAAA;AAAA,kBACvB,CAAC,OAAA,KACC,OAAQ,CAAA,KAAA,KAAU,KAAM,CAAA,kBAAA;AAAA,sBAFrB,IAGJ,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA;AAAA,gBACH,OAAO,KAAM,CAAA,kBAAA;AAAA,eAEf,GAAA,IAAA;AAAA,cAEN,SAAS,iBAAkB,CAAA,MAAA;AAAA,gBACzB,CAAC,OAAY,KAAA,OAAA,CAAQ,IAAS,KAAA,iBAAA;AAAA,eAChC;AAAA,cACA,QAAA,EAAU,CAAC,YACT,KAAA,wBAAA;AAAA,gBACE,YAAa,CAAA,KAAA;AAAA,gBACb,KAAM,CAAA,EAAA;AAAA,gBACN,IAAA;AAAA,eACF;AAAA,aAAA;AAAA,WAEJ;AAAA,UACC,mBACC,oBAAAA,cAAA,CAAA,aAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,IAAA;AAAA,cACL,GAAK,EAAA;AAAA,gBACH,KAAA,EAAO,KAAM,CAAA,MAAA,GAAS,aAAgB,GAAA,SAAA;AAAA,gBACtC,WAAa,EAAA,IAAA;AAAA,eACf;AAAA,aAAA;AAAA,YAEC,KAAA,CAAM,SACH,wBACA,GAAA,sBAAA;AAAA,WACN;AAAA,UAED,CAAC,KAAA,CAAM,kBACN,IAAA,KAAA,CAAM,uBACJ,oBAAAA,cAAA,CAAA,aAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,GAAK,EAAA,EAAE,KAAO,EAAA,cAAA,EAAgB,WAAW,IAAK,EAAA;AAAA,cAC9C,IAAK,EAAA,IAAA;AAAA,aAAA;AAAA,YACN,4BAAA;AAAA,WAED;AAAA,SAGR,CAAA,CAAA;AAAA,OAEH,CACD,kBAAAA,cAAA,CAAA,aAAA,CAAC,0BACEA,cAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAG,SAAS,CACX,EAAA,kBAAAA,cAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,IAAA;AAAA,UACL,OAAQ,EAAA,OAAA;AAAA,UACR,QAAA,+CAAW,QAAS,EAAA,IAAA,CAAA;AAAA,UACpB,OAAS,EAAA,iBAAA;AAAA,SAAA;AAAA,QACV,qBAAA;AAAA,OAGH,CACF,CACF,CAAA;AAAA,KACF;AAAA,GAEJ,CACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"contact-import-mapping.js","sources":["../../../../src/contact-import/components/contact-import-mapping.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n FormInput,\n FormLabel,\n Heading,\n IconButton,\n Select,\n Table,\n Tbody,\n Td,\n Text,\n Th,\n Thead,\n Tr,\n} from \"@sparrowengg/twigs-react\";\nimport { DeleteIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useEffect, useRef } from \"react\";\nimport { ContactImportMappingProps } from \"../types\";\nimport { SelectOption } from \"../../commons/types/enhanced\";\n\n// Define the Field type with all the properties used in the component\ntype Field = {\n id: string | number;\n integrationField: string | number | null;\n surveySparrowField: string | number | null;\n sampleData?: Array<string>;\n property?: \"custom\" | \"default\";\n mapped?: boolean;\n surveySparrowFieldError?: boolean;\n};\n\n\nconst defaultFieldValue: Omit<Field, \"id\"> = {\n integrationField: null,\n surveySparrowField: null,\n sampleData: [],\n property: \"custom\",\n mapped: false,\n surveySparrowFieldError: false,\n};\n\nconst ContactImportMapping: React.FC<ContactImportMappingProps> = ({\n contactImportField,\n setContactImportField,\n integrationName,\n contactProperties,\n}) => {\n const customPropertyRef = useRef<HTMLDivElement | null>(null);\n const initialRenderRef = useRef(true);\n\n useEffect(() => {\n if (!initialRenderRef.current && customPropertyRef?.current) {\n customPropertyRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n });\n }\n initialRenderRef.current = false;\n }, [contactImportField]);\n\n const customFieldHandler = (\n id: string | number,\n property: keyof Field,\n value: string | number | boolean | null\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id ? { ...field, [property]: value } : field\n ),\n }));\n };\n\n const updateSurveySparrowField = (\n value: string | number,\n id: string | number,\n manuallyMapped: boolean\n ) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.map((field) =>\n field.id === id\n ? {\n ...field,\n surveySparrowField: value,\n ...(manuallyMapped && { mapped: true }),\n }\n : field\n ),\n }));\n };\n\n const addCustomProperty = () => {\n setContactImportField((prev) => ({\n ...prev,\n fields: [\n ...prev.fields,\n {\n id: prev.fields.length\n ? (typeof prev.fields[prev.fields.length - 1].id === 'number' \n ? (prev.fields[prev.fields.length - 1].id as number) + 1 \n : Date.now())\n : 1,\n ...defaultFieldValue,\n },\n ],\n }));\n };\n\n const deleteCustomProperty = (id: string | number) => {\n setContactImportField((prev) => ({\n ...prev,\n fields: prev.fields.filter((field) => field.id !== id),\n }));\n };\n\n return (\n <Flex justifyContent=\"center\">\n <Box css={{ marginTop: \"$40\", maxWidth: \"90%\", width: \"100%\" }}>\n <Box css={{ paddingLeft: \"$28\" }}>\n <Heading size=\"h5\">Map Contact Properties</Heading>\n <Text css={{ marginTop: \"$4\", color: \"$neutral600\" }} size=\"md\">\n Review these mappings before importing. Unmapped columns will be\n ignored.\n </Text>\n </Box>\n <Box\n css={{\n height: \"calc(100vh - 291px)\",\n paddingTop: \"$16\",\n overflowY: \"auto\",\n position: \"relative\",\n background: \"$white900\",\n paddingLeft: \"$28\",\n }}\n >\n <Table\n css={{\n width: \"100%\",\n background: \"$white900\",\n borderRadius: \"5px\",\n borderCollapse: \"collapse\",\n }}\n >\n <Thead css={{ zIndex: 5, position: \"sticky\", top: \"-31px\" }}>\n <Th>{`${integrationName} Profile Fields Data`}</Th>\n <Th css={{ borderLeft: \"$borderWidths$xs solid $neutral100\" }}>\n SurveySparrow Mapping\n </Th>\n </Thead>\n <Tbody>\n {[...contactImportField.fields]\n .sort((a, b) => {\n // Automatically mapped (not manually mapped and has surveySparrowField) come first\n const aIsAutoMapped = !a.mapped && a.surveySparrowField;\n const bIsAutoMapped = !b.mapped && b.surveySparrowField;\n \n if (aIsAutoMapped && !bIsAutoMapped) return -1;\n if (!aIsAutoMapped && bIsAutoMapped) return 1;\n \n // Then manually mapped\n const aIsManuallyMapped = a.mapped && a.surveySparrowField;\n const bIsManuallyMapped = b.mapped && b.surveySparrowField;\n \n if (aIsManuallyMapped && !bIsManuallyMapped) return -1;\n if (!aIsManuallyMapped && bIsManuallyMapped) return 1;\n \n // Keep original order for items in the same category\n return 0;\n })\n .map((field) => {\n const hasSurveyFieldValue = contactProperties.some(\n (contact) => contact.value === field.surveySparrowField\n );\n\n return (\n <Tr key={field.id}>\n <Td css={{ width: 560 }}>\n {field.property !== \"custom\" ? (\n <>\n <Text size=\"sm\" weight=\"medium\">\n {typeof field.integrationField === 'string' \n ? field.integrationField.replace(\"_\", \" \")\n : field.integrationField}\n </Text>\n {field.sampleData?.map((sample, index) => (\n <Text\n key={index}\n size=\"xs\"\n css={{ lineHeight: \"$xs\" }}\n >\n {sample.length > 40\n ? `${sample.slice(0, 40)}...`\n : sample}\n </Text>\n ))}\n </>\n ) : (\n <Box css={{ position: \"relative\" }}>\n <FormInput\n size=\"lg\"\n onChange={(event: any) =>\n customFieldHandler(\n field.id,\n \"integrationField\",\n event.target.value\n )\n }\n />\n <FormLabel\n css={{ marginTop: \"$4\", color: \"$neutral400\" }}\n >\n Enter the exact custom property name for accurate\n mapping. It is case-sensitive.\n </FormLabel>\n <IconButton\n css={{\n position: \"absolute\",\n top: \"0\",\n left: \"-70px\",\n }}\n size=\"lg\"\n variant=\"ghost\"\n color=\"secondary\"\n onClick={() => deleteCustomProperty(field.id)}\n icon={<DeleteIcon />}\n />\n </Box>\n )}\n </Td>\n <Td\n css={{\n width: 560,\n borderLeft: \"$borderWidths$xs solid $neutral100\",\n }}\n >\n <Select\n size=\"lg\"\n placeholder=\"--Choose Property--\"\n value={\n field.surveySparrowField\n ? {\n label: contactProperties.find(\n (contact) =>\n contact.value === field.surveySparrowField\n )?.label,\n value: field.surveySparrowField,\n }\n : null\n }\n options={contactProperties.filter(\n (contact) => contact.type !== \"DEPENDENT_FIELD\"\n )}\n onChange={(currentField: any) =>\n updateSurveySparrowField(\n currentField.value,\n field.id,\n true\n )\n }\n />\n {hasSurveyFieldValue && (\n <FormLabel\n size=\"xs\"\n css={{\n color: field.mapped ? \"$neutral600\" : \"#0F966C\",\n marginBlock: \"$4\",\n }}\n >\n {field.mapped\n ? \"Manually mapped by you\"\n : \"Automatically mapped\"}\n </FormLabel>\n )}\n {!field.surveySparrowField &&\n field.surveySparrowFieldError && (\n <FormLabel\n css={{ color: \"$negative500\", marginTop: \"$4\" }}\n size=\"xs\"\n >\n Please select the property\n </FormLabel>\n )}\n </Td>\n </Tr>\n );\n })}\n <Tr>\n <Td colSpan={2}>\n <Button\n size=\"md\"\n variant=\"ghost\"\n leftIcon={<PlusIcon />}\n onClick={addCustomProperty}\n >\n Add Custom Property\n </Button>\n </Td>\n </Tr>\n </Tbody>\n </Table>\n </Box>\n </Box>\n </Flex>\n );\n};\n\nexport default ContactImportMapping;\n"],"names":["React"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparrowengg/integrations-templates-frontend",
3
- "version": "2.1.0-notion-release.46",
3
+ "version": "2.1.0-notion-release.47",
4
4
  "license": "MIT",
5
5
  "module": "dist/es/index.js",
6
6
  "main": "dist/cjs/index.js",