@sparrowengg/integrations-templates-frontend 2.1.0-beta.1 → 2.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js +1 -1
- package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
- package/dist/cjs/commons/components/NamingModal.js +34 -62
- package/dist/cjs/commons/components/NamingModal.js.map +1 -1
- package/dist/cjs/commons/components/confirmation-modal.js +12 -24
- package/dist/cjs/commons/components/confirmation-modal.js.map +1 -1
- package/dist/cjs/commons/components/custom-pill.js +12 -30
- package/dist/cjs/commons/components/custom-pill.js.map +1 -1
- package/dist/cjs/commons/components/draftModal.js +31 -45
- package/dist/cjs/commons/components/draftModal.js.map +1 -1
- package/dist/cjs/commons/components/edit-confirmation.js +17 -34
- package/dist/cjs/commons/components/edit-confirmation.js.map +1 -1
- package/dist/cjs/commons/components/import-modal.js +18 -49
- package/dist/cjs/commons/components/import-modal.js.map +1 -1
- package/dist/cjs/commons/components/spinner.js +2 -16
- package/dist/cjs/commons/components/spinner.js.map +1 -1
- package/dist/cjs/commons/components/theme-wrapper.js +12 -9
- package/dist/cjs/commons/components/theme-wrapper.js.map +1 -1
- package/dist/cjs/commons/constants/enhanced.js.map +1 -1
- package/dist/cjs/commons/helpers/index.js +52 -93
- package/dist/cjs/commons/helpers/index.js.map +1 -1
- package/dist/cjs/commons/icons/arrow.js +3 -38
- package/dist/cjs/commons/icons/arrow.js.map +1 -1
- package/dist/cjs/commons/icons/cursor.js +8 -21
- package/dist/cjs/commons/icons/cursor.js.map +1 -1
- package/dist/cjs/commons/icons/email-letter.js +12 -30
- package/dist/cjs/commons/icons/email-letter.js.map +1 -1
- package/dist/cjs/commons/icons/mapping.js +10 -23
- package/dist/cjs/commons/icons/mapping.js.map +1 -1
- package/dist/cjs/commons/icons/nested-add.js +14 -32
- package/dist/cjs/commons/icons/nested-add.js.map +1 -1
- package/dist/cjs/commons/icons/sms.js +18 -36
- package/dist/cjs/commons/icons/sms.js.map +1 -1
- package/dist/cjs/commons/icons/sync.js +3 -110
- package/dist/cjs/commons/icons/sync.js.map +1 -1
- package/dist/cjs/commons/icons/trash.js +15 -33
- package/dist/cjs/commons/icons/trash.js.map +1 -1
- package/dist/cjs/commons/icons/whatsapp.js +31 -49
- package/dist/cjs/commons/icons/whatsapp.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/Completed.js +41 -27
- package/dist/cjs/contact-import/components/ManageImport/Completed.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/Dashboard.js +43 -23
- package/dist/cjs/contact-import/components/ManageImport/Dashboard.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/NoDataState.js +6 -7
- package/dist/cjs/contact-import/components/ManageImport/NoDataState.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/Scheduled.js +46 -30
- package/dist/cjs/contact-import/components/ManageImport/Scheduled.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/icon.js +85 -0
- package/dist/cjs/contact-import/components/ManageImport/icon.js.map +1 -0
- package/dist/cjs/contact-import/components/Scheduling.js +27 -39
- package/dist/cjs/contact-import/components/Scheduling.js.map +1 -1
- package/dist/cjs/contact-import/components/TimePicker.js +102 -129
- package/dist/cjs/contact-import/components/TimePicker.js.map +1 -1
- package/dist/cjs/contact-import/components/conact-import-schedule.js +64 -0
- package/dist/cjs/contact-import/components/conact-import-schedule.js.map +1 -0
- package/dist/cjs/contact-import/components/contact-import-configure.js +75 -0
- package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -0
- package/dist/cjs/contact-import/components/contact-import-mapping.js +224 -0
- package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -0
- package/dist/cjs/contact-import/constants.js +21 -0
- package/dist/cjs/contact-import/constants.js.map +1 -0
- package/dist/cjs/contact-import/index.js +242 -32
- package/dist/cjs/contact-import/index.js.map +1 -1
- package/dist/cjs/dynamic-mapping/components/Mapping.js +321 -203
- package/dist/cjs/dynamic-mapping/components/Mapping.js.map +1 -1
- package/dist/cjs/dynamic-mapping/index.js +972 -34
- package/dist/cjs/dynamic-mapping/index.js.map +1 -1
- package/dist/cjs/filter/filter-pill-value-selector.js +1 -1
- package/dist/cjs/filter/filter-pill-value-selector.js.map +1 -1
- package/dist/cjs/index.js +12 -159
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/integration-template/components/dashboard.js +137 -130
- package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
- package/dist/cjs/integration-template/index.js +343 -0
- package/dist/cjs/integration-template/index.js.map +1 -0
- package/dist/cjs/mapping/components/custom-menu.js +3 -4
- package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
- package/dist/cjs/mapping/components/field.js +103 -121
- package/dist/cjs/mapping/components/field.js.map +1 -1
- package/dist/cjs/mapping/components/mapping.js +195 -106
- package/dist/cjs/mapping/components/mapping.js.map +1 -1
- package/dist/cjs/mapping/constants/index.js +2 -259
- package/dist/cjs/mapping/constants/index.js.map +1 -1
- package/dist/cjs/mapping/index.js +618 -38
- package/dist/cjs/mapping/index.js.map +1 -1
- package/dist/cjs/mapping/services/index.js +58 -96
- package/dist/cjs/mapping/services/index.js.map +1 -1
- package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +7 -7
- package/dist/cjs/single-mapping/components/mapping.js +490 -0
- package/dist/cjs/single-mapping/components/mapping.js.map +1 -0
- package/dist/cjs/single-mapping/index.js +987 -59
- package/dist/cjs/single-mapping/index.js.map +1 -1
- package/dist/cjs/triggers/components/subcomponents.js +1140 -0
- package/dist/cjs/triggers/components/subcomponents.js.map +1 -0
- package/dist/cjs/triggers/components/trigger.js +491 -0
- package/dist/cjs/triggers/components/trigger.js.map +1 -0
- package/dist/cjs/triggers/constants/index.js +0 -253
- package/dist/cjs/triggers/constants/index.js.map +1 -1
- package/dist/cjs/triggers/index.js +333 -0
- package/dist/cjs/triggers/index.js.map +1 -0
- package/dist/cjs/triggers/services/index.js +30 -0
- package/dist/cjs/triggers/services/index.js.map +1 -0
- package/dist/es/cascader-dropdown/cascader-dropdown-content.js +1 -1
- package/dist/es/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
- package/dist/es/commons/components/NamingModal.js +35 -63
- package/dist/es/commons/components/NamingModal.js.map +1 -1
- package/dist/es/commons/components/confirmation-modal.js +13 -25
- package/dist/es/commons/components/confirmation-modal.js.map +1 -1
- package/dist/es/commons/components/custom-pill.js +13 -31
- package/dist/es/commons/components/custom-pill.js.map +1 -1
- package/dist/es/commons/components/draftModal.js +32 -46
- package/dist/es/commons/components/draftModal.js.map +1 -1
- package/dist/es/commons/components/edit-confirmation.js +18 -35
- package/dist/es/commons/components/edit-confirmation.js.map +1 -1
- package/dist/es/commons/components/import-modal.js +19 -50
- package/dist/es/commons/components/import-modal.js.map +1 -1
- package/dist/es/commons/components/spinner.js +2 -16
- package/dist/es/commons/components/spinner.js.map +1 -1
- package/dist/es/commons/components/theme-wrapper.js +12 -9
- package/dist/es/commons/components/theme-wrapper.js.map +1 -1
- package/dist/es/commons/constants/enhanced.js.map +1 -1
- package/dist/es/commons/helpers/index.js +52 -93
- package/dist/es/commons/helpers/index.js.map +1 -1
- package/dist/es/commons/icons/arrow.js +3 -38
- package/dist/es/commons/icons/arrow.js.map +1 -1
- package/dist/es/commons/icons/cursor.js +8 -21
- package/dist/es/commons/icons/cursor.js.map +1 -1
- package/dist/es/commons/icons/email-letter.js +12 -30
- package/dist/es/commons/icons/email-letter.js.map +1 -1
- package/dist/es/commons/icons/mapping.js +10 -23
- package/dist/es/commons/icons/mapping.js.map +1 -1
- package/dist/es/commons/icons/nested-add.js +14 -32
- package/dist/es/commons/icons/nested-add.js.map +1 -1
- package/dist/es/commons/icons/sms.js +18 -36
- package/dist/es/commons/icons/sms.js.map +1 -1
- package/dist/es/commons/icons/sync.js +3 -110
- package/dist/es/commons/icons/sync.js.map +1 -1
- package/dist/es/commons/icons/trash.js +15 -33
- package/dist/es/commons/icons/trash.js.map +1 -1
- package/dist/es/commons/icons/whatsapp.js +31 -49
- package/dist/es/commons/icons/whatsapp.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/Completed.js +41 -27
- package/dist/es/contact-import/components/ManageImport/Completed.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/Dashboard.js +45 -25
- package/dist/es/contact-import/components/ManageImport/Dashboard.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/NoDataState.js +4 -5
- package/dist/es/contact-import/components/ManageImport/NoDataState.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/Scheduled.js +46 -30
- package/dist/es/contact-import/components/ManageImport/Scheduled.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/icon.js +82 -0
- package/dist/es/contact-import/components/ManageImport/icon.js.map +1 -0
- package/dist/es/contact-import/components/Scheduling.js +27 -39
- package/dist/es/contact-import/components/Scheduling.js.map +1 -1
- package/dist/es/contact-import/components/TimePicker.js +103 -130
- package/dist/es/contact-import/components/TimePicker.js.map +1 -1
- package/dist/es/contact-import/components/conact-import-schedule.js +60 -0
- package/dist/es/contact-import/components/conact-import-schedule.js.map +1 -0
- package/dist/es/contact-import/components/contact-import-configure.js +71 -0
- package/dist/es/contact-import/components/contact-import-configure.js.map +1 -0
- package/dist/es/contact-import/components/contact-import-mapping.js +220 -0
- package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -0
- package/dist/es/contact-import/constants.js +18 -0
- package/dist/es/contact-import/constants.js.map +1 -0
- package/dist/es/contact-import/index.js +240 -27
- package/dist/es/contact-import/index.js.map +1 -1
- package/dist/es/dynamic-mapping/components/Mapping.js +321 -203
- package/dist/es/dynamic-mapping/components/Mapping.js.map +1 -1
- package/dist/es/dynamic-mapping/index.js +972 -34
- package/dist/es/dynamic-mapping/index.js.map +1 -1
- package/dist/es/filter/filter-pill-value-selector.js +1 -1
- package/dist/es/filter/filter-pill-value-selector.js.map +1 -1
- package/dist/es/index.js +2 -23
- package/dist/es/index.js.map +1 -1
- package/dist/es/integration-template/components/dashboard.js +139 -132
- package/dist/es/integration-template/components/dashboard.js.map +1 -1
- package/dist/es/integration-template/index.js +341 -0
- package/dist/es/integration-template/index.js.map +1 -0
- package/dist/es/mapping/components/custom-menu.js +3 -4
- package/dist/es/mapping/components/custom-menu.js.map +1 -1
- package/dist/es/mapping/components/field.js +100 -118
- package/dist/es/mapping/components/field.js.map +1 -1
- package/dist/es/mapping/components/mapping.js +194 -105
- package/dist/es/mapping/components/mapping.js.map +1 -1
- package/dist/es/mapping/constants/index.js +3 -239
- package/dist/es/mapping/constants/index.js.map +1 -1
- package/dist/es/mapping/index.js +617 -12
- package/dist/es/mapping/index.js.map +1 -1
- package/dist/es/mapping/services/index.js +59 -96
- package/dist/es/mapping/services/index.js.map +1 -1
- package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js +3 -3
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +2 -2
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/calendar/dist/import.js +2 -2
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/utils/dist/import.js +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-stately/calendar/dist/import.js +1 -1
- package/dist/es/single-mapping/components/mapping.js +486 -0
- package/dist/es/single-mapping/components/mapping.js.map +1 -0
- package/dist/es/single-mapping/index.js +988 -60
- package/dist/es/single-mapping/index.js.map +1 -1
- package/dist/es/triggers/components/subcomponents.js +1134 -0
- package/dist/es/triggers/components/subcomponents.js.map +1 -0
- package/dist/es/triggers/components/trigger.js +487 -0
- package/dist/es/triggers/components/trigger.js.map +1 -0
- package/dist/es/triggers/constants/index.js +1 -228
- package/dist/es/triggers/constants/index.js.map +1 -1
- package/dist/es/triggers/index.js +331 -0
- package/dist/es/triggers/index.js.map +1 -0
- package/dist/es/triggers/services/index.js +28 -0
- package/dist/es/triggers/services/index.js.map +1 -0
- package/dist/index.d.ts +448 -2161
- 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
|