@sparrowengg/integrations-templates-frontend 2.1.0-beta.1 → 2.1.0-beta.3

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 (212) hide show
  1. package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js +1 -1
  2. package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
  3. package/dist/cjs/commons/components/NamingModal.js +34 -62
  4. package/dist/cjs/commons/components/NamingModal.js.map +1 -1
  5. package/dist/cjs/commons/components/confirmation-modal.js +12 -24
  6. package/dist/cjs/commons/components/confirmation-modal.js.map +1 -1
  7. package/dist/cjs/commons/components/custom-pill.js +12 -30
  8. package/dist/cjs/commons/components/custom-pill.js.map +1 -1
  9. package/dist/cjs/commons/components/draftModal.js +31 -45
  10. package/dist/cjs/commons/components/draftModal.js.map +1 -1
  11. package/dist/cjs/commons/components/edit-confirmation.js +17 -34
  12. package/dist/cjs/commons/components/edit-confirmation.js.map +1 -1
  13. package/dist/cjs/commons/components/import-modal.js +18 -49
  14. package/dist/cjs/commons/components/import-modal.js.map +1 -1
  15. package/dist/cjs/commons/components/spinner.js +2 -16
  16. package/dist/cjs/commons/components/spinner.js.map +1 -1
  17. package/dist/cjs/commons/components/theme-wrapper.js +12 -9
  18. package/dist/cjs/commons/components/theme-wrapper.js.map +1 -1
  19. package/dist/cjs/commons/constants/enhanced.js.map +1 -1
  20. package/dist/cjs/commons/helpers/index.js +52 -93
  21. package/dist/cjs/commons/helpers/index.js.map +1 -1
  22. package/dist/cjs/commons/icons/arrow.js +3 -38
  23. package/dist/cjs/commons/icons/arrow.js.map +1 -1
  24. package/dist/cjs/commons/icons/cursor.js +8 -21
  25. package/dist/cjs/commons/icons/cursor.js.map +1 -1
  26. package/dist/cjs/commons/icons/email-letter.js +12 -30
  27. package/dist/cjs/commons/icons/email-letter.js.map +1 -1
  28. package/dist/cjs/commons/icons/mapping.js +10 -23
  29. package/dist/cjs/commons/icons/mapping.js.map +1 -1
  30. package/dist/cjs/commons/icons/nested-add.js +14 -32
  31. package/dist/cjs/commons/icons/nested-add.js.map +1 -1
  32. package/dist/cjs/commons/icons/sms.js +18 -36
  33. package/dist/cjs/commons/icons/sms.js.map +1 -1
  34. package/dist/cjs/commons/icons/sync.js +3 -110
  35. package/dist/cjs/commons/icons/sync.js.map +1 -1
  36. package/dist/cjs/commons/icons/trash.js +15 -33
  37. package/dist/cjs/commons/icons/trash.js.map +1 -1
  38. package/dist/cjs/commons/icons/whatsapp.js +31 -49
  39. package/dist/cjs/commons/icons/whatsapp.js.map +1 -1
  40. package/dist/cjs/contact-import/components/ManageImport/Completed.js +41 -27
  41. package/dist/cjs/contact-import/components/ManageImport/Completed.js.map +1 -1
  42. package/dist/cjs/contact-import/components/ManageImport/Dashboard.js +43 -23
  43. package/dist/cjs/contact-import/components/ManageImport/Dashboard.js.map +1 -1
  44. package/dist/cjs/contact-import/components/ManageImport/NoDataState.js +6 -7
  45. package/dist/cjs/contact-import/components/ManageImport/NoDataState.js.map +1 -1
  46. package/dist/cjs/contact-import/components/ManageImport/Scheduled.js +46 -30
  47. package/dist/cjs/contact-import/components/ManageImport/Scheduled.js.map +1 -1
  48. package/dist/cjs/contact-import/components/ManageImport/icon.js +85 -0
  49. package/dist/cjs/contact-import/components/ManageImport/icon.js.map +1 -0
  50. package/dist/cjs/contact-import/components/Scheduling.js +27 -39
  51. package/dist/cjs/contact-import/components/Scheduling.js.map +1 -1
  52. package/dist/cjs/contact-import/components/TimePicker.js +102 -129
  53. package/dist/cjs/contact-import/components/TimePicker.js.map +1 -1
  54. package/dist/cjs/contact-import/components/conact-import-schedule.js +64 -0
  55. package/dist/cjs/contact-import/components/conact-import-schedule.js.map +1 -0
  56. package/dist/cjs/contact-import/components/contact-import-configure.js +75 -0
  57. package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -0
  58. package/dist/cjs/contact-import/components/contact-import-mapping.js +224 -0
  59. package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -0
  60. package/dist/cjs/contact-import/constants.js +21 -0
  61. package/dist/cjs/contact-import/constants.js.map +1 -0
  62. package/dist/cjs/contact-import/index.js +242 -32
  63. package/dist/cjs/contact-import/index.js.map +1 -1
  64. package/dist/cjs/dynamic-mapping/components/Mapping.js +321 -203
  65. package/dist/cjs/dynamic-mapping/components/Mapping.js.map +1 -1
  66. package/dist/cjs/dynamic-mapping/index.js +972 -34
  67. package/dist/cjs/dynamic-mapping/index.js.map +1 -1
  68. package/dist/cjs/filter/filter-pill-value-selector.js +1 -1
  69. package/dist/cjs/filter/filter-pill-value-selector.js.map +1 -1
  70. package/dist/cjs/index.js +12 -159
  71. package/dist/cjs/index.js.map +1 -1
  72. package/dist/cjs/integration-template/components/dashboard.js +137 -130
  73. package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
  74. package/dist/cjs/integration-template/index.js +343 -0
  75. package/dist/cjs/integration-template/index.js.map +1 -0
  76. package/dist/cjs/mapping/components/custom-menu.js +3 -4
  77. package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
  78. package/dist/cjs/mapping/components/field.js +103 -121
  79. package/dist/cjs/mapping/components/field.js.map +1 -1
  80. package/dist/cjs/mapping/components/mapping.js +195 -106
  81. package/dist/cjs/mapping/components/mapping.js.map +1 -1
  82. package/dist/cjs/mapping/constants/index.js +2 -259
  83. package/dist/cjs/mapping/constants/index.js.map +1 -1
  84. package/dist/cjs/mapping/index.js +618 -38
  85. package/dist/cjs/mapping/index.js.map +1 -1
  86. package/dist/cjs/mapping/services/index.js +58 -96
  87. package/dist/cjs/mapping/services/index.js.map +1 -1
  88. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +7 -7
  89. package/dist/cjs/single-mapping/components/mapping.js +490 -0
  90. package/dist/cjs/single-mapping/components/mapping.js.map +1 -0
  91. package/dist/cjs/single-mapping/index.js +986 -58
  92. package/dist/cjs/single-mapping/index.js.map +1 -1
  93. package/dist/cjs/triggers/components/subcomponents.js +1140 -0
  94. package/dist/cjs/triggers/components/subcomponents.js.map +1 -0
  95. package/dist/cjs/triggers/components/trigger.js +491 -0
  96. package/dist/cjs/triggers/components/trigger.js.map +1 -0
  97. package/dist/cjs/triggers/constants/index.js +0 -253
  98. package/dist/cjs/triggers/constants/index.js.map +1 -1
  99. package/dist/cjs/triggers/index.js +333 -0
  100. package/dist/cjs/triggers/index.js.map +1 -0
  101. package/dist/cjs/triggers/services/index.js +30 -0
  102. package/dist/cjs/triggers/services/index.js.map +1 -0
  103. package/dist/es/cascader-dropdown/cascader-dropdown-content.js +1 -1
  104. package/dist/es/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
  105. package/dist/es/commons/components/NamingModal.js +35 -63
  106. package/dist/es/commons/components/NamingModal.js.map +1 -1
  107. package/dist/es/commons/components/confirmation-modal.js +13 -25
  108. package/dist/es/commons/components/confirmation-modal.js.map +1 -1
  109. package/dist/es/commons/components/custom-pill.js +13 -31
  110. package/dist/es/commons/components/custom-pill.js.map +1 -1
  111. package/dist/es/commons/components/draftModal.js +32 -46
  112. package/dist/es/commons/components/draftModal.js.map +1 -1
  113. package/dist/es/commons/components/edit-confirmation.js +18 -35
  114. package/dist/es/commons/components/edit-confirmation.js.map +1 -1
  115. package/dist/es/commons/components/import-modal.js +19 -50
  116. package/dist/es/commons/components/import-modal.js.map +1 -1
  117. package/dist/es/commons/components/spinner.js +2 -16
  118. package/dist/es/commons/components/spinner.js.map +1 -1
  119. package/dist/es/commons/components/theme-wrapper.js +12 -9
  120. package/dist/es/commons/components/theme-wrapper.js.map +1 -1
  121. package/dist/es/commons/constants/enhanced.js.map +1 -1
  122. package/dist/es/commons/helpers/index.js +52 -93
  123. package/dist/es/commons/helpers/index.js.map +1 -1
  124. package/dist/es/commons/icons/arrow.js +3 -38
  125. package/dist/es/commons/icons/arrow.js.map +1 -1
  126. package/dist/es/commons/icons/cursor.js +8 -21
  127. package/dist/es/commons/icons/cursor.js.map +1 -1
  128. package/dist/es/commons/icons/email-letter.js +12 -30
  129. package/dist/es/commons/icons/email-letter.js.map +1 -1
  130. package/dist/es/commons/icons/mapping.js +10 -23
  131. package/dist/es/commons/icons/mapping.js.map +1 -1
  132. package/dist/es/commons/icons/nested-add.js +14 -32
  133. package/dist/es/commons/icons/nested-add.js.map +1 -1
  134. package/dist/es/commons/icons/sms.js +18 -36
  135. package/dist/es/commons/icons/sms.js.map +1 -1
  136. package/dist/es/commons/icons/sync.js +3 -110
  137. package/dist/es/commons/icons/sync.js.map +1 -1
  138. package/dist/es/commons/icons/trash.js +15 -33
  139. package/dist/es/commons/icons/trash.js.map +1 -1
  140. package/dist/es/commons/icons/whatsapp.js +31 -49
  141. package/dist/es/commons/icons/whatsapp.js.map +1 -1
  142. package/dist/es/contact-import/components/ManageImport/Completed.js +41 -27
  143. package/dist/es/contact-import/components/ManageImport/Completed.js.map +1 -1
  144. package/dist/es/contact-import/components/ManageImport/Dashboard.js +45 -25
  145. package/dist/es/contact-import/components/ManageImport/Dashboard.js.map +1 -1
  146. package/dist/es/contact-import/components/ManageImport/NoDataState.js +4 -5
  147. package/dist/es/contact-import/components/ManageImport/NoDataState.js.map +1 -1
  148. package/dist/es/contact-import/components/ManageImport/Scheduled.js +46 -30
  149. package/dist/es/contact-import/components/ManageImport/Scheduled.js.map +1 -1
  150. package/dist/es/contact-import/components/ManageImport/icon.js +82 -0
  151. package/dist/es/contact-import/components/ManageImport/icon.js.map +1 -0
  152. package/dist/es/contact-import/components/Scheduling.js +27 -39
  153. package/dist/es/contact-import/components/Scheduling.js.map +1 -1
  154. package/dist/es/contact-import/components/TimePicker.js +103 -130
  155. package/dist/es/contact-import/components/TimePicker.js.map +1 -1
  156. package/dist/es/contact-import/components/conact-import-schedule.js +60 -0
  157. package/dist/es/contact-import/components/conact-import-schedule.js.map +1 -0
  158. package/dist/es/contact-import/components/contact-import-configure.js +71 -0
  159. package/dist/es/contact-import/components/contact-import-configure.js.map +1 -0
  160. package/dist/es/contact-import/components/contact-import-mapping.js +220 -0
  161. package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -0
  162. package/dist/es/contact-import/constants.js +18 -0
  163. package/dist/es/contact-import/constants.js.map +1 -0
  164. package/dist/es/contact-import/index.js +240 -27
  165. package/dist/es/contact-import/index.js.map +1 -1
  166. package/dist/es/dynamic-mapping/components/Mapping.js +321 -203
  167. package/dist/es/dynamic-mapping/components/Mapping.js.map +1 -1
  168. package/dist/es/dynamic-mapping/index.js +972 -34
  169. package/dist/es/dynamic-mapping/index.js.map +1 -1
  170. package/dist/es/filter/filter-pill-value-selector.js +1 -1
  171. package/dist/es/filter/filter-pill-value-selector.js.map +1 -1
  172. package/dist/es/index.js +2 -23
  173. package/dist/es/index.js.map +1 -1
  174. package/dist/es/integration-template/components/dashboard.js +139 -132
  175. package/dist/es/integration-template/components/dashboard.js.map +1 -1
  176. package/dist/es/integration-template/index.js +341 -0
  177. package/dist/es/integration-template/index.js.map +1 -0
  178. package/dist/es/mapping/components/custom-menu.js +3 -4
  179. package/dist/es/mapping/components/custom-menu.js.map +1 -1
  180. package/dist/es/mapping/components/field.js +100 -118
  181. package/dist/es/mapping/components/field.js.map +1 -1
  182. package/dist/es/mapping/components/mapping.js +194 -105
  183. package/dist/es/mapping/components/mapping.js.map +1 -1
  184. package/dist/es/mapping/constants/index.js +3 -239
  185. package/dist/es/mapping/constants/index.js.map +1 -1
  186. package/dist/es/mapping/index.js +617 -12
  187. package/dist/es/mapping/index.js.map +1 -1
  188. package/dist/es/mapping/services/index.js +59 -96
  189. package/dist/es/mapping/services/index.js.map +1 -1
  190. package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js +3 -3
  191. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
  192. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +2 -2
  193. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +1 -1
  194. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/calendar/dist/import.js +2 -2
  195. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/utils/dist/import.js +1 -1
  196. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-stately/calendar/dist/import.js +1 -1
  197. package/dist/es/single-mapping/components/mapping.js +486 -0
  198. package/dist/es/single-mapping/components/mapping.js.map +1 -0
  199. package/dist/es/single-mapping/index.js +987 -59
  200. package/dist/es/single-mapping/index.js.map +1 -1
  201. package/dist/es/triggers/components/subcomponents.js +1134 -0
  202. package/dist/es/triggers/components/subcomponents.js.map +1 -0
  203. package/dist/es/triggers/components/trigger.js +487 -0
  204. package/dist/es/triggers/components/trigger.js.map +1 -0
  205. package/dist/es/triggers/constants/index.js +1 -228
  206. package/dist/es/triggers/constants/index.js.map +1 -1
  207. package/dist/es/triggers/index.js +331 -0
  208. package/dist/es/triggers/index.js.map +1 -0
  209. package/dist/es/triggers/services/index.js +28 -0
  210. package/dist/es/triggers/services/index.js.map +1 -0
  211. package/dist/index.d.ts +448 -2161
  212. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subcomponents.js","sources":["../../../../src/triggers/components/subcomponents.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Flex,\n Box,\n IconButton,\n Button,\n Popover,\n TooltipProvider,\n Tooltip,\n PopoverTrigger,\n PopoverContent,\n Input,\n Calendar,\n Chip,\n Text,\n FormInput,\n FormLabel,\n Checkbox,\n} from \"@sparrowengg/twigs-react\";\nimport { parseDate, DateValue } from \"@internationalized/date\";\nimport dayjs from \"dayjs\";\nimport {\n CloseIcon,\n SearchIcon,\n ChevronRightIcon,\n} from \"@sparrowengg/twigs-react-icons\";\nimport { useState, ReactNode } from \"react\";\nimport {\n subMenuOptions,\n operatorOptions,\n booleanOptions,\n} from \"../../commons/constants\";\nimport NestedAddIcon from \"../../commons/icons/nested-add\";\nimport Trash from \"../../commons/icons/trash\";\nimport { comparatorConstants } from \"../constants\";\nimport CustomPill from \"../../commons/components/custom-pill\";\n\nconst getCurrentConditionText = (\n text: keyof typeof comparatorConstants,\n dataType: string\n): string => {\n let currentText = \"\";\n switch (text) {\n case comparatorConstants.IS:\n currentText = dataType.includes(\"BOOLEAN\") ? \"is\" : \"is equal to\";\n break;\n case comparatorConstants.IS_NOT:\n currentText = \"is not equal to\";\n break;\n case comparatorConstants.CONTAINS:\n currentText = \"contains\";\n break;\n case comparatorConstants.CONTAINS_NOT:\n currentText = \"not contains\";\n break;\n case comparatorConstants.NO_VALUE:\n currentText = \"has no value\";\n break;\n case comparatorConstants.ANY_VALUE:\n currentText = \"has any value\";\n break;\n case comparatorConstants.ON:\n currentText = \"on\";\n break;\n case comparatorConstants.AFTER:\n currentText = \"after\";\n break;\n case comparatorConstants.BEFORE:\n currentText = \"before\";\n break;\n case comparatorConstants.TRUE:\n case comparatorConstants.FALSE:\n currentText = \"Boolean\";\n break;\n default:\n currentText = \"\";\n break;\n }\n return currentText;\n};\n\nexport default getCurrentConditionText;\n\ntype FilterProps = {\n setIsEditing: (isEditing: boolean) => void;\n filters: any;\n fields: any;\n hasNestedCondition: boolean;\n index: number;\n isEditing: boolean;\n setCurrentField: (\n value: any,\n id: string,\n filterId: string,\n fieldType: string\n ) => void;\n resetEditing: () => void;\n addNestedFilterCondition: (id: string) => void;\n setNestedFieldCondition: (id: string, condition: string) => void;\n removeCurrentFilter: (id: string) => void;\n removeNestedField: (filterId: string, fieldId: string) => void;\n fieldOptions: any;\n};\n\nexport const Filter: React.FC<FilterProps> = ({\n setIsEditing,\n filters,\n fields,\n index,\n isEditing,\n setCurrentField,\n resetEditing,\n hasNestedCondition,\n addNestedFilterCondition,\n setNestedFieldCondition,\n removeCurrentFilter,\n removeNestedField,\n fieldOptions,\n}) => {\n return (\n <Flex flexDirection=\"column\" gap=\"$1\">\n <Flex\n alignItems=\"center\"\n gap=\"5px\"\n css={{\n marginBottom: \"$4\",\n \"&:hover\": {\n \"#action-btn\": {\n opacity: 1,\n },\n },\n }}\n >\n <Text\n weight=\"bold\"\n css={{\n whiteSpace: \"nowrap\",\n }}\n >\n {index > 0 && fields.condition.toLowerCase()} When\n </Text>\n <Box\n css={{\n borderBottom: \"$borderWidths$xs solid $black200\",\n width: \"100%\",\n marginLeft: \"$3\",\n position: \"relative\",\n }}\n >\n <Flex\n css={{\n position: \"absolute\",\n right: 0,\n top: \"-$6\",\n background: \"$white900\",\n paddingLeft: \"$2\",\n opacity: 0,\n transition: \"all .3s ease\",\n }}\n id=\"action-btn\"\n alignItems=\"center\"\n gap=\"$4\"\n >\n {hasNestedCondition && <IconButton\n icon={<NestedAddIcon />}\n size=\"sm\"\n variant=\"ghost\"\n color=\"default\"\n onClick={() => addNestedFilterCondition(filters.id)}\n />}\n \n <IconButton\n icon={<Trash />}\n size=\"sm\"\n variant=\"ghost\"\n color=\"default\"\n onClick={() => removeCurrentFilter(filters.id)}\n />\n </Flex>\n </Box>\n </Flex>\n\n {filters?.filter?.map((currentFilter: any, currentFilterIndex: number) => (\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{\n \"&:hover\": {\n \"& button\": {\n opacity: 1,\n },\n },\n }}\n >\n <Flex gap=\"$1\" alignItems=\"center\">\n {currentFilterIndex > 0 && (\n <Box\n css={{ cursor: \"pointer\" }}\n onClick={() => {\n setNestedFieldCondition(\n filters.id,\n filters.condition.toLowerCase() === \"or\" ? \"AND\" : \"OR\"\n );\n }}\n >\n <CustomPill\n variant=\"default\"\n radius=\"sm\"\n isClosable={false}\n label={filters.condition.toLowerCase()}\n />\n </Box>\n )}\n {isEditing && !currentFilter.field ? (\n <FieldPopover\n setCurrentField={setCurrentField}\n currentFilter={currentFilter}\n filters={filters}\n fieldOptions={fieldOptions}\n />\n ) : (\n <CustomFieldChip\n setCurrentField={setCurrentField}\n setIsEditing={setIsEditing}\n currentFilter={currentFilter}\n filters={filters}\n fieldType=\"field\"\n >\n {fieldOptions?.find(\n (option: any) => option.value === currentFilter.field\n )?.label ?? currentFilter.field}{\" \"}\n </CustomFieldChip>\n )}\n {isEditing && !currentFilter.comparator && !!currentFilter.field ? (\n <DataTypePopover\n setCurrentField={setCurrentField}\n currentFilter={currentFilter}\n filters={filters}\n />\n ) : (\n <CustomFieldChip\n setCurrentField={setCurrentField}\n setIsEditing={setIsEditing}\n currentFilter={currentFilter}\n filters={filters}\n fieldType=\"comparator\"\n >\n {getCurrentConditionText(\n currentFilter.comparator,\n currentFilter.dataType\n )}\n </CustomFieldChip>\n )}\n {isEditing &&\n !!currentFilter.comparator &&\n !!currentFilter.dataType &&\n !currentFilter.value ? (\n <FieldValuePopover\n fieldOptions={fieldOptions}\n setCurrentField={setCurrentField}\n currentFilter={currentFilter}\n filters={filters}\n resetEditing={resetEditing}\n />\n ) : (\n <CustomFieldChip\n setCurrentField={setCurrentField}\n setIsEditing={setIsEditing}\n currentFilter={currentFilter}\n filters={filters}\n fieldType=\"value\"\n >\n {Array.isArray(currentFilter.value)\n ? currentFilter.value.join(\", \")\n : currentFilter.value}\n </CustomFieldChip>\n )}\n </Flex>\n <IconButton\n css={{ opacity: 0 }}\n icon={<CloseIcon />}\n size=\"sm\"\n color=\"default\"\n variant=\"ghost\"\n onClick={() => removeNestedField(filters.id, currentFilter.id)}\n />\n </Flex>\n ))}\n </Flex>\n );\n};\n\ntype RenderFieldValuePopoverProps = {\n fieldOptions: any;\n setCurrentField: (\n value: any,\n id: string,\n filterId: string,\n fieldType: string\n ) => void;\n currentFilter: any;\n filters: any;\n resetEditing: () => void;\n setShowPopover: (show: boolean) => void;\n};\n\nconst RenderFieldValuePopover: React.FC<RenderFieldValuePopoverProps> = ({\n fieldOptions,\n setCurrentField,\n currentFilter,\n filters,\n resetEditing,\n setShowPopover,\n}) => {\n const [date, setDate] = useState<any>(\n parseDate(dayjs().format(\"YYYY-MM-DD\"))\n );\n const [inputValue, setInputValue] = useState(\"\");\n const [selectedField, setSelectedField] = useState<string[]>([]);\n const field = fieldOptions.find(\n (option: any) => option.value === currentFilter.field\n )?.options;\n if (currentFilter.dataType === \"BOOLEAN\") {\n return (\n <Box css={{ paddingBlock: \"$5\" }}>\n {booleanOptions?.map((option) => (\n <Text\n size=\"sm\"\n onClick={() => {\n setCurrentField(\n option.value,\n currentFilter?.id,\n filters?.id,\n \"value\"\n );\n setShowPopover(false);\n resetEditing();\n }}\n css={{\n padding: \"$3 $6\",\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"$neutral100\",\n },\n }}\n >\n {option.label}\n </Text>\n ))}\n </Box>\n );\n } else if (\n currentFilter.comparator === \"NO_VALUE\" ||\n currentFilter.comparator === \"ANY_VALUE\"\n ) {\n setCurrentField(\" \", currentFilter?.id, filters?.id, \"value\");\n setShowPopover(false);\n resetEditing();\n return <></>;\n } else if (currentFilter.dataType === \"DATE_TIME\") {\n return (\n <Box>\n <Calendar\n size=\"md\"\n footerActionText=\"Apply\"\n value={date}\n showTimePicker\n onChange={setDate}\n footerAction={() => {\n setCurrentField(\n dayjs(date).format(\"MMM D YYYY . hh:mm A\"),\n currentFilter?.id,\n filters?.id,\n \"value\"\n );\n setShowPopover(false);\n resetEditing();\n }}\n />\n </Box>\n );\n } else if (field?.length) {\n if(currentFilter.dataType === \"SELECT\") {\n return (\n <>\n <Box css={{ padding: \"$4\" }}>\n <Input\n placeholder=\"Search\"\n leftIcon={<SearchIcon />}\n variant=\"filled\"\n size=\"lg\"\n value={inputValue}\n onChange={(e) => setInputValue(e.currentTarget.value)}\n />\n </Box>\n <Flex\n flexDirection=\"column\"\n css={{\n paddingBottom: \"$4\",\n maxHeight: 240,\n height: \"100%\",\n overflow: \"auto\",\n }}\n >\n {!!field.length ? (\n <>\n {field\n .filter((option: any) =>\n option.label.toLowerCase().includes(inputValue.toLowerCase())\n )\n ?.map((field: any) => (\n <Box\n onClick={() => {\n setCurrentField(\n field.value,\n currentFilter?.id,\n filters?.id,\n \"value\"\n );\n setShowPopover(false);\n resetEditing();\n }}\n css={{\n padding: \"$3 $6\",\n transition: \"all .3s ease\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"rgba(100, 116, 139, 0.06)\",\n },\n }}\n key={field?.id}\n >\n <Text size=\"sm\">{field.label}</Text>\n </Box>\n ))}\n </>\n ) : (\n <Text\n size=\"sm\"\n css={{\n padding: \"$3 $6\",\n color: \"$neutral800\",\n textAlign: \"center\",\n }}\n >\n No options\n </Text>\n )}\n </Flex>\n </>\n\n )\n } else {\n return (\n <>\n <Box css={{ padding: \"$4\" }}>\n <Input\n placeholder=\"Search\"\n leftIcon={<SearchIcon />}\n variant=\"filled\"\n size=\"lg\"\n value={inputValue}\n onChange={(e) => setInputValue(e.currentTarget.value)}\n />\n </Box>\n <Flex\n flexDirection=\"column\"\n css={{\n paddingBottom: \"$4\",\n maxHeight: 240,\n height: \"100%\",\n overflow: \"auto\",\n }}\n >\n {!!field.length ? (\n <>\n <Box css={{ padding: \"$3 $6\" }}>\n <Checkbox\n size=\"sm\"\n checked={selectedField.length === field.length}\n onChange={(checked) => {\n if (checked) {\n setSelectedField(field?.map((item: any) => item.value));\n } else {\n setSelectedField([]);\n }\n }}\n >\n <Text\n css={{\n cursor: \"pointer\",\n }}\n size=\"sm\"\n >\n Select All\n </Text>\n </Checkbox>\n </Box>\n {field\n .filter((option: any) =>\n option.label.toLowerCase().includes(inputValue.toLowerCase())\n )\n ?.map((field: any) => (\n <Box\n css={{\n padding: \"$3 $6\",\n transition: \"all .3s ease\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"rgba(100, 116, 139, 0.06)\",\n },\n }}\n key={field?.id}\n >\n <Flex gap=\"$2\">\n <Checkbox\n size=\"sm\"\n checked={selectedField.includes(field.value)}\n onChange={(checked) => {\n if (checked) {\n setSelectedField([...selectedField, field.value]);\n } else {\n setSelectedField(\n selectedField.filter(\n (item: any) => item !== field.value\n )\n );\n }\n }}\n >\n <Text\n css={{\n cursor: \"pointer\",\n }}\n size=\"sm\"\n >\n {field.label}\n </Text>\n </Checkbox>\n </Flex>\n </Box>\n ))}\n <Flex\n justifyContent=\"flex-end\"\n css={{\n position: \"sticky\",\n bottom: 0,\n paddingBlock: \"$4 !important\",\n marginInlineEnd: \"$6 !important\",\n }}\n >\n <Button\n size=\"sm\"\n variant=\"ghost\"\n color=\"primary\"\n onClick={() => {\n setCurrentField(\n selectedField,\n currentFilter?.id,\n filters?.id,\n \"value\"\n );\n setShowPopover(false);\n resetEditing();\n }}\n >\n Apply\n </Button>\n </Flex>\n </>\n ) : (\n <Text\n size=\"sm\"\n css={{\n padding: \"$3 $6\",\n color: \"$neutral800\",\n textAlign: \"center\",\n }}\n >\n No options\n </Text>\n )}\n </Flex>\n </>\n );\n }\n \n } else {\n return (\n <>\n <Box css={{ padding: \"$4\" }}>\n <FormInput\n placeholder={currentFilter.dataType === \"NUMBER\" ? \"Enter a number\" : \"Enter a value\"}\n type=\"text\"\n variant=\"filled\"\n size=\"lg\"\n {...((currentFilter.dataType === \"NUMBER\" || currentFilter.dataType === \"PHONE_NUMBER\") && {\n maxLength: 10,\n })}\n value={inputValue}\n onChange={(e) =>\n setInputValue(\n currentFilter.dataType === \"NUMBER\" || currentFilter.dataType === \"PHONE_NUMBER\"\n ? (e.target as HTMLInputElement).value.replace(/\\D/g, \"\")\n : (e.target as HTMLInputElement).value\n )\n }\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && inputValue?.length) {\n setCurrentField(\n inputValue,\n currentFilter?.id,\n filters?.id,\n \"value\"\n );\n setShowPopover(false);\n resetEditing();\n }\n }}\n />\n {(currentFilter.dataType === \"PHONE_NUMBER\") && (\n <FormLabel\n size=\"xs\"\n css={{ fontWeight: \"$5\", marginTop: \"$2\", marginLeft: \"$1\" }}\n >\n Enter a valid number without the country code\n </FormLabel>\n )}\n </Box>\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{\n borderTop: \"$borderWidths$xs solid $neutral100\",\n padding: \"$4 $6\",\n marginTop: \"$4\",\n }}\n >\n <Button\n size=\"md\"\n color=\"secondary\"\n variant=\"ghost\"\n onClick={() => setShowPopover(false)}\n >\n Cancel\n </Button>\n <Button\n size=\"md\"\n variant=\"ghost\"\n disabled={!inputValue?.length}\n onClick={() => {\n setCurrentField(\n inputValue,\n currentFilter?.id,\n filters?.id,\n \"value\"\n );\n setShowPopover(false);\n resetEditing();\n }}\n >\n Save\n </Button>\n </Flex>\n </>\n );\n }\n};\n\nexport { RenderFieldValuePopover };\n\nconst FieldValuePopover = ({\n setCurrentField,\n currentFilter,\n filters,\n resetEditing,\n fieldOptions,\n}: any) => {\n const [showPopover, setShowPopover] = useState(true);\n\n const hasError = !currentFilter.value && !showPopover;\n return (\n <Popover defaultOpen open={showPopover}>\n <TooltipProvider delayDuration={0}>\n <Tooltip\n side=\"right\"\n content={hasError ? \"Enter Value to complete the condition\" : \"\"}\n >\n <PopoverTrigger asChild onClick={() => setShowPopover(!showPopover)}>\n <Box>\n <CustomConditonChip hasError={hasError}>\n Type Value\n </CustomConditonChip>\n </Box>\n </PopoverTrigger>\n </Tooltip>\n </TooltipProvider>\n <PopoverContent\n onPointerDownOutside={() => setShowPopover(false)}\n sideOffset={4}\n align=\"start\"\n side={currentFilter.dataType === \"DATE_TIME\" ? \"right\" : \"bottom\"}\n css={{\n minWidth: 220,\n borderRadius: \"$xl\",\n border: \"0.7px solid $black300\",\n padding: 0,\n }}\n >\n <RenderFieldValuePopover\n fieldOptions={fieldOptions}\n setShowPopover={setShowPopover}\n setCurrentField={setCurrentField}\n currentFilter={currentFilter}\n filters={filters}\n resetEditing={resetEditing}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\ntype DataTypePopoverProps = {\n setCurrentField: (\n value: any,\n id: string,\n filterId: string,\n fieldType: string\n ) => void;\n currentFilter: any;\n filters: any;\n};\n\nconst DataTypePopover: React.FC<DataTypePopoverProps> = ({\n setCurrentField,\n currentFilter,\n filters,\n}) => {\n const [subMenuContent, setSubMenuContent] = useState({\n show: false,\n type: \"\",\n });\n\n return (\n <Popover defaultOpen>\n <PopoverTrigger asChild>\n <Box>\n <CustomConditonChip>Choose Data Type</CustomConditonChip>\n </Box>\n </PopoverTrigger>\n <PopoverContent\n sideOffset={4}\n align=\"start\"\n css={{\n width: 260,\n borderRadius: \"$xl\",\n border: \"0.7px solid $black300\",\n padding: 0,\n }}\n >\n {!subMenuContent.show && !currentFilter.dataType.length ? (\n <Box css={{ paddingTop: \"$6\" }}>\n <Text\n size=\"sm\"\n onClick={() => {\n setCurrentField(\n \"NO_PREFERENCE\",\n currentFilter?.id,\n filters?.id,\n \"dataType\"\n );\n setCurrentField(\n \"NO_PREFERENCE\",\n currentFilter?.id,\n filters?.id,\n \"comparator\"\n );\n setSubMenuContent({\n show: false,\n type: \"\",\n });\n }}\n css={{\n padding: \"$3 $6\",\n marginBottom: \"$4\",\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"$neutral100\",\n },\n }}\n >\n No Preference\n </Text>\n <Box\n css={{\n paddingTop: \"$4\",\n borderTop: \"$borderWidths$xs solid $neutral100\",\n }}\n >\n <Text\n css={{\n textTransform: \"uppercase\",\n color: \"$neutral600\",\n padding: \"$4 $6\",\n }}\n size=\"xs\"\n weight=\"bold\"\n >\n Select data type\n </Text>\n {subMenuOptions?.map((option) => (\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n onClick={() => {\n if (option.value === \"BOOLEAN\") {\n setCurrentField(\n option.value,\n currentFilter?.id,\n filters?.id,\n \"dataType\"\n );\n setCurrentField(\n comparatorConstants.IS,\n currentFilter?.id,\n filters?.id,\n \"comparator\"\n );\n } else {\n setCurrentField(\n option.value,\n currentFilter?.id,\n filters?.id,\n \"dataType\"\n );\n setSubMenuContent({\n show: true,\n type: option.value,\n });\n }\n }}\n css={{\n cursor: \"pointer\",\n padding: \"$3 $6\",\n \"&:hover\": {\n background: \"rgba(100, 116, 139, 0.08)\",\n \"#subLabelIcon\": {\n opacity: 1,\n },\n },\n }}\n >\n <Box>\n <Text\n size=\"sm\"\n css={{ lineHeight: \"$md\", color: \"$neutral900\" }}\n >\n {option.label}\n </Text>\n {!!option.subLabel && (\n <Text\n size=\"xs\"\n css={{ lineHeight: \"$xs\", color: \"$neutral700\" }}\n >\n {option.subLabel}\n </Text>\n )}\n </Box>\n <Box css={{ opacity: 0 }} id=\"subLabelIcon\">\n <ChevronRightIcon size={20} />\n </Box>\n </Flex>\n ))}\n </Box>\n <Flex\n css={{\n background: \"rgba(100, 116, 139, 0.06)\",\n padding: \"$6 $8\",\n }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Text size=\"xs\" css={{ color: \"$neutral600\", lineHeight: \"$xs\" }}>\n Select the right data type for the mapping to prevent errors\n when sharing value.\n </Text>\n </Flex>\n </Box>\n ) : (\n <Box>\n <Flex\n alignItems=\"center\"\n gap=\"$4\"\n css={{\n display: !subMenuOptions.find(\n (option) => option.value === subMenuContent.type\n )?.label\n ? \"none\"\n : \"flex\",\n padding: \"$5 $4\",\n borderRadius: \"$xl $xl 0 0\",\n backgroundColor: \"rgba(100, 116, 139, 0.06)\",\n borderBottom:\n \"$borderWidths$xs solid rgba(100, 116, 139, 0.08)\",\n }}\n >\n <Box\n onClick={() =>\n setSubMenuContent({\n show: false,\n type: \"\",\n })\n }\n css={{\n borderRight: \"$borderWidths$xs solid $secondary100\",\n paddingRight: \"$2\",\n cursor: \"pointer\",\n }}\n >\n <ChevronRightIcon\n style={{ transform: \"scaleX(-1)\", color: \"#76859A\" }}\n size={20}\n />\n </Box>\n <Flex alignItems=\"center\">\n <Text size=\"sm\" css={{ color: \"$secondary400\" }}>\n {\n subMenuOptions.find(\n (option) => option.value === subMenuContent.type\n )?.label\n }\n </Text>\n <ChevronRightIcon style={{ color: \"#76859A\" }} size={16} />\n <Text\n size=\"sm\"\n weight=\"medium\"\n css={{ color: \"$secondary600\" }}\n >\n {subMenuContent.type === \"DATE_TIME\" ? \"Select\" : \"Choose\"}\n </Text>\n </Flex>\n </Flex>\n <Box\n css={{\n paddingBlock: subMenuContent.type === \"DATE_TIME\" ? 0 : \"$4\",\n }}\n >\n <PopoverFields\n type={currentFilter.dataType}\n setCurrentField={setCurrentField}\n currentFilter={currentFilter}\n filters={filters}\n resetPopover={() => {\n setSubMenuContent({\n show: false,\n type: \"\",\n });\n }}\n />\n </Box>\n </Box>\n )}\n </PopoverContent>\n </Popover>\n );\n};\n\ntype PopoverFieldsProps = {\n type: string;\n setCurrentField: (\n value: any,\n id: string,\n filterId: string,\n fieldType: string\n ) => void;\n filters: any;\n currentFilter: any;\n resetPopover: () => void;\n};\n\nconst PopoverFields: React.FC<PopoverFieldsProps> = ({\n type,\n setCurrentField,\n filters,\n currentFilter,\n resetPopover,\n}) => {\n const [date, setDate] = useState<any>(\n parseDate(dayjs().format(\"YYYY-MM-DD\"))\n );\n switch (type) {\n case \"DATE_TIME\":\n return (\n <>\n {operatorOptions\n ?.filter((operator) => operator.isDateOnly)\n ?.map((option) => (\n <Text\n size=\"sm\"\n key={option.id}\n onClick={() => {\n setCurrentField(\n option.value,\n currentFilter?.id,\n filters?.id,\n \"comparator\"\n );\n resetPopover();\n }}\n css={{\n padding: \"$3 $6\",\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"rgba(100, 116, 139, 0.08)\",\n },\n }}\n >\n {option.label}\n </Text>\n ))}\n </>\n );\n case \"BOOLEAN\":\n return (\n <>\n {operatorOptions\n ?.filter((operator) => operator?.type === \"BOOLEAN\")\n ?.map((option) => (\n <Text\n size=\"sm\"\n key={option.id}\n onClick={() => {\n setCurrentField(\n option.value,\n currentFilter?.id,\n filters?.id,\n \"comparator\"\n );\n resetPopover();\n }}\n css={{\n padding: \"$3 $6\",\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"rgba(100, 116, 139, 0.08)\",\n },\n }}\n >\n {option.label}\n </Text>\n ))}\n </>\n );\n default:\n return (\n <>\n {operatorOptions\n ?.filter((operator) => !operator.isDateOnly)\n ?.map((option) => (\n <Text\n size=\"sm\"\n key={option.id}\n onClick={() => {\n setCurrentField(\n option.value,\n currentFilter?.id,\n filters?.id,\n \"comparator\"\n );\n resetPopover();\n }}\n css={{\n padding: \"$3 $6\",\n cursor: \"pointer\",\n \"&:hover\": {\n background: \"rgba(100, 116, 139, 0.08)\",\n },\n }}\n >\n {option.label}\n </Text>\n ))}\n </>\n );\n }\n};\n\ntype FieldPopoverProps = {\n setCurrentField: (\n value: any,\n id: string,\n filterId: string,\n fieldType: string\n ) => void;\n currentFilter: any;\n filters: any;\n fieldOptions: any;\n};\n\nconst FieldPopover: React.FC<FieldPopoverProps> = ({\n setCurrentField,\n currentFilter,\n filters,\n fieldOptions,\n}) => {\n const [inputSearch, setInputSearch] = useState(\"\");\n const currentOptions = fieldOptions?.filter((option: any) =>\n option.label.toLowerCase().includes(inputSearch.toLowerCase())\n );\n return (\n <Popover defaultOpen>\n <PopoverTrigger asChild>\n <Box>\n <CustomConditonChip>Choose Field</CustomConditonChip>\n </Box>\n </PopoverTrigger>\n <PopoverContent\n sideOffset={4}\n align=\"start\"\n css={{\n paddingBottom: \"12px !important\",\n width: 220,\n borderRadius: \"$xl\",\n border: \"0.7px solid $black300\",\n padding: \"0\",\n }}\n >\n <Box css={{ padding: \"$4\" }}>\n <Input\n placeholder=\"Search\"\n leftIcon={<SearchIcon />}\n variant=\"filled\"\n size=\"lg\"\n value={inputSearch}\n onChange={(e) => setInputSearch(e.currentTarget.value)}\n />\n </Box>\n <Flex\n flexDirection=\"column\"\n css={{\n paddingBottom: \"$4\",\n maxHeight: 240,\n height: \"100%\",\n overflow: \"auto\",\n }}\n >\n {!!currentOptions.length ? (\n <>\n {currentOptions.map((field: any) => (\n <Box\n onClick={() => {\n setCurrentField(\n field.value,\n currentFilter?.id,\n filters?.id,\n \"field\"\n );\n if (field?.type) {\n setCurrentField(\n field?.type,\n currentFilter?.id,\n filters?.id,\n \"dataType\"\n );\n }\n }}\n css={{\n padding: \"$3 $6\",\n transition: \"all .3s ease\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"rgba(100, 116, 139, 0.06)\",\n },\n }}\n key={field?.id}\n >\n <Text size=\"sm\">{field.label}</Text>\n </Box>\n ))}\n </>\n ) : (\n <Text\n size=\"sm\"\n css={{\n padding: \"$3 $6\",\n color: \"$neutral800\",\n textAlign: \"center\",\n }}\n >\n No options\n </Text>\n )}\n </Flex>\n </PopoverContent>\n </Popover>\n );\n};\n\ntype CustomConditonChipProps = {\n children: ReactNode;\n hasError?: boolean;\n};\n\nconst CustomConditonChip: React.FC<CustomConditonChipProps> = ({\n children,\n hasError,\n}) => {\n return (\n <Chip\n size=\"lg\"\n css={{\n backgroundColorOpacity: hasError\n ? [\"#FDEDE8\", 1]\n : [\"$primary400\", 0.2],\n color: hasError ? \"#E75030\" : \"$primary700\",\n padding: \"$3 $1\",\n fontWeight: \"$5\",\n lineHeight: \"$sm\",\n }}\n >\n {children}\n </Chip>\n );\n};\n\ntype CustomFieldChipProps = {\n children: ReactNode;\n setCurrentField: (\n value: any,\n id: string,\n filterId: string,\n fieldType: string\n ) => void;\n currentFilter: any;\n filters: any;\n setIsEditing: (isEditing: boolean) => void;\n fieldType: string;\n};\n\nconst CustomFieldChip: React.FC<CustomFieldChipProps> = ({\n children,\n setCurrentField,\n currentFilter,\n filters,\n setIsEditing,\n fieldType,\n}) => {\n const renderValue = (children: any) => {\n if(children === true) {\n return \"True\"\n }\n if(children === false) {\n return \"False\"\n }\n return children\n }\n return (\n <Chip\n size=\"lg\"\n css={{\n background: \"transparent\",\n color: \"$neutral800\",\n padding: \"$3 $1\",\n fontWeight: \"$7\",\n lineHeight: \"$sm\",\n cursor: \"pointer\",\n }}\n onClick={() => {\n const fieldsToResetMap: { [key: string]: string[] } = {\n field: [\"field\", \"comparator\", \"dataType\", \"value\"],\n comparator: [\"comparator\", \"dataType\", \"value\"],\n value: [\"value\"],\n };\n const fieldsToReset = fieldsToResetMap[fieldType] || [\n \"comparator\",\n \"dataType\",\n \"value\",\n ];\n fieldsToReset.forEach((field) => {\n setCurrentField(\"\", currentFilter?.id, filters?.id, field);\n });\n setIsEditing(true);\n }}\n >\n\n {renderValue(children)}\n </Chip>\n );\n};\n"],"names":["React","_a","parseDate","field","children"],"mappings":"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"}
@@ -0,0 +1,487 @@
1
+ import React__default, { useState, useEffect } from 'react';
2
+ import { topLevelCondition } from '../constants/index.js';
3
+ import { Filter } from './subcomponents.js';
4
+ import CustomPill from '../../commons/components/custom-pill.js';
5
+ import SMSIcon from '../../commons/icons/sms.js';
6
+ import WhatsappIcon from '../../commons/icons/whatsapp.js';
7
+ import EmailLetterIcon from '../../commons/icons/email-letter.js';
8
+ import { fetchSurveyChannels } from '../services/index.js';
9
+ import { Flex } from '../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js';
10
+ import { Box } from '../../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js';
11
+ import { Heading } from '../../node_modules/@sparrowengg/twigs-react/dist/es/heading/heading.js';
12
+ import { Text } from '../../node_modules/@sparrowengg/twigs-react/dist/es/text/text.js';
13
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from '../../node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js';
14
+ import { ChevronDownIcon } from '../../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/chevron-down.js';
15
+ import { Button } from '../../node_modules/@sparrowengg/twigs-react/dist/es/button/button.js';
16
+ import { PlusIcon } from '../../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/plus.js';
17
+ import { FormLabel } from '../../node_modules/@sparrowengg/twigs-react/dist/es/form-label/form-label.js';
18
+ import { Select } from '../../node_modules/@sparrowengg/twigs-react/dist/es/select/select.js';
19
+ import { c as components } from '../../node_modules/react-select/dist/index-a301f526.esm.js';
20
+ import v4 from '../../node_modules/uuid/dist/esm-browser/v4.js';
21
+
22
+ var __defProp = Object.defineProperty;
23
+ var __defProps = Object.defineProperties;
24
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
25
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
26
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
27
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
28
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
29
+ var __spreadValues = (a, b) => {
30
+ for (var prop in b || (b = {}))
31
+ if (__hasOwnProp.call(b, prop))
32
+ __defNormalProp(a, prop, b[prop]);
33
+ if (__getOwnPropSymbols)
34
+ for (var prop of __getOwnPropSymbols(b)) {
35
+ if (__propIsEnum.call(b, prop))
36
+ __defNormalProp(a, prop, b[prop]);
37
+ }
38
+ return a;
39
+ };
40
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
41
+ const Trigger = ({
42
+ fields,
43
+ setFields,
44
+ token,
45
+ apiURL,
46
+ hasNestedCondition,
47
+ surveyDetails,
48
+ shareRecipentOptions,
49
+ shareChannelOptions,
50
+ triggerDetails,
51
+ setTriggerDetails,
52
+ fieldOptions,
53
+ variableOptions
54
+ }) => {
55
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
56
+ const [isEditing, setIsEditing] = useState(false);
57
+ const [channels, setChannels] = useState([]);
58
+ const setTriggerFields = (property, value) => {
59
+ setTriggerDetails((prev) => __spreadProps(__spreadValues({}, prev), {
60
+ [property]: value
61
+ }));
62
+ };
63
+ const addFilterCondition = () => {
64
+ const newCondition = {
65
+ id: v4(),
66
+ field: null,
67
+ operator: null,
68
+ value: null
69
+ };
70
+ const newGroup = {
71
+ id: v4(),
72
+ conditions: [newCondition],
73
+ operator: "AND"
74
+ };
75
+ setFields((prev) => __spreadProps(__spreadValues({}, prev), {
76
+ filters: [...prev.filters, newGroup]
77
+ }));
78
+ };
79
+ const addNestedFilterCondition = (currentFilterId) => {
80
+ setIsEditing(true);
81
+ setFields((prev) => __spreadProps(__spreadValues({}, prev), {
82
+ filters: prev.filters.map((filter) => {
83
+ if (filter.id === currentFilterId) {
84
+ return __spreadProps(__spreadValues({}, filter), {
85
+ filter: [
86
+ ...filter.filter,
87
+ {
88
+ id: v4(),
89
+ field: "",
90
+ dataType: "",
91
+ comparator: "",
92
+ value: ""
93
+ }
94
+ ]
95
+ });
96
+ } else {
97
+ return filter;
98
+ }
99
+ })
100
+ }));
101
+ };
102
+ const fetchShareChannels = async (token2, apiURL2, surveyId) => {
103
+ const response = await fetchSurveyChannels(token2, apiURL2, surveyId);
104
+ setChannels(response);
105
+ };
106
+ const setCurrentField = (fieldValue, currentNestedFilterId, currentFilterId, type) => {
107
+ setFields((prev) => __spreadProps(__spreadValues({}, prev), {
108
+ filters: prev.filters.map((filter) => {
109
+ if (filter.id === currentFilterId) {
110
+ return __spreadProps(__spreadValues({}, filter), {
111
+ filter: filter.filter.map((currentFilter) => {
112
+ if (currentFilter.id === currentNestedFilterId) {
113
+ return __spreadProps(__spreadValues({}, currentFilter), {
114
+ [type]: fieldValue
115
+ });
116
+ } else {
117
+ return currentFilter;
118
+ }
119
+ })
120
+ });
121
+ } else {
122
+ return filter;
123
+ }
124
+ })
125
+ }));
126
+ };
127
+ const removeCurrentFilter = (currentFilterId) => {
128
+ setFields((prev) => __spreadProps(__spreadValues({}, prev), {
129
+ filters: prev.filters.filter(
130
+ (currentFilter) => currentFilter.id !== currentFilterId
131
+ )
132
+ }));
133
+ };
134
+ const isEmpty = (object) => {
135
+ var _a2;
136
+ return ((_a2 = Object.entries(object != null ? object : {})) == null ? void 0 : _a2.length) === 0;
137
+ };
138
+ const removeNestedField = (currentFieldId, currentNestedFilterId) => {
139
+ setFields((prev) => {
140
+ const updatedFilters = prev.filters.reduce(
141
+ (acc, currentField) => {
142
+ if (currentField.id === currentFieldId) {
143
+ const updatedFilter = Array.isArray(currentField.filter) ? currentField.filter.filter(
144
+ (currentNestedFilter) => currentNestedFilter.id !== currentNestedFilterId
145
+ ) : [];
146
+ if (updatedFilter.length > 0) {
147
+ acc.push(__spreadProps(__spreadValues({}, currentField), {
148
+ filter: updatedFilter
149
+ }));
150
+ }
151
+ } else {
152
+ acc.push(currentField);
153
+ }
154
+ return acc;
155
+ },
156
+ []
157
+ );
158
+ return __spreadProps(__spreadValues({}, prev), {
159
+ filters: updatedFilters
160
+ });
161
+ });
162
+ };
163
+ const setNestedFieldCondition = (currentFilterId, condition) => {
164
+ setFields((prev) => __spreadProps(__spreadValues({}, prev), {
165
+ filters: prev.filters.map((filter) => {
166
+ if (filter.id === currentFilterId) {
167
+ return __spreadProps(__spreadValues({}, filter), {
168
+ condition
169
+ });
170
+ } else {
171
+ return filter;
172
+ }
173
+ })
174
+ }));
175
+ };
176
+ useEffect(() => {
177
+ fetchShareChannels(token, apiURL, surveyDetails == null ? void 0 : surveyDetails.surveyId);
178
+ }, [token, apiURL, surveyDetails == null ? void 0 : surveyDetails.surveyId]);
179
+ return /* @__PURE__ */ React__default.createElement(
180
+ Flex,
181
+ {
182
+ justifyContent: "center",
183
+ alignItems: "center",
184
+ css: { marginTop: "$40" }
185
+ },
186
+ /* @__PURE__ */ React__default.createElement(Box, { css: { maxWidth: 488, width: "100%" } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, "Set Condition"), /* @__PURE__ */ React__default.createElement(Flex, { alignItems: "center", css: { marginTop: "$12" } }, /* @__PURE__ */ React__default.createElement(
187
+ Text,
188
+ {
189
+ size: "md",
190
+ css: { color: "$neutral700", display: "inline-flex" }
191
+ },
192
+ "which meets",
193
+ " "
194
+ ), /* @__PURE__ */ React__default.createElement(DropdownMenu, null, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement(
195
+ Flex,
196
+ {
197
+ alignItems: "center",
198
+ css: {
199
+ margin: "0 $2"
200
+ }
201
+ },
202
+ /* @__PURE__ */ React__default.createElement(
203
+ Text,
204
+ {
205
+ size: "md",
206
+ weight: "medium",
207
+ css: { color: "$neutral900", lineHeight: "$sm" }
208
+ },
209
+ (_a = topLevelCondition.find(
210
+ (condition) => condition.value === (fields == null ? void 0 : fields.condition)
211
+ )) == null ? void 0 : _a.label
212
+ ),
213
+ /* @__PURE__ */ React__default.createElement(ChevronDownIcon, { size: 16, color: "#6A6A6A" })
214
+ )), /* @__PURE__ */ React__default.createElement(
215
+ DropdownMenuContent,
216
+ {
217
+ align: "end",
218
+ sideOffset: 5,
219
+ css: {
220
+ padding: "$4 0",
221
+ minWidth: "$15"
222
+ }
223
+ },
224
+ topLevelCondition.map((condition) => /* @__PURE__ */ React__default.createElement(
225
+ DropdownMenuItem,
226
+ {
227
+ key: condition.value,
228
+ onClick: () => setFields((prev) => __spreadProps(__spreadValues({}, prev), {
229
+ condition: condition.value
230
+ })),
231
+ css: __spreadValues({}, condition.value === (fields == null ? void 0 : fields.condition) && {
232
+ background: "$primary100",
233
+ color: "$neutral900",
234
+ "&:hover": {
235
+ background: "$primary100",
236
+ color: "$neutral900"
237
+ }
238
+ })
239
+ },
240
+ condition.label
241
+ ))
242
+ )), /* @__PURE__ */ React__default.createElement(
243
+ Text,
244
+ {
245
+ size: "md",
246
+ css: { color: "$neutral700", display: "inline-flex" }
247
+ },
248
+ "of these conditions"
249
+ )), /* @__PURE__ */ React__default.createElement(
250
+ Flex,
251
+ {
252
+ flexDirection: "column",
253
+ gap: "$12",
254
+ css: { marginTop: ((_b = fields == null ? void 0 : fields.filters) == null ? void 0 : _b.length) ? "$12" : 0 }
255
+ },
256
+ (_c = fields == null ? void 0 : fields.filters) == null ? void 0 : _c.map((filters, index) => /* @__PURE__ */ React__default.createElement(
257
+ Filter,
258
+ {
259
+ key: filters.id,
260
+ filters,
261
+ fields,
262
+ hasNestedCondition,
263
+ index,
264
+ isEditing,
265
+ setIsEditing,
266
+ setCurrentField,
267
+ resetEditing: () => setIsEditing(false),
268
+ addNestedFilterCondition,
269
+ setNestedFieldCondition,
270
+ removeCurrentFilter,
271
+ removeNestedField,
272
+ fieldOptions
273
+ }
274
+ ))
275
+ ), /* @__PURE__ */ React__default.createElement(
276
+ Button,
277
+ {
278
+ css: { marginTop: "$8", marginLeft: "-$2" },
279
+ leftIcon: /* @__PURE__ */ React__default.createElement(PlusIcon, null),
280
+ variant: "ghost",
281
+ size: "md",
282
+ onClick: () => {
283
+ setIsEditing(true);
284
+ addFilterCondition();
285
+ }
286
+ },
287
+ "Add Condition"
288
+ ), !!((_d = fields == null ? void 0 : fields.filters) == null ? void 0 : _d.some(
289
+ (filter) => {
290
+ var _a2;
291
+ return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
292
+ }
293
+ )) ? /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$12", css: { marginTop: "$40" } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, "Pass Variable to Survey"), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Fields"), /* @__PURE__ */ React__default.createElement(
294
+ Select,
295
+ {
296
+ placeholder: "",
297
+ size: "lg",
298
+ isMulti: true,
299
+ closeMenuOnSelect: false,
300
+ isClearable: false,
301
+ value: triggerDetails == null ? void 0 : triggerDetails.variables,
302
+ onChange: (field) => {
303
+ setTriggerFields("variables", field);
304
+ },
305
+ css: {
306
+ p: {
307
+ fontFamily: "'Roboto Mono', monospace !important"
308
+ },
309
+ "& .twigs-select__control": {
310
+ overflow: "auto",
311
+ maxHeight: 488,
312
+ height: "100%"
313
+ },
314
+ ".twigs-select__value-container--is-multi": {
315
+ gap: "$2"
316
+ }
317
+ },
318
+ components: {
319
+ MultiValue: CustomMultiValue
320
+ },
321
+ options: variableOptions
322
+ }
323
+ ))) : null, !!((_e = fields == null ? void 0 : fields.filters) == null ? void 0 : _e.some(
324
+ (filter) => {
325
+ var _a2;
326
+ return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
327
+ }
328
+ )) ? /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$12", css: { marginBlock: "$40" } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, "Send Survey"), /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$8" }, /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Share Type"), /* @__PURE__ */ React__default.createElement(
329
+ Select,
330
+ {
331
+ placeholder: "",
332
+ size: "lg",
333
+ components: {
334
+ Option: CustomShareOption,
335
+ SingleValue: CustomSingleValue
336
+ },
337
+ styles: {
338
+ singleValue: (provided, state) => __spreadProps(__spreadValues({}, provided), {
339
+ display: "flex",
340
+ alignItems: "center"
341
+ })
342
+ },
343
+ value: triggerDetails == null ? void 0 : triggerDetails.shareType,
344
+ onChange: (field) => {
345
+ setTriggerFields("shareType", field);
346
+ setTriggerFields("shareRecipient", null);
347
+ setTriggerFields("shareChannel", null);
348
+ },
349
+ options: [
350
+ {
351
+ id: 1,
352
+ label: "Email",
353
+ value: "EMAIL"
354
+ },
355
+ {
356
+ id: 2,
357
+ label: "SMS",
358
+ value: "SMS"
359
+ },
360
+ {
361
+ id: 3,
362
+ label: "Whatsapp",
363
+ value: "WHATSAPP"
364
+ }
365
+ ]
366
+ }
367
+ )), !isEmpty(triggerDetails == null ? void 0 : triggerDetails.shareType) && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Recipient"), /* @__PURE__ */ React__default.createElement(
368
+ Select,
369
+ {
370
+ placeholder: "",
371
+ size: "lg",
372
+ onChange: (field) => setTriggerFields("shareRecipient", field),
373
+ isDisabled: !((_f = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _f.value),
374
+ value: triggerDetails == null ? void 0 : triggerDetails.shareRecipient,
375
+ options: shareRecipentOptions == null ? void 0 : shareRecipentOptions.filter(
376
+ (option) => {
377
+ var _a2;
378
+ return (option == null ? void 0 : option.type) === ((_a2 = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _a2.value);
379
+ }
380
+ )
381
+ }
382
+ )), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Share Channel"), /* @__PURE__ */ React__default.createElement(
383
+ Select,
384
+ {
385
+ placeholder: "",
386
+ size: "lg",
387
+ components: {
388
+ Option: CustomShareChannelOption,
389
+ SingleValue: CustomShareChannelSingleValue
390
+ },
391
+ styles: {
392
+ singleValue: (provided, state) => __spreadProps(__spreadValues({}, provided), {
393
+ display: "flex",
394
+ alignItems: "center"
395
+ })
396
+ },
397
+ isDisabled: !((_g = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _g.value),
398
+ value: triggerDetails == null ? void 0 : triggerDetails.shareChannel,
399
+ onChange: (field) => setTriggerFields("shareChannel", field),
400
+ options: ((_h = channels.filter(
401
+ (channel) => {
402
+ var _a2;
403
+ return (channel == null ? void 0 : channel.type) === ((_a2 = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _a2.value);
404
+ }
405
+ )) == null ? void 0 : _h.length) ? channels.filter(
406
+ (channel) => {
407
+ var _a2;
408
+ return (channel == null ? void 0 : channel.type) === ((_a2 = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _a2.value);
409
+ }
410
+ ) : ((_i = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _i.value) !== "WHATSAPP" ? [{
411
+ label: "New Share ",
412
+ value: "NEW_SHARE"
413
+ }] : []
414
+ }
415
+ ))))) : null)
416
+ );
417
+ };
418
+ const CustomShareOption = (props) => {
419
+ const getCurrentIcon = (type) => {
420
+ switch (type) {
421
+ case "EMAIL":
422
+ return /* @__PURE__ */ React__default.createElement(EmailLetterIcon, null);
423
+ case "SMS":
424
+ return /* @__PURE__ */ React__default.createElement(SMSIcon, null);
425
+ case "WHATSAPP":
426
+ return /* @__PURE__ */ React__default.createElement(WhatsappIcon, null);
427
+ default:
428
+ return null;
429
+ }
430
+ };
431
+ return /* @__PURE__ */ React__default.createElement(components.Option, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, getCurrentIcon(props.data.value), /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.label)));
432
+ };
433
+ const CustomSingleValue = (props) => {
434
+ const getCurrentIcon = (type) => {
435
+ switch (type) {
436
+ case "EMAIL":
437
+ return /* @__PURE__ */ React__default.createElement(EmailLetterIcon, null);
438
+ case "SMS":
439
+ return /* @__PURE__ */ React__default.createElement(SMSIcon, null);
440
+ case "WHATSAPP":
441
+ return /* @__PURE__ */ React__default.createElement(WhatsappIcon, null);
442
+ default:
443
+ return null;
444
+ }
445
+ };
446
+ return /* @__PURE__ */ React__default.createElement(components.SingleValue, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, getCurrentIcon(props.data.value), /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.data.label)));
447
+ };
448
+ const CustomMultiValue = (props) => {
449
+ return /* @__PURE__ */ React__default.createElement(
450
+ CustomPill,
451
+ {
452
+ label: props.data.label,
453
+ onCloseHandler: () => {
454
+ var _a, _b;
455
+ return (_b = (_a = props.removeProps) == null ? void 0 : _a.onClick) == null ? void 0 : _b.call(_a);
456
+ },
457
+ variant: "success",
458
+ radius: "md",
459
+ fontFamily: "Roboto Mono"
460
+ }
461
+ );
462
+ };
463
+ const CustomShareChannelOption = (props) => {
464
+ const getCurrentIcon = (type) => {
465
+ switch (type) {
466
+ case "NEW_SHARE":
467
+ return /* @__PURE__ */ React__default.createElement(PlusIcon, { size: 16, color: "#6A6A6A" });
468
+ default:
469
+ return null;
470
+ }
471
+ };
472
+ return /* @__PURE__ */ React__default.createElement(components.Option, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, getCurrentIcon(props.data.value), /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.label)));
473
+ };
474
+ const CustomShareChannelSingleValue = (props) => {
475
+ const getCurrentIcon = (type) => {
476
+ switch (type) {
477
+ case "NEW_SHARE":
478
+ return /* @__PURE__ */ React__default.createElement(PlusIcon, { size: 16, color: "#6A6A6A" });
479
+ default:
480
+ return null;
481
+ }
482
+ };
483
+ return /* @__PURE__ */ React__default.createElement(components.SingleValue, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, getCurrentIcon(props.data.value), /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.data.label)));
484
+ };
485
+
486
+ export { Trigger as default };
487
+ //# sourceMappingURL=trigger.js.map