@sparrowengg/integrations-templates-frontend 2.1.0-notion-release.34 → 2.1.0-notion-release.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/cjs/_virtual/index5.js +2 -2
  2. package/dist/cjs/_virtual/index8.js +2 -2
  3. package/dist/cjs/_virtual/index9.js +2 -2
  4. package/dist/cjs/commons/constants/index.js +0 -2
  5. package/dist/cjs/commons/constants/index.js.map +1 -1
  6. package/dist/cjs/contact-import/components/ContactImportHeader.js +27 -37
  7. package/dist/cjs/contact-import/components/ContactImportHeader.js.map +1 -1
  8. package/dist/cjs/contact-import/components/ContactImportModal.js +53 -54
  9. package/dist/cjs/contact-import/components/ContactImportModal.js.map +1 -1
  10. package/dist/cjs/contact-import/constants/ui-strings.js +18 -0
  11. package/dist/cjs/contact-import/constants/ui-strings.js.map +1 -0
  12. package/dist/cjs/contact-import/index.js +13 -230
  13. package/dist/cjs/contact-import/index.js.map +1 -1
  14. package/dist/cjs/contact-import/utils/validation.utils.js +18 -0
  15. package/dist/cjs/contact-import/utils/validation.utils.js.map +1 -0
  16. package/dist/cjs/dynamic-mapping/constants/ui-strings.js +52 -0
  17. package/dist/cjs/dynamic-mapping/constants/ui-strings.js.map +1 -0
  18. package/dist/cjs/dynamic-mapping/index.js +4 -3
  19. package/dist/cjs/dynamic-mapping/index.js.map +1 -1
  20. package/dist/cjs/index.js +10 -12
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/integration-template/components/ConfigureTemplate.js +43 -31
  23. package/dist/cjs/integration-template/components/ConfigureTemplate.js.map +1 -1
  24. package/dist/cjs/integration-template/components/TemplateCard.js +2 -3
  25. package/dist/cjs/integration-template/components/TemplateCard.js.map +1 -1
  26. package/dist/cjs/integration-template/components/dashboard/DashboardItem.js +273 -0
  27. package/dist/cjs/integration-template/components/dashboard/DashboardItem.js.map +1 -0
  28. package/dist/cjs/integration-template/components/dashboard/DropdownItem.js +1 -2
  29. package/dist/cjs/integration-template/components/dashboard/DropdownItem.js.map +1 -1
  30. package/dist/cjs/integration-template/components/dashboard/EventComponent.js +1 -1
  31. package/dist/cjs/integration-template/components/dashboard/EventComponent.js.map +1 -1
  32. package/dist/cjs/integration-template/components/dashboard/MultiAccountFallback.js +4 -4
  33. package/dist/cjs/integration-template/components/dashboard/MultiAccountFallback.js.map +1 -1
  34. package/dist/cjs/integration-template/components/dashboard/SingleMappingChipWrapper.js +75 -0
  35. package/dist/cjs/integration-template/components/dashboard/SingleMappingChipWrapper.js.map +1 -0
  36. package/dist/cjs/integration-template/components/dashboard/SingleMappingDashboardItem.js +346 -0
  37. package/dist/cjs/integration-template/components/dashboard/SingleMappingDashboardItem.js.map +1 -0
  38. package/dist/cjs/integration-template/components/dashboard/SingleMappingEventWrapper.js +79 -0
  39. package/dist/cjs/integration-template/components/dashboard/SingleMappingEventWrapper.js.map +1 -0
  40. package/dist/cjs/integration-template/components/dashboard/TriggerDashboardItem.js +214 -0
  41. package/dist/cjs/integration-template/components/dashboard/TriggerDashboardItem.js.map +1 -0
  42. package/dist/cjs/integration-template/components/dashboard-constants.js +92 -0
  43. package/dist/cjs/integration-template/components/dashboard-constants.js.map +1 -0
  44. package/dist/cjs/integration-template/components/dashboard-utils.js +39 -0
  45. package/dist/cjs/integration-template/components/dashboard-utils.js.map +1 -0
  46. package/dist/cjs/integration-template/components/dashboard.js +55 -1195
  47. package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
  48. package/dist/cjs/integration-template/constants/index.js +1 -41
  49. package/dist/cjs/integration-template/constants/index.js.map +1 -1
  50. package/dist/cjs/integration-template/constants/ui-strings.js +15 -0
  51. package/dist/cjs/integration-template/constants/ui-strings.js.map +1 -0
  52. package/dist/cjs/integration-template/index.js +155 -217
  53. package/dist/cjs/integration-template/index.js.map +1 -1
  54. package/dist/cjs/integration-template/utils/component.utils.js +22 -0
  55. package/dist/cjs/integration-template/utils/component.utils.js.map +1 -0
  56. package/dist/cjs/integration-template/utils/url.utils.js +16 -0
  57. package/dist/cjs/integration-template/utils/url.utils.js.map +1 -0
  58. package/dist/cjs/mapping/components/ConfigurationField.js +178 -0
  59. package/dist/cjs/mapping/components/ConfigurationField.js.map +1 -0
  60. package/dist/cjs/mapping/components/ConfigurationSetup.js +19 -16
  61. package/dist/cjs/mapping/components/ConfigurationSetup.js.map +1 -1
  62. package/dist/cjs/mapping/components/CustomAddNewSelect.js +64 -61
  63. package/dist/cjs/mapping/components/CustomAddNewSelect.js.map +1 -1
  64. package/dist/cjs/mapping/components/EventSetup.js +25 -22
  65. package/dist/cjs/mapping/components/EventSetup.js.map +1 -1
  66. package/dist/cjs/mapping/components/MappingHeader.js +24 -24
  67. package/dist/cjs/mapping/components/MappingHeader.js.map +1 -1
  68. package/dist/cjs/mapping/constants/index.js.map +1 -1
  69. package/dist/cjs/mapping/constants/ui-strings.js +39 -0
  70. package/dist/cjs/mapping/constants/ui-strings.js.map +1 -0
  71. package/dist/cjs/mapping/index.js +7 -612
  72. package/dist/cjs/mapping/index.js.map +1 -1
  73. package/dist/cjs/mapping/utils/validation.utils.js +32 -0
  74. package/dist/cjs/mapping/utils/validation.utils.js.map +1 -0
  75. package/dist/cjs/node_modules/domelementtype/lib/index.js +1 -1
  76. package/dist/cjs/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  77. package/dist/cjs/node_modules/html-dom-parser/lib/server/html-to-dom.js +2 -2
  78. package/dist/cjs/node_modules/html-dom-parser/node_modules/dom-serializer/lib/index.js +1 -1
  79. package/dist/cjs/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js +2 -2
  80. package/dist/cjs/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js +1 -1
  81. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/helpers.js +1 -1
  82. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/index.js +1 -1
  83. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/legacy.js +1 -1
  84. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/querying.js +1 -1
  85. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/stringify.js +2 -2
  86. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/traversal.js +1 -1
  87. package/dist/cjs/node_modules/html-dom-parser/node_modules/htmlparser2/lib/index.js +3 -3
  88. package/dist/cjs/node_modules/html-react-parser/node_modules/domhandler/lib/index.js +1 -1
  89. package/dist/cjs/node_modules/html-react-parser/node_modules/domhandler/lib/node.js +1 -1
  90. package/dist/cjs/node_modules/style-to-js/cjs/index.js +1 -1
  91. package/dist/cjs/node_modules/style-to-object/cjs/index.js +1 -1
  92. package/dist/cjs/single-mapping/components/ConfigurationField.js +243 -0
  93. package/dist/cjs/single-mapping/components/ConfigurationField.js.map +1 -0
  94. package/dist/cjs/single-mapping/components/ConfigurationSetup.js +14 -13
  95. package/dist/cjs/single-mapping/components/ConfigurationSetup.js.map +1 -1
  96. package/dist/cjs/single-mapping/components/CustomDropdown.js +157 -228
  97. package/dist/cjs/single-mapping/components/CustomDropdown.js.map +1 -1
  98. package/dist/cjs/single-mapping/components/MappingHeader.js +67 -48
  99. package/dist/cjs/single-mapping/components/MappingHeader.js.map +1 -1
  100. package/dist/cjs/single-mapping/hooks/useEditState.js +58 -0
  101. package/dist/cjs/single-mapping/hooks/useEditState.js.map +1 -0
  102. package/dist/cjs/single-mapping/index.js +32 -940
  103. package/dist/cjs/single-mapping/index.js.map +1 -1
  104. package/dist/cjs/single-mapping/utils/validation.utils.js +36 -30
  105. package/dist/cjs/single-mapping/utils/validation.utils.js.map +1 -1
  106. package/dist/cjs/triggers/components/EventSetup.js +64 -58
  107. package/dist/cjs/triggers/components/EventSetup.js.map +1 -1
  108. package/dist/cjs/triggers/components/TriggerHeader.js +26 -30
  109. package/dist/cjs/triggers/components/TriggerHeader.js.map +1 -1
  110. package/dist/cjs/triggers/constants/index.js.map +1 -1
  111. package/dist/cjs/triggers/constants/ui-strings.js +28 -0
  112. package/dist/cjs/triggers/constants/ui-strings.js.map +1 -0
  113. package/dist/cjs/triggers/index.js +6 -252
  114. package/dist/cjs/triggers/index.js.map +1 -1
  115. package/dist/cjs/triggers/utils/validation.utils.js +36 -0
  116. package/dist/cjs/triggers/utils/validation.utils.js.map +1 -0
  117. package/dist/es/_virtual/index5.js +2 -2
  118. package/dist/es/_virtual/index8.js +2 -2
  119. package/dist/es/_virtual/index9.js +2 -2
  120. package/dist/es/commons/constants/index.js +1 -2
  121. package/dist/es/commons/constants/index.js.map +1 -1
  122. package/dist/es/contact-import/components/ContactImportHeader.js +30 -38
  123. package/dist/es/contact-import/components/ContactImportHeader.js.map +1 -1
  124. package/dist/es/contact-import/components/ContactImportModal.js +51 -50
  125. package/dist/es/contact-import/components/ContactImportModal.js.map +1 -1
  126. package/dist/es/contact-import/constants/ui-strings.js +16 -0
  127. package/dist/es/contact-import/constants/ui-strings.js.map +1 -0
  128. package/dist/es/contact-import/index.js +12 -229
  129. package/dist/es/contact-import/index.js.map +1 -1
  130. package/dist/es/contact-import/utils/validation.utils.js +15 -0
  131. package/dist/es/contact-import/utils/validation.utils.js.map +1 -0
  132. package/dist/es/dynamic-mapping/constants/ui-strings.js +50 -0
  133. package/dist/es/dynamic-mapping/constants/ui-strings.js.map +1 -0
  134. package/dist/es/dynamic-mapping/index.js +4 -3
  135. package/dist/es/dynamic-mapping/index.js.map +1 -1
  136. package/dist/es/index.js +0 -1
  137. package/dist/es/index.js.map +1 -1
  138. package/dist/es/integration-template/components/ConfigureTemplate.js +43 -31
  139. package/dist/es/integration-template/components/ConfigureTemplate.js.map +1 -1
  140. package/dist/es/integration-template/components/TemplateCard.js +2 -3
  141. package/dist/es/integration-template/components/TemplateCard.js.map +1 -1
  142. package/dist/es/integration-template/components/dashboard/DashboardItem.js +271 -0
  143. package/dist/es/integration-template/components/dashboard/DashboardItem.js.map +1 -0
  144. package/dist/es/integration-template/components/dashboard/DropdownItem.js +1 -2
  145. package/dist/es/integration-template/components/dashboard/DropdownItem.js.map +1 -1
  146. package/dist/es/integration-template/components/dashboard/EventComponent.js +1 -1
  147. package/dist/es/integration-template/components/dashboard/EventComponent.js.map +1 -1
  148. package/dist/es/integration-template/components/dashboard/MultiAccountFallback.js +4 -4
  149. package/dist/es/integration-template/components/dashboard/MultiAccountFallback.js.map +1 -1
  150. package/dist/es/integration-template/components/dashboard/SingleMappingChipWrapper.js +73 -0
  151. package/dist/es/integration-template/components/dashboard/SingleMappingChipWrapper.js.map +1 -0
  152. package/dist/es/integration-template/components/dashboard/SingleMappingDashboardItem.js +344 -0
  153. package/dist/es/integration-template/components/dashboard/SingleMappingDashboardItem.js.map +1 -0
  154. package/dist/es/integration-template/components/dashboard/SingleMappingEventWrapper.js +77 -0
  155. package/dist/es/integration-template/components/dashboard/SingleMappingEventWrapper.js.map +1 -0
  156. package/dist/es/integration-template/components/dashboard/TriggerDashboardItem.js +212 -0
  157. package/dist/es/integration-template/components/dashboard/TriggerDashboardItem.js.map +1 -0
  158. package/dist/es/integration-template/components/dashboard-constants.js +88 -0
  159. package/dist/es/integration-template/components/dashboard-constants.js.map +1 -0
  160. package/dist/es/integration-template/components/dashboard-utils.js +36 -0
  161. package/dist/es/integration-template/components/dashboard-utils.js.map +1 -0
  162. package/dist/es/integration-template/components/dashboard.js +43 -1183
  163. package/dist/es/integration-template/components/dashboard.js.map +1 -1
  164. package/dist/es/integration-template/constants/index.js +2 -36
  165. package/dist/es/integration-template/constants/index.js.map +1 -1
  166. package/dist/es/integration-template/constants/ui-strings.js +13 -0
  167. package/dist/es/integration-template/constants/ui-strings.js.map +1 -0
  168. package/dist/es/integration-template/index.js +154 -216
  169. package/dist/es/integration-template/index.js.map +1 -1
  170. package/dist/es/integration-template/utils/component.utils.js +18 -0
  171. package/dist/es/integration-template/utils/component.utils.js.map +1 -0
  172. package/dist/es/integration-template/utils/url.utils.js +13 -0
  173. package/dist/es/integration-template/utils/url.utils.js.map +1 -0
  174. package/dist/es/mapping/components/ConfigurationField.js +174 -0
  175. package/dist/es/mapping/components/ConfigurationField.js.map +1 -0
  176. package/dist/es/mapping/components/ConfigurationSetup.js +17 -16
  177. package/dist/es/mapping/components/ConfigurationSetup.js.map +1 -1
  178. package/dist/es/mapping/components/CustomAddNewSelect.js +62 -61
  179. package/dist/es/mapping/components/CustomAddNewSelect.js.map +1 -1
  180. package/dist/es/mapping/components/EventSetup.js +23 -22
  181. package/dist/es/mapping/components/EventSetup.js.map +1 -1
  182. package/dist/es/mapping/components/MappingHeader.js +23 -25
  183. package/dist/es/mapping/components/MappingHeader.js.map +1 -1
  184. package/dist/es/mapping/constants/index.js.map +1 -1
  185. package/dist/es/mapping/constants/ui-strings.js +37 -0
  186. package/dist/es/mapping/constants/ui-strings.js.map +1 -0
  187. package/dist/es/mapping/index.js +5 -610
  188. package/dist/es/mapping/index.js.map +1 -1
  189. package/dist/es/mapping/utils/validation.utils.js +28 -0
  190. package/dist/es/mapping/utils/validation.utils.js.map +1 -0
  191. package/dist/es/node_modules/domelementtype/lib/index.js +1 -1
  192. package/dist/es/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  193. package/dist/es/node_modules/html-dom-parser/lib/server/html-to-dom.js +2 -2
  194. package/dist/es/node_modules/html-dom-parser/node_modules/dom-serializer/lib/index.js +1 -1
  195. package/dist/es/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js +2 -2
  196. package/dist/es/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js +1 -1
  197. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/helpers.js +1 -1
  198. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/index.js +1 -1
  199. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/legacy.js +1 -1
  200. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/querying.js +1 -1
  201. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/stringify.js +2 -2
  202. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/traversal.js +1 -1
  203. package/dist/es/node_modules/html-dom-parser/node_modules/htmlparser2/lib/index.js +3 -3
  204. package/dist/es/node_modules/html-react-parser/node_modules/domhandler/lib/index.js +1 -1
  205. package/dist/es/node_modules/html-react-parser/node_modules/domhandler/lib/node.js +1 -1
  206. package/dist/es/node_modules/style-to-js/cjs/index.js +1 -1
  207. package/dist/es/node_modules/style-to-object/cjs/index.js +1 -1
  208. package/dist/es/single-mapping/components/ConfigurationField.js +241 -0
  209. package/dist/es/single-mapping/components/ConfigurationField.js.map +1 -0
  210. package/dist/es/single-mapping/components/ConfigurationSetup.js +14 -13
  211. package/dist/es/single-mapping/components/ConfigurationSetup.js.map +1 -1
  212. package/dist/es/single-mapping/components/CustomDropdown.js +156 -227
  213. package/dist/es/single-mapping/components/CustomDropdown.js.map +1 -1
  214. package/dist/es/single-mapping/components/MappingHeader.js +68 -49
  215. package/dist/es/single-mapping/components/MappingHeader.js.map +1 -1
  216. package/dist/es/single-mapping/hooks/useEditState.js +56 -0
  217. package/dist/es/single-mapping/hooks/useEditState.js.map +1 -0
  218. package/dist/es/single-mapping/index.js +30 -941
  219. package/dist/es/single-mapping/index.js.map +1 -1
  220. package/dist/es/single-mapping/utils/validation.utils.js +31 -27
  221. package/dist/es/single-mapping/utils/validation.utils.js.map +1 -1
  222. package/dist/es/triggers/components/EventSetup.js +62 -58
  223. package/dist/es/triggers/components/EventSetup.js.map +1 -1
  224. package/dist/es/triggers/components/TriggerHeader.js +26 -32
  225. package/dist/es/triggers/components/TriggerHeader.js.map +1 -1
  226. package/dist/es/triggers/constants/index.js.map +1 -1
  227. package/dist/es/triggers/constants/ui-strings.js +26 -0
  228. package/dist/es/triggers/constants/ui-strings.js.map +1 -0
  229. package/dist/es/triggers/index.js +5 -251
  230. package/dist/es/triggers/index.js.map +1 -1
  231. package/dist/es/triggers/utils/validation.utils.js +30 -0
  232. package/dist/es/triggers/utils/validation.utils.js.map +1 -0
  233. package/dist/index.d.ts +216 -143
  234. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/single-mapping/index.tsx"],"sourcesContent":["import {\n Flex,\n IconButton,\n Heading,\n Button,\n Box,\n Checkbox,\n FormInput,\n Select,\n FormLabel,\n ThemeProvider,\n Text,\n Switch,\n Radio,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n Input,\n Calendar,\n RadioGroup,\n Tooltip,\n Chip,\n TooltipProvider,\n} from \"@sparrowengg/twigs-react\";\nimport { parseDate, DateValue } from \"@internationalized/date\";\nimport EditConfirmation from \"../commons/components/edit-confirmation\";\nimport {\n ArrowLeftIcon,\n ChevronRightIcon,\n ChevronDownIcon,\n PlusIcon,\n TickCircleFillIcon,\n} from \"@sparrowengg/twigs-react-icons\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Arrow from \"../commons/icons/arrow\";\nimport Mapping from \"./components/mapping\";\nimport { surveySparrowURL, dynamicDateOptions } from \"../commons/constants\";\nimport { components, OptionProps, SingleValueProps } from \"react-select\";\nimport dayjs from \"dayjs\";\nimport {\n IntegrationField,\n ConfigurationField,\n ConfigurationFieldValue,\n ImportOption,\n ImportResponse,\n MappingData,\n SingleMappingConfiguration,\n SurveyDetails,\n EventField\n} from \"../commons/types/enhanced\";\n\ntype SingleMappingPropsType = {\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: () => void;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n};\n\nexport const SingleMapping = ({\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n}: SingleMappingPropsType) => {\n const [ssMappingData, setSSMappingData] = useState<MappingData>({\n questions: [],\n variables: [],\n contactProperties: [],\n expressions: [],\n property: [],\n derivedQuestions: [],\n });\n const [isEditConfirmationOpen, setIsEditConfirmationOpen] = useState(false);\n\n // Track original state for edit mode\n const [originalMappingData, setOriginalMappingData] = useState<MappingData | null>(null);\n const [originalConfigurationFields, setOriginalConfigurationFields] =\n useState<any>(null);\n const [originalConfiguredFields, setOriginalConfiguredFields] =\n useState<any>(null);\n const [originalImportResponse, setOriginalImportResponse] =\n useState<any>(null);\n const [isInitialLoad, setIsInitialLoad] = useState(true);\n\n useEffect(() => {\n if (!!editField?.id) {\n navigateMappingPage(true);\n // Store original state when entering edit mode\n setOriginalConfigurationFields(\n JSON.parse(JSON.stringify(configuration.configurationFields))\n );\n setOriginalConfiguredFields(\n JSON.parse(JSON.stringify(configuration.configuredFields))\n );\n setOriginalImportResponse(JSON.parse(JSON.stringify(importResponse)));\n }\n }, []);\n\n // Function to check if any field values have changed in edit mode\n const hasFieldsChanged = () => {\n if (!editField?.id || !originalMappingData) return true; // Not in edit mode or no original data\n\n // Check if mapping data has changed\n const mappingDataChanged =\n JSON.stringify(ssMappingData) !== JSON.stringify(originalMappingData);\n const importResponseChanged =\n JSON.stringify(JSON.parse(JSON.stringify(importResponse))) !==\n JSON.stringify(originalImportResponse);\n\n // Check if configuration fields have changed\n const configFieldsChanged =\n JSON.stringify(configuration.configurationFields) !==\n JSON.stringify(originalConfigurationFields);\n\n // Check if configured fields have changed\n const configuredFieldsChanged =\n JSON.stringify(configuration.configuredFields) !==\n JSON.stringify(originalConfiguredFields);\n\n return (\n configFieldsChanged ||\n configuredFieldsChanged ||\n (!isInitialLoad && mappingDataChanged)\n );\n };\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\",\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: \"100%\" }}>\n <MappingHeader\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged()}\n saveConfiguration={() => {\n configuration.onSaveHandler();\n }}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={() => navigateMappingPage(false)}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={() => {\n onSaveHandler(editField?.id ? editField : {});\n }}\n />\n {!isMappingPage && configuration.hasConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <Mapping\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n />\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n\nconst MappingHeader = ({\n isEditConfirmationOpen,\n editField,\n importResponse,\n hasExistingMapping,\n ssMappingData,\n isMappingPage,\n navigateConfigPage,\n onSaveHandler,\n previousMappingHandler,\n saveConfiguration,\n configuration,\n setIsEditConfirmationOpen,\n hasFieldsChanged,\n}: {\n ssMappingData: MappingData;\n configuration: any;\n hasFieldsChanged: boolean;\n isEditConfirmationOpen: boolean;\n editField?: any;\n importResponse: any;\n hasExistingMapping: boolean;\n isMappingPage: boolean;\n navigateConfigPage: (value?: boolean) => void;\n onSaveHandler: (fields: any) => void;\n previousMappingHandler?: (value?: boolean) => void;\n saveConfiguration: () => void;\n setIsEditConfirmationOpen: (value: boolean) => void;\n}) => {\n const isButtonDisabled = () => {\n if (isMappingPage) {\n // In edit mode, check if any fields have changed\n if (editField?.id) {\n return !hasFieldsChanged;\n }\n\n if ((importResponse?.value as any)?.importMethod === \"SEND_ALL_DATA\") {\n return !(\n ssMappingData?.questions?.length ||\n ssMappingData?.variables?.length ||\n ssMappingData?.contactProperties?.length ||\n ssMappingData?.expressions?.length ||\n ssMappingData?.property?.length ||\n ssMappingData?.derivedQuestions?.length\n );\n } else {\n const isMappingDisabled =\n ssMappingData?.questions?.some((question: EventField) => question.isEnabled) ||\n ssMappingData?.variables?.some((variable: EventField) => variable.isEnabled) ||\n ssMappingData?.contactProperties?.some(\n (property: EventField) => property.isEnabled\n ) ||\n ssMappingData?.expressions?.some(\n (expression: EventField) => expression.isEnabled\n ) ||\n ssMappingData?.derivedQuestions?.some(\n (derivedQuestion: EventField) => derivedQuestion.isEnabled\n ) ||\n ssMappingData?.property?.some((property: EventField) => property.isEnabled);\n return !isMappingDisabled;\n }\n } else {\n // In edit mode for configuration, check if any fields have changed\n // if (editField?.id && !hasFieldsChanged()) {\n // return true;\n // }\n\n const isAllFieldsDisabled = Object.values(\n configuration?.configurationFields || {}\n )?.some(\n (field: any) => (field as ConfigurationField)?.value === null || (field as ConfigurationField)?.value === undefined\n );\n if (\n configuration?.configurationFields?.find(\n (field: any) => (field as ConfigurationField)?.id === \"responseImportSettings\"\n )?.value\n ) {\n return (\n isAllFieldsDisabled ||\n !configuration?.configuredFields?.responseImportType\n );\n } else {\n return isAllFieldsDisabled;\n }\n }\n };\n\n const isMappingPageDisabled = () => {\n const isAllFieldsDisabled = Object.values(\n configuration?.configurationFields || {}\n )?.some(\n (field: any) => field?.value === null || field?.value === undefined\n );\n if (\n configuration?.configurationFields?.find(\n (field: any) => field?.id === \"responseImportSettings\"\n )?.value\n ) {\n return (\n isAllFieldsDisabled ||\n !configuration?.configuredFields?.responseImportType\n );\n } else {\n return isAllFieldsDisabled;\n }\n };\n return (\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{\n borderBottom: \"$borderWidths$xs solid $neutral200\",\n padding: \"$8 $12\",\n }}\n >\n <Flex\n gap=\"$6\"\n alignItems=\"center\"\n css={{ visibility: hasExistingMapping ? \"visible\" : \"hidden\" }}\n >\n <IconButton\n onClick={() => previousMappingHandler?.()}\n color=\"default\"\n icon={<ArrowLeftIcon />}\n size=\"lg\"\n />\n <Heading size=\"h6\">\n {editField?.id ? \"Edit Mapping\" : \"New Mapping\"}\n </Heading>\n </Flex>\n <Flex\n alignItems=\"center\"\n gap=\"$4\"\n css={{\n \"& button\": { background: \"transparent !important\", fontSize: \"$md\" },\n }}\n >\n <Button\n css={{ color: !isMappingPage ? \"$neutral900\" : \"$neutral800\" }}\n color=\"default\"\n variant=\"ghost\"\n size=\"md\"\n onClick={() => isMappingPage && navigateConfigPage()}\n >\n Configuration\n </Button>\n <Arrow />\n <Button\n disabled={isMappingPageDisabled()}\n css={{\n color: isMappingPage ? \"$neutral900\" : \"$neutral800\",\n cursor: isMappingPageDisabled() ? \"not-allowed\" : \"pointer\",\n }}\n color=\"default\"\n variant=\"ghost\"\n onClick={() => {\n if (isMappingPage) {\n onSaveHandler({});\n } else {\n saveConfiguration();\n }\n }}\n size=\"md\"\n >\n Mapping\n </Button>\n </Flex>\n <Flex\n justifyContent=\"end\"\n css={{\n width: \"180px\",\n }}\n >\n <Button\n size=\"lg\"\n disabled={isButtonDisabled()}\n onClick={() => {\n if (isMappingPage) {\n if (editField?.id) {\n setIsEditConfirmationOpen(true);\n } else {\n onSaveHandler({});\n }\n } else {\n saveConfiguration();\n }\n }}\n >\n {isMappingPage\n ? editField?.id\n ? \"Update Mapping\"\n : \"Save Mapping\"\n : \"Continue, Mapping\"}\n </Button>\n </Flex>\n\n {isEditConfirmationOpen && (\n <EditConfirmation\n name=\"Are you sure?\"\n description=\"Saving this updated mapping properties will generate new sheet with the revised mapping.\"\n onConfirm={async () => {\n await onSaveHandler({});\n setIsEditConfirmationOpen(false);\n }}\n onCancel={() => {\n setIsEditConfirmationOpen(false);\n }}\n />\n )}\n </Flex>\n );\n};\n\nconst ConfigurationSetup = ({\n configuration,\n surveyName,\n editField,\n}: {\n configuration: any;\n surveyName: string;\n editField: any;\n}) => {\n return (\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Event Details</Heading>\n <Flex gap=\"$2\" css={{ marginTop: \"$4\" }}>\n <Text size=\"sm\" css={{ color: \"$neutral500\" }}>\n Survey Name:\n </Text>\n <Tooltip\n content={surveyName?.length > 25 ? surveyName : \"\"}\n css={{\n zIndex: \"9999999 !important\",\n fontFamily: \"DM Sans !important\",\n }}\n >\n <Box>\n <Text\n size=\"sm\"\n weight={\"medium\"}\n truncate\n css={{ color: \"$neutral800\", maxWidth: \"270px\" }}\n >\n {surveyName}\n </Text>\n </Box>\n </Tooltip>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$8\"\n css={{\n marginTop: \"$12\",\n \"& label\": {\n color: \"$neutral800\",\n },\n }}\n >\n {configuration.configurationFields?.map((field: any) => {\n return (\n <Configuration\n field={field}\n configuredFields={configuration.configuredFields}\n />\n );\n })}\n {configuration.importOptions.showImportOptions && (\n <Flex\n gap=\"$2\"\n flexDirection=\"column\"\n css={{\n marginTop: \"-4px !important\",\n }}\n >\n <CustomDropdown\n editField={editField}\n data={configuration.importOptions.options}\n value={\n configuration?.configuredFields?.responseImportType?.value ??\n configuration.importOptions.options[0]\n }\n onChangeHandler={configuration.importOptions.onChangeHandler}\n />\n </Flex>\n )}\n {configuration.configuredFields?.responseImportType?.value?.type ===\n \"date\" && (\n <Text\n size=\"sm\"\n weight={\"regular\"}\n css={{ color: \"$neutral600\", marginTop: \"-$6\" }}\n >\n {`Existing responses from ${configuration.configuredFields?.responseImportType?.value?.value} will be imported`}\n </Text>\n )}\n {configuration.importOptions.excludeResponse &&\n configuration.configuredFields?.responseImportType?.value?.type ===\n \"dateRange\" && (\n <Configuration\n field={configuration.importOptions.excludeResponse}\n configuredFields={configuration.configuredFields}\n responseImportType={\n configuration.configuredFields?.responseImportType?.value?.value\n ?.label\n }\n />\n )}\n </Flex>\n </Box>\n );\n};\n\nconst CustomDropdown = ({ data, onChangeHandler, value, editField }: any) => {\n const [date, setDate] = useState<DateValue>(() => {\n try {\n return value\n ? parseDate(dayjs(value).format(\"YYYY-MM-DD\"))\n : parseDate(dayjs().format(\"YYYY-MM-DD\"));\n } catch (e) {\n return parseDate(dayjs().format(\"YYYY-MM-DD\"));\n }\n });\n const [days, setDays] = useState(value?.value?.value ?? 0);\n const [open, setOpen] = useState(false);\n const [hasBeenOpened, setHasBeenOpened] = useState(false);\n useEffect(() => {\n if (!editField?.id && !hasBeenOpened) {\n setOpen(true);\n setHasBeenOpened(true);\n }\n }, [editField?.id, hasBeenOpened]);\n\n return (\n <DropdownMenu open={open} onOpenChange={setOpen} modal={false}>\n <DropdownMenuTrigger asChild>\n <Input\n size=\"lg\"\n rightIcon={<ChevronDownIcon size={30} color=\"#6A6A6A\" />}\n placeholder=\"Choose\"\n value={\n value?.type === \"date\"\n ? `${value?.label} > ${value?.value}`\n : value?.type === \"dateRange\"\n ? `${value?.label} - ${value?.value?.type === \"custom\" ? `${value?.value?.value} days` : value?.value?.label}`\n : value?.label\n }\n css={{\n \"& input\": {\n textAlign: \"left !important\",\n },\n }}\n />\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n css={{\n width: \"488px\",\n marginBlockStart: \"$2\",\n p: {\n margin: \"0px !important\",\n },\n zIndex: \"99 !important\",\n }}\n className=\"dm-sans\"\n >\n {data.map((option: any) => {\n if (!option.type) {\n return (\n <Tooltip\n content={option.tooltip || \"\"}\n css={{\n zIndex: \"9999999 !important\",\n fontFamily: \"DM Sans !important\",\n }}\n >\n <Box>\n <DropdownMenuItem\n disabled={option?.disabled}\n css={{\n cursor: option?.disabled\n ? \"not-allowed !important\"\n : \"pointer !important\",\n background:\n value?.type === option.type\n ? \"#4A9CA626 !important\"\n : \"transparent !important\",\n }}\n onClick={() =>\n onChangeHandler({\n id: \"responseImportType\",\n value: option,\n })\n }\n >\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"center\"\n css={{\n width: \"100%\",\n }}\n >\n <Flex justifyContent=\"center\" flexDirection=\"column\">\n <Text\n size=\"sm\"\n weight={\"regular\"}\n css={{ color: \"$neutral900\" }}\n >\n {option.label}\n </Text>\n <Text\n size=\"xs\"\n weight={\"regular\"}\n css={{ color: \"$neutral700\" }}\n >\n {option.description}\n </Text>\n </Flex>\n </Flex>\n </DropdownMenuItem>\n </Box>\n </Tooltip>\n );\n } else {\n return (\n <Tooltip\n content={option.tooltip || \"\"}\n css={{\n fontFamily: \"DM Sans !important\",\n zIndex: \"9999999 !important\",\n }}\n >\n <Box>\n <DropdownMenuSub>\n <DropdownMenuSubTrigger\n disabled={option?.disabled}\n css={{\n cursor: option?.disabled\n ? \"not-allowed !important\"\n : \"pointer !important\",\n background:\n value?.type === option.type\n ? \"#4A9CA626 !important\"\n : \"transparent !important\",\n }}\n >\n {\" \"}\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"center\"\n css={{\n width: \"100%\",\n }}\n >\n <Flex\n css={{ cursor: \"pointer\" }}\n justifyContent=\"center\"\n flexDirection=\"column\"\n >\n <Text\n size=\"sm\"\n weight={\"regular\"}\n css={{ color: \"$neutral900\" }}\n >\n {option.label}\n </Text>\n <Text\n size=\"xs\"\n weight={\"regular\"}\n css={{ color: \"$neutral700\" }}\n >\n {option.description}\n </Text>\n </Flex>\n </Flex>\n </DropdownMenuSubTrigger>\n\n <DropdownMenuSubContent\n sideOffset={10}\n alignOffset={-5}\n css={{\n padding: \"0px !important\",\n maxHeight: \"500px\",\n minWidth: \"224px\",\n maxWidth: \"260px\",\n margin: \"0px !important\",\n ...(option.type === \"date\" && {\n border: \"none !important\",\n }),\n p: {\n margin: \"0px !important\",\n },\n marginBlockEnd: \"$10 !important\",\n }}\n className=\"dm-sans\"\n >\n {option.type === \"date\" && (\n <Calendar\n footerActionText=\"Apply\"\n size=\"md\"\n value={date}\n onChange={setDate}\n {...(option?.minValue && {\n minValue: parseDate(option?.minValue),\n })}\n {...(option?.maxValue && {\n maxValue: parseDate(option?.maxValue),\n })}\n footerAction={() => {\n onChangeHandler({\n id: \"responseImportType\",\n value: {\n ...option,\n value: dayjs(date.toString()).format(\n \"MMM D, YYYY\"\n ),\n },\n });\n setOpen(false);\n }}\n />\n )}\n {option.type === \"dateRange\" && (\n <Flex\n css={{\n paddingInline: \"$4 !important\",\n paddingBlock: \"$8 !important\",\n }}\n flexDirection=\"column\"\n gap=\"$4\"\n >\n <RadioGroup\n defaultValue={value?.value}\n onChange={(value) => {\n onChangeHandler({\n id: \"responseImportType\",\n value: {\n ...option,\n value: {\n type: value,\n value: value,\n label: dynamicDateOptions.find(\n (option) => option.value === value\n )?.label,\n },\n },\n });\n }}\n >\n {dynamicDateOptions.map((option) => (\n <Box\n css={{\n padding: \"$4 !important\",\n }}\n >\n <Radio value={option.value}>\n {\" \"}\n {option.label}{\" \"}\n </Radio>\n </Box>\n ))}\n </RadioGroup>\n {value?.value?.type === \"custom\" && (\n <Box\n css={{\n paddingRight: \"$4 !important\",\n position: \"relative\",\n }}\n >\n <Input\n size=\"md\"\n variant=\"filled\"\n value={days}\n onChange={(e) =>\n setDays((e.target as HTMLInputElement).value)\n }\n />\n <Text\n css={{\n position: \"absolute\",\n right: \"$8\",\n top: \"$3\",\n }}\n >\n Days\n </Text>\n </Box>\n )}\n\n <Flex\n justifyContent=\"space-between\"\n css={{\n borderBlockStart:\n \"$borderWidths$xs, solid, $neutral200 !important\",\n padding: \"$8\",\n }}\n >\n <Button size=\"sm\" variant=\"ghost\" color=\"secondary\">\n Cancel\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n color=\"primary\"\n onClick={() => {\n onChangeHandler({\n id: \"responseImportType\",\n value: {\n ...option,\n value: {\n type: value?.value?.type,\n value: days,\n label: value?.value?.label,\n },\n },\n });\n setOpen(false);\n }}\n >\n Apply\n </Button>\n </Flex>\n </Flex>\n )}\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n </Box>\n </Tooltip>\n );\n }\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nconst Configuration = ({\n field,\n configuredFields,\n responseImportType = null,\n}: any) => {\n let fieldValue = null;\n // if (field.id === \"responseImportType\") {\n // fieldValue = configuredFields?.map((item: any) => item.id === field.id)?.value ?? null;\n // } else {\n fieldValue = configuredFields?.[field.id]?.value ?? null;\n // }\n const [error, setError] = useState({\n errorMessage: \"\",\n error: false,\n id: null,\n });\n switch (field.fieldType) {\n case \"switch\":\n return (\n <Flex\n gap=\"$4\"\n alignItems=\"center\"\n css={{\n marginBlockStart: \"$12\",\n borderTop: \"$borderWidths$xs solid $neutral200\",\n paddingTop: \"$16\",\n }}\n >\n <Switch\n disabled={field?.disabled}\n size=\"sm\"\n checked={field?.value}\n onChange={(value) =>\n field.onChangeHandler({\n id: field.id,\n value: value,\n })\n }\n />\n <Text size=\"md\" weight={\"regular\"} css={{ color: \"$neutral900\" }}>\n {field.label}\n </Text>\n </Flex>\n );\n\n case \"checkbox\":\n return (\n <Flex flexDirection=\"column\" alignItems=\"start\" gap=\"$4\">\n <Flex gap=\"$4\" alignItems=\"center\">\n <Checkbox\n disabled={field?.disabled}\n checked={!!fieldValue}\n onChange={(value) =>\n field.onChangeHandler({\n id: field.id,\n value: value,\n })\n }\n />\n <Text size=\"sm\" weight={\"regular\"} css={{ color: \"$neutral900\" }}>\n {field.label}\n </Text>\n </Flex>\n <Text size=\"sm\" weight={\"regular\"} css={{ color: \"$neutral500\" }}>\n {field.value\n ? field.ifChecked()\n : field.ifUnchecked(responseImportType)}\n </Text>\n </Flex>\n );\n\n case \"input\":\n return (\n <>\n {field?.id === \"spreadsheet\" ? (\n <>\n {configuredFields?.action?.value ? (\n <Box\n className=\"dm-sans\"\n css={{\n label: {\n fontSize: \"$xs !important\",\n },\n }}\n >\n <FormInput\n disabled={field?.disabled}\n {...(error.id === field.id && {\n error: error.errorMessage,\n errorBorder: error.error,\n })}\n label={field.label}\n value={\n typeof fieldValue === \"object\" ? \"\" : fieldValue || \"\"\n }\n size=\"lg\"\n {...(field.pattern && {\n pattern: field.pattern,\n })}\n onChange={(event) => {\n if (field?.pattern) {\n const pattern = new RegExp(field.pattern);\n if (\n !pattern.test(event.currentTarget.value) &&\n event.currentTarget.value !== \"\"\n ) {\n setError({\n errorMessage: field.errorMessage,\n error: true,\n id: field.id,\n });\n } else {\n setError({\n errorMessage: \"\",\n error: false,\n id: null,\n });\n }\n field.onChangeHandler({\n id: field.id,\n value: event.currentTarget.value,\n });\n } else {\n field.onChangeHandler({\n id: field.id,\n value: event.currentTarget.value,\n });\n }\n }}\n />\n </Box>\n ) : null}\n </>\n ) : (\n <Box\n className=\"dm-sans\"\n css={{\n label: {\n fontSize: \"$xs !important\",\n },\n }}\n >\n <FormInput\n disabled={field?.disabled}\n {...(error.id === field.id && {\n error: error.errorMessage,\n errorBorder: error.error,\n })}\n label={field.label}\n value={typeof fieldValue === \"object\" ? \"\" : fieldValue || \"\"}\n size=\"lg\"\n {...(field.pattern && {\n pattern: field.pattern,\n })}\n onChange={(event) => {\n if (field?.pattern) {\n const pattern = new RegExp(field.pattern);\n if (\n !pattern.test(event.currentTarget.value) &&\n event.currentTarget.value !== \"\"\n ) {\n setError({\n errorMessage: field.errorMessage,\n error: true,\n id: field.id,\n });\n } else {\n setError({\n errorMessage: \"\",\n error: false,\n id: null,\n });\n }\n field.onChangeHandler({\n id: field.id,\n value: event.currentTarget.value,\n });\n } else {\n field.onChangeHandler({\n id: field.id,\n value: event.currentTarget.value,\n });\n }\n }}\n />\n </Box>\n )}\n </>\n );\n default:\n return (\n <>\n {field.id === \"spreadsheet\" ? (\n <>\n {configuredFields?.action?.value ? (\n <Flex\n gap=\"$2\"\n flexDirection=\"column\"\n css={{\n cursor: \"pointer !important\",\n \".twigs-select__indicator\": {\n width: \"14px !important\",\n color: \"#848484 !important\",\n },\n }}\n >\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {field.label}\n </FormLabel>\n <CustomAddNewSelect field={field} />\n </Flex>\n ) : null}\n </>\n ) : (\n <Flex\n gap=\"$2\"\n flexDirection=\"column\"\n css={{\n cursor: \"pointer !important\",\n \".twigs-select__indicator\": {\n width: \"14px !important\",\n color: \"#848484 !important\",\n },\n }}\n >\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {field.label}\n </FormLabel>\n <CustomAddNewSelect field={field} />\n </Flex>\n )}\n </>\n );\n }\n};\n\nconst CustomAddNewSelect = ({ field }: any) => {\n return (\n <Select\n isDisabled={field?.disabled}\n placeholder=\"\"\n size=\"lg\"\n css={{\n cursor: \"pointer\",\n }}\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n cursor: \"pointer\",\n }),\n }}\n value={field.value}\n onChange={(value) => {\n field.onChangeHandler({\n id: field?.id ?? field?.label,\n value: value,\n });\n }}\n options={field.options}\n />\n );\n};\nconst CustomShareOption: React.FC<OptionProps<any>> = (props) => {\n if (props.data.value === \"ADD_NEW\") {\n return (\n <Tooltip\n content={props.data.tooltip || \"\"}\n css={{\n zIndex: 999999999,\n fontFamily: \"DM Sans !important\",\n }}\n >\n <Box>\n <components.Option {...props}>\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ cursor: \"pointer\", zIndex: 999999999 }}\n >\n <Flex\n gap=\"$2\"\n alignItems=\"center\"\n css={{\n color: \"$primary500\",\n fontSize: \"$sm\",\n fontWeight: \"$7\",\n }}\n >\n <PlusIcon size={16} color=\"#4A9CA6\" />\n Add Account\n </Flex>\n </Flex>\n </components.Option>\n </Box>\n </Tooltip>\n );\n } else {\n return (\n <components.Option {...props}>\n <Flex\n css={{ cursor: \"pointer\", zIndex: 999999999 }}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"$2\"\n >\n <Text size=\"sm\">{props.label}</Text>{\" \"}\n {props.data.isAddonAccount && (\n <Chip\n color=\"primary\"\n size=\"sm\"\n leftElement={<TickCircleFillIcon />}\n >\n In Use (Add-on)\n </Chip>\n )}\n </Flex>\n </components.Option>\n );\n }\n};\nconst CustomSingleValue: React.FC<SingleValueProps<any>> = (props) => {\n if (props.data.value === \"ADD_NEW\") {\n return (\n <components.SingleValue {...props}>\n <Flex css={{ cursor: \"pointer\" }} alignItems=\"center\" gap=\"$2\">\n <PlusIcon size={16} />\n <Text size=\"sm\">{props.data.label}</Text>\n </Flex>\n </components.SingleValue>\n );\n } else {\n return (\n <components.SingleValue {...props}>\n <Flex css={{ cursor: \"pointer\" }} alignItems=\"center\" gap=\"$2\">\n <Text size=\"sm\">{props.data.label}</Text>\n </Flex>\n </components.SingleValue>\n );\n }\n};\n"],"names":["React","parseDate","_a","value","option","_b"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/single-mapping/index.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Box, Flex, ThemeProvider, TooltipProvider } from \"@sparrowengg/twigs-react\";\nimport { surveySparrowURL } from \"../commons/constants\";\nimport { MappingData, IntegrationField } from \"../commons/types/enhanced\";\nimport Mapping from \"./components/mapping\";\nimport { MappingHeader } from \"./components/MappingHeader\";\nimport { ConfigurationSetup } from \"./components/ConfigurationSetup\";\nimport { useEditState } from \"./hooks/useEditState\";\nimport { ConfigurationType } from \"./types/configuration.types\";\n\n/**\n * Props for the SingleMapping component\n */\nexport type SingleMappingPropsType = {\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: ConfigurationType;\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n};\n\n/**\n * SingleMapping Component\n * \n * A refactored component for handling single mapping configuration and field mapping.\n * Provides a two-step process: Configuration setup and Field mapping.\n * \n * @component\n * @example\n * ```tsx\n * <SingleMapping\n * integrationFields={fields}\n * configuration={config}\n * isMappingPage={false}\n * navigateMappingPage={setIsMappingPage}\n * surveyDetails={{ surveyName: \"Survey\", surveyId: \"123\" }}\n * onSaveHandler={handleSave}\n * hasExistingMapping={false}\n * importResponse={{ hasImportResponse: true, value: null, onChangeHandler: () => {} }}\n * />\n * ```\n */\nexport const SingleMapping: React.FC<SingleMappingPropsType> = ({\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n}) => {\n // Mapping data state\n const [ssMappingData, setSSMappingData] = useState<MappingData>({\n questions: [],\n variables: [],\n contactProperties: [],\n expressions: [],\n property: [],\n derivedQuestions: [],\n });\n\n // Edit confirmation modal state\n const [isEditConfirmationOpen, setIsEditConfirmationOpen] = useState(false);\n\n // Custom hook for managing edit state and tracking changes\n const {\n originalMappingData,\n setOriginalMappingData,\n isInitialLoad,\n setIsInitialLoad,\n hasFieldsChanged,\n } = useEditState({\n editField,\n configuration,\n importResponse,\n navigateMappingPage,\n });\n\n // Handler functions\n const handleSaveConfiguration = () => {\n configuration.onSaveHandler();\n };\n\n const handleNavigateConfigPage = () => {\n navigateMappingPage(false);\n };\n\n const handleSaveMapping = () => {\n onSaveHandler(editField?.id ? editField : {});\n };\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\",\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: \"100%\" }}>\n {/* Header with navigation */}\n <MappingHeader\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged()}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSaveMapping}\n />\n\n {/* Content: Configuration or Mapping */}\n {!isMappingPage && configuration.hasConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <Mapping\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n />\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n\n// Export for backward compatibility\nexport default SingleMapping;\n\n"],"names":["React"],"mappings":"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"}
@@ -1,38 +1,42 @@
1
- import { CONFIGURATION_IDS, UI_MESSAGES } from '../constants/index.js';
2
-
3
- const areAllFieldsConfigured = (configuration) => {
4
- var _a;
5
- const hasEmptyFields = (_a = Object.values(
6
- (configuration == null ? void 0 : configuration.configurationFields) || {}
7
- )) == null ? void 0 : _a.some(
1
+ const hasMappingDataEnabled = (ssMappingData) => {
2
+ var _a, _b, _c, _d, _e, _f;
3
+ return ((_a = ssMappingData == null ? void 0 : ssMappingData.questions) == null ? void 0 : _a.some((question) => question.isEnabled)) || ((_b = ssMappingData == null ? void 0 : ssMappingData.variables) == null ? void 0 : _b.some((variable) => variable.isEnabled)) || ((_c = ssMappingData == null ? void 0 : ssMappingData.contactProperties) == null ? void 0 : _c.some((property) => property.isEnabled)) || ((_d = ssMappingData == null ? void 0 : ssMappingData.expressions) == null ? void 0 : _d.some((expression) => expression.isEnabled)) || ((_e = ssMappingData == null ? void 0 : ssMappingData.derivedQuestions) == null ? void 0 : _e.some((derivedQuestion) => derivedQuestion.isEnabled)) || ((_f = ssMappingData == null ? void 0 : ssMappingData.property) == null ? void 0 : _f.some((property) => property.isEnabled));
4
+ };
5
+ const hasMappingDataLength = (ssMappingData) => {
6
+ var _a, _b, _c, _d, _e, _f;
7
+ return !!(((_a = ssMappingData == null ? void 0 : ssMappingData.questions) == null ? void 0 : _a.length) || ((_b = ssMappingData == null ? void 0 : ssMappingData.variables) == null ? void 0 : _b.length) || ((_c = ssMappingData == null ? void 0 : ssMappingData.contactProperties) == null ? void 0 : _c.length) || ((_d = ssMappingData == null ? void 0 : ssMappingData.expressions) == null ? void 0 : _d.length) || ((_e = ssMappingData == null ? void 0 : ssMappingData.property) == null ? void 0 : _e.length) || ((_f = ssMappingData == null ? void 0 : ssMappingData.derivedQuestions) == null ? void 0 : _f.length));
8
+ };
9
+ const areAllConfigFieldsFilled = (configurationFields) => {
10
+ return !Object.values(configurationFields || {}).some(
8
11
  (field) => (field == null ? void 0 : field.value) === null || (field == null ? void 0 : field.value) === void 0
9
12
  );
10
- return !hasEmptyFields;
11
13
  };
12
- const isResponseImportTypeConfigured = (configuration) => {
13
- var _a, _b;
14
- const responseImportField = (_a = configuration == null ? void 0 : configuration.configurationFields) == null ? void 0 : _a.find(
15
- (field) => (field == null ? void 0 : field.id) === CONFIGURATION_IDS.RESPONSE_IMPORT_SETTINGS
16
- );
17
- if (responseImportField == null ? void 0 : responseImportField.value) {
18
- return !!((_b = configuration == null ? void 0 : configuration.configuredFields) == null ? void 0 : _b.responseImportType);
14
+ const isResponseImportSettingsValid = (configurationFields, configuredFields) => {
15
+ var _a;
16
+ const hasResponseImportSettings = (_a = configurationFields == null ? void 0 : configurationFields.find(
17
+ (field) => (field == null ? void 0 : field.id) === "responseImportSettings"
18
+ )) == null ? void 0 : _a.value;
19
+ if (hasResponseImportSettings) {
20
+ return !!(configuredFields == null ? void 0 : configuredFields.responseImportType);
19
21
  }
20
22
  return true;
21
23
  };
22
- const isConfigurationValid = (configuration) => {
23
- return areAllFieldsConfigured(configuration) && isResponseImportTypeConfigured(configuration);
24
+ const deepClone = (obj) => {
25
+ try {
26
+ return JSON.parse(JSON.stringify(obj));
27
+ } catch (error) {
28
+ console.error("Error cloning object:", error);
29
+ return obj;
30
+ }
24
31
  };
25
- const validatePattern = (value, pattern) => {
26
- if (!pattern || !value) {
27
- return { isValid: true };
32
+ const areObjectsEqual = (obj1, obj2) => {
33
+ try {
34
+ return JSON.stringify(obj1) === JSON.stringify(obj2);
35
+ } catch (error) {
36
+ console.error("Error comparing objects:", error);
37
+ return false;
28
38
  }
29
- const regex = new RegExp(pattern);
30
- const isValid = regex.test(value);
31
- return {
32
- isValid,
33
- errorMessage: isValid ? void 0 : UI_MESSAGES.INVALID_FORMAT
34
- };
35
39
  };
36
40
 
37
- export { areAllFieldsConfigured, isConfigurationValid, isResponseImportTypeConfigured, validatePattern };
41
+ export { areAllConfigFieldsFilled, areObjectsEqual, deepClone, hasMappingDataEnabled, hasMappingDataLength, isResponseImportSettingsValid };
38
42
  //# sourceMappingURL=validation.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.utils.js","sources":["../../../../src/single-mapping/utils/validation.utils.ts"],"sourcesContent":["import { SingleMappingConfiguration } from \"../types/configuration.types\";\nimport { CONFIGURATION_IDS, UI_MESSAGES } from \"../constants\";\nimport { ConfigurationField } from \"../../commons/types/enhanced\";\n\n/**\n * Checks if all configuration fields have values\n */\nexport const areAllFieldsConfigured = (\n configuration: SingleMappingConfiguration\n): boolean => {\n const hasEmptyFields = Object.values(\n configuration?.configurationFields || {}\n )?.some(\n (field: any) =>\n (field as ConfigurationField)?.value === null ||\n (field as ConfigurationField)?.value === undefined\n );\n\n return !hasEmptyFields;\n};\n\n/**\n * Checks if response import type is configured\n */\nexport const isResponseImportTypeConfigured = (\n configuration: SingleMappingConfiguration\n): boolean => {\n const responseImportField = configuration?.configurationFields?.find(\n (field: any) =>\n (field as ConfigurationField)?.id === CONFIGURATION_IDS.RESPONSE_IMPORT_SETTINGS\n );\n\n if (responseImportField?.value) {\n return !!configuration?.configuredFields?.responseImportType;\n }\n\n return true;\n};\n\n/**\n * Validates configuration page fields\n */\nexport const isConfigurationValid = (\n configuration: SingleMappingConfiguration\n): boolean => {\n return (\n areAllFieldsConfigured(configuration) &&\n isResponseImportTypeConfigured(configuration)\n );\n};\n\n/**\n * Validates pattern for input fields\n */\nexport const validatePattern = (\n value: string,\n pattern?: string\n): { isValid: boolean; errorMessage?: string } => {\n if (!pattern || !value) {\n return { isValid: true };\n }\n\n const regex = new RegExp(pattern);\n const isValid = regex.test(value);\n\n return {\n isValid,\n errorMessage: isValid ? undefined : UI_MESSAGES.INVALID_FORMAT,\n };\n};\n\n/**\n * Checks if mapping page is ready to navigate\n */\nexport const isMappingPageNavigationAllowed = (\n configuration: SingleMappingConfiguration\n): boolean => {\n return !isConfigurationValid(configuration);\n};\n\n"],"names":[],"mappings":";;AAOa,MAAA,sBAAA,GAAyB,CACpC,aACY,KAAA;AATd,EAAA,IAAA,EAAA,CAAA;AAUE,EAAA,MAAM,kBAAiB,EAAO,GAAA,MAAA,CAAA,MAAA;AAAA,IAC5B,CAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,wBAAuB,EAAC;AAAA,QADlB,IAEpB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA;AAAA,IACD,CAAC,KACE,KAAA,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAA8B,KAAU,MAAA,IAAA,IAAA,CACxC,+BAA8B,KAAU,MAAA,KAAA,CAAA;AAAA,GAAA,CAAA;AAG7C,EAAA,OAAO,CAAC,cAAA,CAAA;AACV,EAAA;AAKa,MAAA,8BAAA,GAAiC,CAC5C,aACY,KAAA;AA1Bd,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA2BE,EAAM,MAAA,mBAAA,GAAA,CAAsB,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,mBAAA,KAAf,IAAoC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA;AAAA,IAC9D,CAAC,KAAA,KAAA,CACE,KAA8B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,EAAA,MAAO,iBAAkB,CAAA,wBAAA;AAAA,GAAA,CAAA;AAG5D,EAAA,IAAI,2DAAqB,KAAO,EAAA;AAC9B,IAAA,OAAO,CAAC,EAAA,CAAC,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,gBAAA,KAAf,IAAiC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,GAC5C;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,EAAA;AAKa,MAAA,oBAAA,GAAuB,CAClC,aACY,KAAA;AACZ,EAAA,OACE,sBAAuB,CAAA,aAAa,CACpC,IAAA,8BAAA,CAA+B,aAAa,CAAA,CAAA;AAEhD,EAAA;AAKa,MAAA,eAAA,GAAkB,CAC7B,KAAA,EACA,OACgD,KAAA;AAChD,EAAI,IAAA,CAAC,OAAW,IAAA,CAAC,KAAO,EAAA;AACtB,IAAO,OAAA,EAAE,SAAS,IAAK,EAAA,CAAA;AAAA,GACzB;AAEA,EAAM,MAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA,CAAA;AAChC,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAEhC,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,YAAA,EAAc,OAAU,GAAA,KAAA,CAAA,GAAY,WAAY,CAAA,cAAA;AAAA,GAClD,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"validation.utils.js","sources":["../../../../src/single-mapping/utils/validation.utils.ts"],"sourcesContent":["import { MappingData, EventField } from \"../../commons/types/enhanced\";\nimport { ConfigurationFieldType } from \"../types/configuration.types\";\n\n/**\n * Checks if any mapping data fields are enabled\n */\nexport const hasMappingDataEnabled = (ssMappingData: MappingData): boolean => {\n return (\n ssMappingData?.questions?.some((question: EventField) => question.isEnabled) ||\n ssMappingData?.variables?.some((variable: EventField) => variable.isEnabled) ||\n ssMappingData?.contactProperties?.some((property: EventField) => property.isEnabled) ||\n ssMappingData?.expressions?.some((expression: EventField) => expression.isEnabled) ||\n ssMappingData?.derivedQuestions?.some((derivedQuestion: EventField) => derivedQuestion.isEnabled) ||\n ssMappingData?.property?.some((property: EventField) => property.isEnabled)\n );\n};\n\n/**\n * Checks if any mapping data has length\n */\nexport const hasMappingDataLength = (ssMappingData: MappingData): boolean => {\n return !!(\n ssMappingData?.questions?.length ||\n ssMappingData?.variables?.length ||\n ssMappingData?.contactProperties?.length ||\n ssMappingData?.expressions?.length ||\n ssMappingData?.property?.length ||\n ssMappingData?.derivedQuestions?.length\n );\n};\n\n/**\n * Checks if all configuration fields have values\n */\nexport const areAllConfigFieldsFilled = (\n configurationFields: Array<ConfigurationFieldType>\n): boolean => {\n return !Object.values(configurationFields || {}).some(\n (field: any) => field?.value === null || field?.value === undefined\n );\n};\n\n/**\n * Checks if response import settings are valid\n */\nexport const isResponseImportSettingsValid = (\n configurationFields: Array<ConfigurationFieldType>,\n configuredFields: Record<string, any>\n): boolean => {\n const hasResponseImportSettings = configurationFields?.find(\n (field: ConfigurationFieldType) => field?.id === \"responseImportSettings\"\n )?.value;\n\n if (hasResponseImportSettings) {\n return !!configuredFields?.responseImportType;\n }\n return true;\n};\n\n/**\n * Deep clone an object using JSON serialization\n */\nexport const deepClone = <T>(obj: T): T => {\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (error) {\n console.error(\"Error cloning object:\", error);\n return obj;\n }\n};\n\n/**\n * Compare two objects for equality using JSON serialization\n */\nexport const areObjectsEqual = (obj1: any, obj2: any): boolean => {\n try {\n return JSON.stringify(obj1) === JSON.stringify(obj2);\n } catch (error) {\n console.error(\"Error comparing objects:\", error);\n return false;\n }\n};\n\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React__default, { useEffect } from 'react';
2
2
  import CustomPill from '../../commons/components/custom-pill.js';
3
- import { findOptionByValue, isEventSetupValid } from '../utils/helpers.js';
4
- import { UI_TEXT, PLACEHOLDERS } from '../constants/index.js';
3
+ import { TRIGGERS_UI_STRINGS } from '../constants/ui-strings.js';
4
+ import { isEventSetupDisabled } from '../utils/validation.utils.js';
5
5
  import { Flex } from '../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js';
6
6
  import { Box } from '../../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js';
7
7
  import { Heading } from '../../node_modules/@sparrowengg/twigs-react/dist/es/heading/heading.js';
@@ -11,57 +11,41 @@ import { Select } from '../../node_modules/@sparrowengg/twigs-react/dist/es/sele
11
11
  import { Button } from '../../node_modules/@sparrowengg/twigs-react/dist/es/button/button.js';
12
12
  import { ChevronRightIcon } from '../../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/chevron-right.js';
13
13
 
14
- const CustomMultiValue = ({ data, removeProps }) => {
15
- return /* @__PURE__ */ React__default.createElement(
16
- CustomPill,
17
- {
18
- label: data.label,
19
- onCloseHandler: removeProps.onClick,
20
- variant: "default",
21
- radius: "md"
22
- }
23
- );
24
- };
25
14
  const EventSetup = ({
26
15
  eventFields,
27
16
  accounts,
28
17
  objects,
29
18
  actions,
30
19
  surveyDetails,
31
- navigateTriggerPage,
32
- configurationTitle = UI_TEXT.CONFIGURE_EVENT
20
+ navigateTriggerPage
33
21
  }) => {
34
- var _a, _b, _c;
22
+ var _a, _b, _c, _d;
35
23
  useEffect(() => {
36
- const foundAction = findOptionByValue(
37
- actions.options,
38
- eventFields == null ? void 0 : eventFields.action
39
- );
40
- if (foundAction && !actions.value) {
41
- actions.onChangeHandler(foundAction);
24
+ var _a2, _b2, _c2, _d2, _e, _f, _g, _h;
25
+ if ((_b2 = (_a2 = actions == null ? void 0 : actions.options) == null ? void 0 : _a2.filter(
26
+ (action) => {
27
+ var _a3;
28
+ return (_a3 = eventFields == null ? void 0 : eventFields.action) == null ? void 0 : _a3.includes(action == null ? void 0 : action.value);
29
+ }
30
+ )) == null ? void 0 : _b2.length) {
31
+ actions == null ? void 0 : actions.onChangeHandler(
32
+ ((_c2 = Object.keys((actions == null ? void 0 : actions.value) || {})) == null ? void 0 : _c2.length) ? actions == null ? void 0 : actions.value : (_e = (_d2 = actions == null ? void 0 : actions.options) == null ? void 0 : _d2.filter(
33
+ (action) => {
34
+ var _a3;
35
+ return (_a3 = eventFields == null ? void 0 : eventFields.action) == null ? void 0 : _a3.includes(action == null ? void 0 : action.value);
36
+ }
37
+ )) == null ? void 0 : _e.map((action) => action)
38
+ );
42
39
  }
43
- const foundObject = findOptionByValue(
44
- objects.options,
45
- eventFields == null ? void 0 : eventFields.object
46
- );
47
- if (foundObject && !objects.value) {
48
- objects.onChangeHandler(foundObject);
40
+ if ((_f = objects == null ? void 0 : objects.options) == null ? void 0 : _f.find((object) => (object == null ? void 0 : object.value) === (eventFields == null ? void 0 : eventFields.object))) {
41
+ objects == null ? void 0 : objects.onChangeHandler(
42
+ (_h = objects == null ? void 0 : objects.value) != null ? _h : (_g = objects == null ? void 0 : objects.options) == null ? void 0 : _g.find(
43
+ (object) => (object == null ? void 0 : object.value) === (eventFields == null ? void 0 : eventFields.object)
44
+ )
45
+ );
49
46
  }
50
- }, [
51
- actions.value,
52
- objects.value,
53
- actions.options,
54
- objects.options,
55
- eventFields == null ? void 0 : eventFields.action,
56
- eventFields == null ? void 0 : eventFields.object
57
- ]);
58
- const isValid = isEventSetupValid(
59
- actions.value,
60
- objects.value,
61
- eventFields,
62
- actions.options,
63
- objects.options
64
- );
47
+ }, [actions == null ? void 0 : actions.value, objects == null ? void 0 : objects.value]);
48
+ const isContinueDisabled = isEventSetupDisabled(actions, objects, eventFields);
65
49
  return /* @__PURE__ */ React__default.createElement(
66
50
  Flex,
67
51
  {
@@ -69,34 +53,43 @@ const EventSetup = ({
69
53
  alignItems: "center",
70
54
  justifyContent: "center"
71
55
  },
72
- /* @__PURE__ */ React__default.createElement(Box, { css: { width: 488 } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, configurationTitle), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React__default.createElement(Text, { size: "sm", css: { color: "$neutral500" } }, UI_TEXT.SURVEY_NAME), /* @__PURE__ */ React__default.createElement(Text, { size: "sm", weight: "medium", css: { color: "$neutral800" } }, surveyDetails.surveyName)), /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$8", css: { marginTop: "$16" } }, accounts.hasAccounts && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, accounts.label), /* @__PURE__ */ React__default.createElement(
56
+ /* @__PURE__ */ React__default.createElement(Box, { css: { width: 488 } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, TRIGGERS_UI_STRINGS.ACCOUNT_DETAILS), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React__default.createElement(Text, { size: "sm", css: { color: "$neutral500" } }, TRIGGERS_UI_STRINGS.SURVEY_NAME_LABEL), /* @__PURE__ */ React__default.createElement(Text, { size: "sm", weight: "medium", css: { color: "$neutral800" } }, surveyDetails.surveyName)), /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$8", css: { marginTop: "$16" } }, (accounts == null ? void 0 : accounts.hasAccounts) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, TRIGGERS_UI_STRINGS.CHOOSE_ACCOUNT), /* @__PURE__ */ React__default.createElement(
73
57
  Select,
74
58
  {
75
- value: (_a = findOptionByValue(accounts.options, eventFields == null ? void 0 : eventFields.account)) != null ? _a : accounts.value,
59
+ value: (_a = accounts.options.find(
60
+ (account) => account.value === (eventFields == null ? void 0 : eventFields.account)
61
+ )) != null ? _a : accounts.value,
76
62
  options: accounts.options,
77
- isMulti: accounts.isMulti,
78
- placeholder: PLACEHOLDERS.SELECT_ACCOUNT,
63
+ isMulti: accounts == null ? void 0 : accounts.isMulti,
64
+ placeholder: TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY,
79
65
  onChange: (value) => accounts.onChangeHandler(value),
80
66
  size: "lg"
81
67
  }
82
- )), objects.hasObjects && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, objects.label), /* @__PURE__ */ React__default.createElement(
68
+ )), (objects == null ? void 0 : objects.hasObjects) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, TRIGGERS_UI_STRINGS.CHOOSE_EVENTS), /* @__PURE__ */ React__default.createElement(
83
69
  Select,
84
70
  {
85
71
  options: objects.options,
86
- value: (_b = objects.value) != null ? _b : findOptionByValue(objects.options, eventFields == null ? void 0 : eventFields.object),
87
- isMulti: objects.isMulti,
88
- placeholder: PLACEHOLDERS.SELECT_OBJECT,
72
+ value: (_b = objects.value) != null ? _b : objects.options.find(
73
+ (object) => object.value === (eventFields == null ? void 0 : eventFields.object)
74
+ ),
75
+ isMulti: objects == null ? void 0 : objects.isMulti,
76
+ placeholder: TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY,
89
77
  onChange: (value) => objects.onChangeHandler(value),
90
78
  size: "lg"
91
79
  }
92
- )), actions.hasActions && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, actions.label), /* @__PURE__ */ React__default.createElement(
80
+ )), (actions == null ? void 0 : actions.hasActions) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, TRIGGERS_UI_STRINGS.CHOOSE_ACTION), /* @__PURE__ */ React__default.createElement(
93
81
  Select,
94
82
  {
95
83
  size: "lg",
96
84
  options: actions.options,
97
- value: (_c = actions.value) != null ? _c : findOptionByValue(actions.options, eventFields == null ? void 0 : eventFields.action),
98
- isMulti: actions.isMulti,
99
- placeholder: PLACEHOLDERS.SELECT_ACTION,
85
+ value: ((_c = Object.keys(actions.value || {})) == null ? void 0 : _c.length) ? actions.value : (_d = actions.options.filter(
86
+ (action) => {
87
+ var _a2;
88
+ return (_a2 = eventFields == null ? void 0 : eventFields.action) == null ? void 0 : _a2.includes(action == null ? void 0 : action.value);
89
+ }
90
+ )) == null ? void 0 : _d.map((action) => action),
91
+ isMulti: actions == null ? void 0 : actions.isMulti,
92
+ placeholder: TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY,
100
93
  css: {
101
94
  ".twigs-select__value-container--is-multi": {
102
95
  gap: "$2"
@@ -113,13 +106,24 @@ const EventSetup = ({
113
106
  size: "lg",
114
107
  rightIcon: /* @__PURE__ */ React__default.createElement(ChevronRightIcon, null),
115
108
  css: { marginTop: "$16" },
116
- disabled: !isValid,
109
+ disabled: isContinueDisabled,
117
110
  onClick: () => navigateTriggerPage(true)
118
111
  },
119
- UI_TEXT.CONTINUE
112
+ TRIGGERS_UI_STRINGS.CONTINUE
120
113
  ))
121
114
  );
122
115
  };
116
+ const CustomMultiValue = (props) => {
117
+ return /* @__PURE__ */ React__default.createElement(
118
+ CustomPill,
119
+ {
120
+ label: props.data.label,
121
+ onCloseHandler: () => props.removeProps.onClick(),
122
+ variant: "default",
123
+ radius: "md"
124
+ }
125
+ );
126
+ };
123
127
 
124
- export { EventSetup };
128
+ export { EventSetup as default };
125
129
  //# sourceMappingURL=EventSetup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventSetup.js","sources":["../../../../src/triggers/components/EventSetup.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport {\n Box,\n Button,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from '@sparrowengg/twigs-react';\nimport { ChevronRightIcon } from '@sparrowengg/twigs-react-icons';\nimport { SelectOption } from '../../commons/types/enhanced';\nimport CustomPill from '../../commons/components/custom-pill';\nimport { EventSetupProps } from '../types';\nimport { findOptionByValue, isEventSetupValid } from '../utils/helpers';\nimport { UI_TEXT, PLACEHOLDERS } from '../constants';\n\n/**\n * Custom multi-value component for Select\n */\nconst CustomMultiValue: React.FC<{\n data: SelectOption;\n removeProps: { onClick: () => void };\n}> = ({ data, removeProps }) => {\n return (\n <CustomPill\n label={data.label}\n onCloseHandler={removeProps.onClick}\n variant=\"default\"\n radius=\"md\"\n />\n );\n};\n\n/**\n * EventSetup Component\n * Handles the initial configuration of triggers including account, object, and action selection\n */\nexport const EventSetup: React.FC<EventSetupProps> = ({\n eventFields,\n accounts,\n objects,\n actions,\n surveyDetails,\n navigateTriggerPage,\n configurationTitle = UI_TEXT.CONFIGURE_EVENT,\n}) => {\n // Sync event fields with select values on mount and when options change\n useEffect(() => {\n const foundAction = findOptionByValue(\n actions.options,\n eventFields?.action\n );\n if (foundAction && !actions.value) {\n actions.onChangeHandler(foundAction);\n }\n\n const foundObject = findOptionByValue(\n objects.options,\n eventFields?.object\n );\n if (foundObject && !objects.value) {\n objects.onChangeHandler(foundObject);\n }\n }, [\n actions.value,\n objects.value,\n actions.options,\n objects.options,\n eventFields?.action,\n eventFields?.object,\n ]);\n\n const isValid = isEventSetupValid(\n actions.value,\n objects.value,\n eventFields,\n actions.options,\n objects.options\n );\n\n return (\n <Flex\n css={{ paddingTop: '$40' }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box css={{ width: 488 }}>\n <Heading size=\"h5\">{configurationTitle}</Heading>\n \n <Flex gap=\"$2\" css={{ marginTop: '$4' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n {UI_TEXT.SURVEY_NAME}\n </Text>\n <Text size=\"sm\" weight=\"medium\" css={{ color: '$neutral800' }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap=\"$8\" css={{ marginTop: '$16' }}>\n {accounts.hasAccounts && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: '$5' }}>\n {accounts.label}\n </FormLabel>\n <Select\n value={\n findOptionByValue(accounts.options, eventFields?.account) ??\n accounts.value\n }\n options={accounts.options}\n isMulti={accounts.isMulti}\n placeholder={PLACEHOLDERS.SELECT_ACCOUNT}\n onChange={(value) =>\n accounts.onChangeHandler(value as SelectOption | SelectOption[] | null)\n }\n size=\"lg\"\n />\n </Flex>\n )}\n\n {objects.hasObjects && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: '$5' }}>\n {objects.label}\n </FormLabel>\n <Select\n options={objects.options}\n value={\n objects.value ??\n findOptionByValue(objects.options, eventFields?.object)\n }\n isMulti={objects.isMulti}\n placeholder={PLACEHOLDERS.SELECT_OBJECT}\n onChange={(value) =>\n objects.onChangeHandler(value as SelectOption | SelectOption[] | null)\n }\n size=\"lg\"\n />\n </Flex>\n )}\n\n {actions.hasActions && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: '$5' }}>\n {actions.label}\n </FormLabel>\n <Select\n size=\"lg\"\n options={actions.options}\n value={\n actions.value ??\n findOptionByValue(actions.options, eventFields?.action)\n }\n isMulti={actions.isMulti}\n placeholder={PLACEHOLDERS.SELECT_ACTION}\n css={{\n '.twigs-select__value-container--is-multi': {\n gap: '$2',\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n onChange={(value) =>\n actions.onChangeHandler(value as SelectOption | SelectOption[] | null)\n }\n />\n </Flex>\n )}\n </Flex>\n\n <Button\n size=\"lg\"\n rightIcon={<ChevronRightIcon />}\n css={{ marginTop: '$16' }}\n disabled={!isValid}\n onClick={() => navigateTriggerPage(true)}\n >\n {UI_TEXT.CONTINUE}\n </Button>\n </Box>\n </Flex>\n );\n};\n\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"EventSetup.js","sources":["../../../../src/triggers/components/EventSetup.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport {\n Box,\n Button,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronRightIcon } from \"@sparrowengg/twigs-react-icons\";\nimport CustomPill from \"../../commons/components/custom-pill\";\nimport { EventSetupProps } from \"../types\";\nimport { TRIGGERS_UI_STRINGS } from \"../constants\";\nimport { isEventSetupDisabled } from \"../utils\";\n\nconst EventSetup: React.FC<EventSetupProps> = ({\n eventFields,\n accounts,\n objects,\n actions,\n surveyDetails,\n navigateTriggerPage,\n}) => {\n useEffect(() => {\n if (\n actions?.options?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )?.length\n ) {\n actions?.onChangeHandler(\n Object.keys(actions?.value || {})?.length\n ? actions?.value\n : actions?.options\n ?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action)\n );\n }\n if (\n objects?.options?.find((object: any) => object?.value === eventFields?.object)\n ) {\n objects?.onChangeHandler(\n objects?.value ??\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n );\n }\n }, [actions?.value, objects?.value]);\n\n const isContinueDisabled = isEventSetupDisabled(actions, objects, eventFields);\n\n return (\n <Flex\n css={{ paddingTop: \"$40\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box css={{ width: 488 }}>\n <Heading size=\"h5\">{TRIGGERS_UI_STRINGS.ACCOUNT_DETAILS}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: \"$4\" }}>\n <Text size=\"sm\" css={{ color: \"$neutral500\" }}>\n {TRIGGERS_UI_STRINGS.SURVEY_NAME_LABEL}\n </Text>\n <Text size=\"sm\" weight={\"medium\"} css={{ color: \"$neutral800\" }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Flex flexDirection=\"column\" gap=\"$8\" css={{ marginTop: \"$16\" }}>\n {accounts?.hasAccounts && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACCOUNT}\n </FormLabel>\n <Select\n value={\n accounts.options.find(\n (account: any) => account.value === eventFields?.account\n ) ?? accounts.value\n }\n options={accounts.options}\n isMulti={accounts?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={(value) => accounts.onChangeHandler(value)}\n size=\"lg\"\n />\n </Flex>\n )}\n {objects?.hasObjects && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_EVENTS}\n </FormLabel>\n <Select\n options={objects.options}\n value={\n objects.value ??\n objects.options.find(\n (object: any) => object.value === eventFields?.object\n )\n }\n isMulti={objects?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={(value) => objects.onChangeHandler(value)}\n size=\"lg\"\n />\n </Flex>\n )}\n {actions?.hasActions && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACTION}\n </FormLabel>\n <Select\n size=\"lg\"\n options={actions.options}\n value={\n Object.keys(actions.value || {})?.length\n ? actions.value\n : actions.options\n .filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action)\n }\n isMulti={actions?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n css={{\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n onChange={(value) => actions.onChangeHandler(value)}\n />\n </Flex>\n )}\n </Flex>\n <Button\n size=\"lg\"\n rightIcon={<ChevronRightIcon />}\n css={{ marginTop: \"$16\" }}\n disabled={isContinueDisabled}\n onClick={() => navigateTriggerPage(true)}\n >\n {TRIGGERS_UI_STRINGS.CONTINUE}\n </Button>\n </Box>\n </Flex>\n );\n};\n\nconst CustomMultiValue: React.FC<any> = (props) => {\n return (\n <CustomPill\n label={props.data.label}\n onCloseHandler={() => props.removeProps.onClick()}\n variant=\"default\"\n radius=\"md\"\n />\n );\n};\n\nexport default EventSetup;\n\n"],"names":["_a","_b","_c","_d","React"],"mappings":"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"}