@sparrowengg/integrations-templates-frontend 6.0.0 → 6.0.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/integration-template/components/dashboard/DashboardItem.js +24 -2
- package/dist/cjs/integration-template/components/dashboard/DashboardItem.js.map +1 -1
- package/dist/cjs/integration-template/components/dashboard/SingleMappingDashboardItem.js +24 -2
- package/dist/cjs/integration-template/components/dashboard/SingleMappingDashboardItem.js.map +1 -1
- package/dist/cjs/integration-template/components/dashboard/TriggerDashboardItem.js +24 -2
- package/dist/cjs/integration-template/components/dashboard/TriggerDashboardItem.js.map +1 -1
- package/dist/cjs/triggers/components/EventSetup.js +2 -1
- package/dist/cjs/triggers/components/EventSetup.js.map +1 -1
- package/dist/cjs/triggers/components/trigger.js +26 -18
- package/dist/cjs/triggers/components/trigger.js.map +1 -1
- package/dist/cjs/triggers/utils/validation.utils.js +10 -0
- package/dist/cjs/triggers/utils/validation.utils.js.map +1 -1
- package/dist/es/integration-template/components/dashboard/DashboardItem.js +24 -2
- package/dist/es/integration-template/components/dashboard/DashboardItem.js.map +1 -1
- package/dist/es/integration-template/components/dashboard/SingleMappingDashboardItem.js +24 -2
- package/dist/es/integration-template/components/dashboard/SingleMappingDashboardItem.js.map +1 -1
- package/dist/es/integration-template/components/dashboard/TriggerDashboardItem.js +24 -2
- package/dist/es/integration-template/components/dashboard/TriggerDashboardItem.js.map +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/loader/circle.js +1 -1
- package/dist/es/triggers/components/EventSetup.js +2 -1
- package/dist/es/triggers/components/EventSetup.js.map +1 -1
- package/dist/es/triggers/components/trigger.js +28 -20
- package/dist/es/triggers/components/trigger.js.map +1 -1
- package/dist/es/triggers/utils/validation.utils.js +10 -1
- package/dist/es/triggers/utils/validation.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sources":["../../../../src/triggers/components/trigger.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport {\n Box,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { topLevelCondition } from \"../constants\";\nimport { Filter } from \"./subcomponents\";\nimport {\n CustomShareOption,\n CustomSingleValue,\n CustomMultiValue,\n CustomShareChannelOption,\n CustomShareChannelSingleValue,\n} from \"./custom-share-components\";\nimport {\n useTriggerState,\n useFilterManagement,\n useChannelData,\n} from \"../hooks\";\nimport { isEmpty } from \"../utils\";\nimport { ContactUniqueConstraint } from \"../types\";\n\n/* ----- Types / Interfaces ----- */\n\ntype TriggerProps = {\n fields: any;\n setFields: (fields: any) => void;\n token: string;\n apiURL: string;\n surveyDetails: any;\n hasNestedCondition: boolean;\n shareRecipientOptions: any[];\n shareChannelOptions: any[];\n triggerDetails: any;\n setTriggerDetails: (details: any) => void;\n fieldOptions: any[];\n variableOptions: any[];\n contactUniqueConstraint?: ContactUniqueConstraint;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Trigger component for setting up trigger conditions and actions\n *\n * @param {TriggerProps} props - Component props\n * @returns {JSX.Element} Rendered Trigger component\n */\nconst Trigger: React.FC<TriggerProps> = ({\n fields,\n setFields,\n token,\n apiURL,\n hasNestedCondition,\n surveyDetails,\n shareRecipientOptions,\n shareChannelOptions,\n triggerDetails,\n setTriggerDetails,\n fieldOptions,\n variableOptions,\n contactUniqueConstraint,\n}) => {\n /* ----- Hooks ----- */\n\n const { isEditing, setIsEditing } = useTriggerState();\n\n const {\n addFilterCondition,\n addNestedFilterCondition,\n setCurrentField,\n removeCurrentFilter,\n removeNestedField,\n setNestedFieldCondition,\n } = useFilterManagement({\n setFields,\n setIsEditing,\n });\n\n const { channels } = useChannelData({\n token,\n apiURL,\n surveyId: surveyDetails?.surveyId,\n shareChannelOptions,\n });\n\n /* ----- Constants ----- */\n\n const selectedCondition = useMemo(\n () =>\n topLevelCondition.find(\n (condition) => condition.value === fields.condition\n )?.label,\n [fields.condition]\n );\n\n const hasFiltersWithValues = useMemo(\n () =>\n fields.filters.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n ),\n [fields.filters]\n );\n\n const filteredShareRecipientOptions = useMemo(\n () =>\n shareRecipientOptions?.filter(\n (option: any) => option?.type === triggerDetails.shareType?.value\n ),\n [shareRecipientOptions, triggerDetails.shareType?.value]\n );\n\n const filteredShareChannelOptions = useMemo(() => {\n const filtered = channels.filter(\n (channel: any) => channel?.type === triggerDetails?.shareType?.value\n );\n if (filtered.length) {\n return filtered;\n }\n if (\n triggerDetails?.shareType?.value !== \"WHATSAPP\" &&\n triggerDetails?.shareType?.value !== \"SMS\"\n ) {\n return [\n {\n label: \"New Share \",\n value: \"NEW_SHARE\",\n },\n ];\n }\n return [];\n }, [channels, triggerDetails?.shareType?.value]);\n\n /* ----- Event Handlers ----- */\n\n const setTriggerFields = useCallback(\n (property: string, value: any) => {\n setTriggerDetails((prev: any) => ({\n ...prev,\n [property]: value,\n }));\n },\n [setTriggerDetails]\n );\n\n const handleConditionChange = useCallback(\n (conditionValue: string) => {\n setFields((prev: any) => ({\n ...prev,\n condition: conditionValue,\n }));\n },\n [setFields]\n );\n\n const handleAddConditionClick = useCallback(() => {\n setIsEditing(true);\n addFilterCondition();\n }, [setIsEditing, addFilterCondition]);\n\n const handleVariablesChange = useCallback(\n (field: any) => {\n setTriggerFields(\"variables\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareTypeChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareType\", field);\n setTriggerFields(\"shareRecipient\", null);\n setTriggerFields(\"shareChannel\", null);\n },\n [setTriggerFields]\n );\n\n const handleShareRecipientChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareRecipient\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareChannelChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareChannel\", field);\n },\n [setTriggerFields]\n );\n\n const handleContactUniqueFieldChange = useCallback(\n (field: any) => {\n const constraintKey = contactUniqueConstraint?.value;\n if (!constraintKey) return;\n setTriggerFields(\n \"contactUniqueField\",\n field?.value ? { [constraintKey]: field.value } : null\n );\n },\n [setTriggerFields, contactUniqueConstraint?.value]\n );\n\n const selectedContactUniqueOption = useMemo(() => {\n const constraintKey = contactUniqueConstraint?.value;\n const stored = triggerDetails?.contactUniqueField;\n if (!constraintKey || !stored) return null;\n const variableValue = stored[constraintKey];\n if (!variableValue) return null;\n return (\n variableOptions?.find((option: any) => option?.value === variableValue) ??\n null\n );\n }, [\n contactUniqueConstraint?.value,\n triggerDetails?.contactUniqueField,\n variableOptions,\n ]);\n\n const resetEditing = useCallback(() => {\n setIsEditing(false);\n }, [setIsEditing]);\n\n /* ----- Render ----- */\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Set Condition</Heading>\n <Flex alignItems=\"center\" css={{ marginTop: \"$12\" }}>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n which meets{\" \"}\n </Text>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Flex\n alignItems=\"center\"\n css={{\n margin: \"0 $2\",\n }}\n >\n <Text\n size=\"md\"\n weight=\"medium\"\n css={{ color: \"$neutral900\", lineHeight: \"$sm\" }}\n >\n {selectedCondition}\n </Text>\n <ChevronDownIcon size={16} color=\"#6A6A6A\" />\n </Flex>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n sideOffset={5}\n css={{\n padding: \"$4 0\",\n minWidth: \"$15\",\n }}\n >\n {topLevelCondition.map((condition) => (\n <DropdownMenuItem\n key={condition.value}\n onClick={() => handleConditionChange(condition.value)}\n css={{\n ...(condition.value === fields.condition && {\n background: \"$primary100\",\n color: \"$neutral900\",\n \"&:hover\": {\n background: \"$primary100\",\n color: \"$neutral900\",\n },\n }),\n }}\n >\n {condition.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n of these conditions\n </Text>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$12\"\n css={{ marginTop: fields?.filters?.length ? \"$12\" : 0 }}\n >\n {fields?.filters?.map((filters: any, index: number) => (\n <Filter\n key={filters.id}\n filters={filters}\n fields={fields}\n hasNestedCondition={hasNestedCondition}\n index={index}\n isEditing={isEditing}\n setIsEditing={setIsEditing}\n setCurrentField={setCurrentField}\n resetEditing={resetEditing}\n addNestedFilterCondition={addNestedFilterCondition}\n setNestedFieldCondition={setNestedFieldCondition}\n removeCurrentFilter={removeCurrentFilter}\n removeNestedField={removeNestedField}\n fieldOptions={fieldOptions}\n />\n ))}\n </Flex>\n <Button\n css={{ marginTop: \"$8\", marginLeft: \"-$2\" }}\n leftIcon={<PlusIcon />}\n variant=\"ghost\"\n size=\"md\"\n onClick={handleAddConditionClick}\n >\n Add Condition\n </Button>\n {hasFiltersWithValues ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginTop: \"$40\" }}>\n <Heading size=\"h5\">Pass Variable to Survey</Heading>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Fields\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isMulti\n closeMenuOnSelect={false}\n isClearable={false}\n value={triggerDetails?.variables}\n onChange={handleVariablesChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n options={variableOptions}\n />\n </Flex>\n {contactUniqueConstraint?.hasUniqueConstraint ? (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`Contact Uniqueness Field for \"${contactUniqueConstraint.label}\"`}\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isClearable={false}\n value={selectedContactUniqueOption}\n onChange={handleContactUniqueFieldChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n }}\n options={variableOptions}\n />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n {hasFiltersWithValues ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginBlock: \"$40\" }}>\n <Heading size=\"h5\">Send Survey</Heading>\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Type\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n value={triggerDetails?.shareType}\n onChange={handleShareTypeChange}\n options={[\n {\n id: 1,\n label: \"Email\",\n value: \"EMAIL\",\n },\n {\n id: 2,\n label: \"SMS\",\n value: \"SMS\",\n },\n {\n id: 3,\n label: \"Whatsapp\",\n value: \"WHATSAPP\",\n },\n ]}\n />\n </Flex>\n {!isEmpty(triggerDetails?.shareType) && (\n <>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Recipient\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n onChange={handleShareRecipientChange}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareRecipient}\n options={filteredShareRecipientOptions}\n />\n </Flex>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Channel\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareChannelOption,\n SingleValue: CustomShareChannelSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareChannel}\n onChange={handleShareChannelChange}\n options={filteredShareChannelOptions}\n />\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n ) : null}\n </Box>\n </Flex>\n );\n};\n\nexport default Trigger;"],"names":["_a","_b","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trigger.js","sources":["../../../../src/triggers/components/trigger.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport {\n Box,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { topLevelCondition } from \"../constants\";\nimport { Filter } from \"./subcomponents\";\nimport {\n CustomShareOption,\n CustomSingleValue,\n CustomMultiValue,\n CustomShareChannelOption,\n CustomShareChannelSingleValue,\n} from \"./custom-share-components\";\nimport { useTriggerState, useFilterManagement, useChannelData } from \"../hooks\";\nimport { hasFiltersWithValues as checkFiltersHaveValues } from \"../utils\";\nimport { isEmpty } from \"../utils\";\nimport { ContactUniqueConstraint } from \"../types\";\n\n/* ----- Types / Interfaces ----- */\n\ntype TriggerProps = {\n fields: any;\n setFields: (fields: any) => void;\n token: string;\n apiURL: string;\n surveyDetails: any;\n hasNestedCondition: boolean;\n shareRecipientOptions: any[];\n shareChannelOptions: any[];\n triggerDetails: any;\n setTriggerDetails: (details: any) => void;\n fieldOptions: any[];\n variableOptions: any[];\n contactUniqueConstraint?: ContactUniqueConstraint;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Trigger component for setting up trigger conditions and actions\n *\n * @param {TriggerProps} props - Component props\n * @returns {JSX.Element} Rendered Trigger component\n */\nconst Trigger: React.FC<TriggerProps> = ({\n fields,\n setFields,\n token,\n apiURL,\n hasNestedCondition,\n surveyDetails,\n shareRecipientOptions,\n shareChannelOptions,\n triggerDetails,\n setTriggerDetails,\n fieldOptions,\n variableOptions,\n contactUniqueConstraint,\n}) => {\n /* ----- Hooks ----- */\n\n const { isEditing, setIsEditing } = useTriggerState();\n\n const {\n addFilterCondition,\n addNestedFilterCondition,\n setCurrentField,\n removeCurrentFilter,\n removeNestedField,\n setNestedFieldCondition,\n } = useFilterManagement({\n setFields,\n setIsEditing,\n });\n\n const { channels } = useChannelData({\n token,\n apiURL,\n surveyId: surveyDetails?.surveyId,\n shareChannelOptions,\n });\n\n const hasFiltersWithValues = useMemo(\n () => checkFiltersHaveValues(fields),\n [fields]\n );\n\n const [passAndSendSectionsUnlocked, setPassAndSendSectionsUnlocked] =\n useState(false);\n\n useEffect(() => {\n if (hasFiltersWithValues) {\n setPassAndSendSectionsUnlocked(true);\n }\n }, [hasFiltersWithValues]);\n\n useEffect(() => {\n if (!fields?.filters?.length) {\n setPassAndSendSectionsUnlocked(false);\n }\n }, [fields?.filters?.length]);\n\n const showPassAndSendSections =\n passAndSendSectionsUnlocked || hasFiltersWithValues;\n\n /* ----- Constants ----- */\n\n const selectedCondition = useMemo(\n () =>\n topLevelCondition.find(\n (condition) => condition.value === fields.condition\n )?.label,\n [fields.condition]\n );\n\n const filteredShareRecipientOptions = useMemo(\n () =>\n shareRecipientOptions?.filter(\n (option: any) => option?.type === triggerDetails.shareType?.value\n ),\n [shareRecipientOptions, triggerDetails.shareType?.value]\n );\n\n const filteredShareChannelOptions = useMemo(() => {\n const filtered = channels.filter(\n (channel: any) => channel?.type === triggerDetails?.shareType?.value\n );\n if (filtered.length) {\n return filtered;\n }\n if (\n triggerDetails?.shareType?.value !== \"WHATSAPP\" &&\n triggerDetails?.shareType?.value !== \"SMS\"\n ) {\n return [\n {\n label: \"New Share \",\n value: \"NEW_SHARE\",\n },\n ];\n }\n return [];\n }, [channels, triggerDetails?.shareType?.value]);\n\n /* ----- Event Handlers ----- */\n\n const setTriggerFields = useCallback(\n (property: string, value: any) => {\n setTriggerDetails((prev: any) => ({\n ...prev,\n [property]: value,\n }));\n },\n [setTriggerDetails]\n );\n\n const handleConditionChange = useCallback(\n (conditionValue: string) => {\n setFields((prev: any) => ({\n ...prev,\n condition: conditionValue,\n }));\n },\n [setFields]\n );\n\n const handleAddConditionClick = useCallback(() => {\n setIsEditing(true);\n addFilterCondition();\n }, [setIsEditing, addFilterCondition]);\n\n const handleVariablesChange = useCallback(\n (field: any) => {\n setTriggerFields(\"variables\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareTypeChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareType\", field);\n setTriggerFields(\"shareRecipient\", null);\n setTriggerFields(\"shareChannel\", null);\n },\n [setTriggerFields]\n );\n\n const handleShareRecipientChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareRecipient\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareChannelChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareChannel\", field);\n },\n [setTriggerFields]\n );\n\n const handleContactUniqueFieldChange = useCallback(\n (field: any) => {\n const constraintKey = contactUniqueConstraint?.value;\n if (!constraintKey) return;\n setTriggerFields(\n \"contactUniqueField\",\n field?.value ? { [constraintKey]: field.value } : null\n );\n },\n [setTriggerFields, contactUniqueConstraint?.value]\n );\n\n const selectedContactUniqueOption = useMemo(() => {\n const constraintKey = contactUniqueConstraint?.value;\n const stored = triggerDetails?.contactUniqueField;\n if (!constraintKey || !stored) return null;\n const variableValue = stored[constraintKey];\n if (!variableValue) return null;\n return (\n variableOptions?.find((option: any) => option?.value === variableValue) ??\n null\n );\n }, [\n contactUniqueConstraint?.value,\n triggerDetails?.contactUniqueField,\n variableOptions,\n ]);\n\n const resetEditing = useCallback(() => {\n setIsEditing(false);\n }, [setIsEditing]);\n\n /* ----- Render ----- */\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Set Condition</Heading>\n <Flex alignItems=\"center\" css={{ marginTop: \"$12\" }}>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n which meets{\" \"}\n </Text>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Flex\n alignItems=\"center\"\n css={{\n margin: \"0 $2\",\n }}\n >\n <Text\n size=\"md\"\n weight=\"medium\"\n css={{ color: \"$neutral900\", lineHeight: \"$sm\" }}\n >\n {selectedCondition}\n </Text>\n <ChevronDownIcon size={16} color=\"#6A6A6A\" />\n </Flex>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n sideOffset={5}\n css={{\n padding: \"$4 0\",\n minWidth: \"$15\",\n }}\n >\n {topLevelCondition.map((condition) => (\n <DropdownMenuItem\n key={condition.value}\n onClick={() => handleConditionChange(condition.value)}\n css={{\n ...(condition.value === fields.condition && {\n background: \"$primary100\",\n color: \"$neutral900\",\n \"&:hover\": {\n background: \"$primary100\",\n color: \"$neutral900\",\n },\n }),\n }}\n >\n {condition.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n of these conditions\n </Text>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$12\"\n css={{ marginTop: fields?.filters?.length ? \"$12\" : 0 }}\n >\n {fields?.filters?.map((filters: any, index: number) => (\n <Filter\n key={filters.id}\n filters={filters}\n fields={fields}\n hasNestedCondition={hasNestedCondition}\n index={index}\n isEditing={isEditing}\n setIsEditing={setIsEditing}\n setCurrentField={setCurrentField}\n resetEditing={resetEditing}\n addNestedFilterCondition={addNestedFilterCondition}\n setNestedFieldCondition={setNestedFieldCondition}\n removeCurrentFilter={removeCurrentFilter}\n removeNestedField={removeNestedField}\n fieldOptions={fieldOptions}\n />\n ))}\n </Flex>\n <Button\n css={{ marginTop: \"$8\", marginLeft: \"-$2\" }}\n leftIcon={<PlusIcon />}\n variant=\"ghost\"\n size=\"md\"\n onClick={handleAddConditionClick}\n >\n Add Condition\n </Button>\n {showPassAndSendSections ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginTop: \"$40\" }}>\n <Heading size=\"h5\">Pass Variable to Survey</Heading>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Fields\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isMulti\n closeMenuOnSelect={false}\n isClearable={false}\n value={triggerDetails?.variables}\n onChange={handleVariablesChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n options={variableOptions}\n />\n </Flex>\n {contactUniqueConstraint?.hasUniqueConstraint ? (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`Contact Uniqueness Field for \"${contactUniqueConstraint.label}\"`}\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isClearable={false}\n value={selectedContactUniqueOption}\n onChange={handleContactUniqueFieldChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n }}\n options={variableOptions}\n />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n {showPassAndSendSections ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginBlock: \"$40\" }}>\n <Heading size=\"h5\">Send Survey</Heading>\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Type\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n value={triggerDetails?.shareType}\n onChange={handleShareTypeChange}\n options={[\n {\n id: 1,\n label: \"Email\",\n value: \"EMAIL\",\n },\n {\n id: 2,\n label: \"SMS\",\n value: \"SMS\",\n },\n {\n id: 3,\n label: \"Whatsapp\",\n value: \"WHATSAPP\",\n },\n ]}\n />\n </Flex>\n {!isEmpty(triggerDetails?.shareType) && (\n <>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Recipient\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n onChange={handleShareRecipientChange}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareRecipient}\n options={filteredShareRecipientOptions}\n />\n </Flex>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Channel\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareChannelOption,\n SingleValue: CustomShareChannelSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareChannel}\n onChange={handleShareChannelChange}\n options={filteredShareChannelOptions}\n />\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n ) : null}\n </Box>\n </Flex>\n );\n};\n\nexport default Trigger;"],"names":["hasFiltersWithValues","checkFiltersHaveValues","_a","_b","React"],"mappings":"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"}
|
|
@@ -11,6 +11,15 @@ const isTriggerDetailsValid = (triggerDetails, contactUniqueConstraint) => {
|
|
|
11
11
|
}
|
|
12
12
|
return true;
|
|
13
13
|
};
|
|
14
|
+
const hasFiltersWithValues = (fields) => {
|
|
15
|
+
var _a;
|
|
16
|
+
return (_a = fields == null ? void 0 : fields.filters) == null ? void 0 : _a.some(
|
|
17
|
+
(filter) => {
|
|
18
|
+
var _a2;
|
|
19
|
+
return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
};
|
|
14
23
|
const isEventSetupDisabled = (actions, objects, eventFields) => {
|
|
15
24
|
return (!actions.value || !objects.value) && (!objects.options.find((object) => object.value === (eventFields == null ? void 0 : eventFields.object)) || !actions.options.find(
|
|
16
25
|
(action) => {
|
|
@@ -36,5 +45,5 @@ const isSaveDisabled = (fields, triggerDetails, contactUniqueConstraint) => {
|
|
|
36
45
|
return !areAllFiltersComplete(fields) || !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint);
|
|
37
46
|
};
|
|
38
47
|
|
|
39
|
-
export { areAllFiltersComplete, isEmpty, isEventSetupDisabled, isSaveDisabled, isTriggerDetailsValid };
|
|
48
|
+
export { areAllFiltersComplete, hasFiltersWithValues, isEmpty, isEventSetupDisabled, isSaveDisabled, isTriggerDetailsValid };
|
|
40
49
|
//# sourceMappingURL=validation.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":"AASO,MAAM,OAAA,GAAU,CAAC,MAAA,KAAyB;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,OAAA,CAAA,CAAO,YAAO,OAAA,CAAQ,MAAA,IAAA,IAAA,GAAA,MAAA,GAAU,EAAE,CAAA,KAA3B,mBAA8B,MAAA,MAAW,CAAA;AAClD;AAQO,MAAM,qBAAA,GAAwB,CACnC,cAAA,EACA,uBAAA,KACY;AACZ,EAAA,MAAM,SAAA,GACJ,CAAC,OAAA,CAAQ,cAAA,CAAe,YAAY,CAAA,IACpC,CAAC,OAAA,CAAQ,cAAA,CAAe,cAAc,CAAA,IACtC,CAAC,OAAA,CAAQ,eAAe,SAAS,CAAA;AAEnC,EAAA,IAAI,CAAC,SAAA;AAAW,IAAA,OAAO,KAAA;AAEvB,EAAA,IAAI,mEAAyB,mBAAA,EAAqB;AAChD,IAAA,OAAO,CAAC,OAAA,CAAQ,cAAA,CAAe,kBAAkB,CAAA;AAAA,EACnD;AAEA,EAAA,OAAO,IAAA;AACT;
|
|
1
|
+
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":"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"}
|