@sparrowengg/integrations-templates-frontend 2.1.0-notion-release.31 → 2.1.0-notion-release.33
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/_virtual/index10.js +2 -2
- package/dist/cjs/_virtual/index9.js +2 -2
- package/dist/cjs/integration-template/index.js +1 -1
- package/dist/cjs/integration-template/index.js.map +1 -1
- package/dist/cjs/mapping/utils/conditionDescriptionBuilder.js +1 -1
- package/dist/cjs/mapping/utils/conditionDescriptionBuilder.js.map +1 -1
- package/dist/cjs/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
- package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/index.js +1 -1
- package/dist/cjs/node_modules/html-dom-parser/node_modules/htmlparser2/lib/index.js +1 -1
- package/dist/es/_virtual/index10.js +2 -2
- package/dist/es/_virtual/index9.js +2 -2
- package/dist/es/integration-template/index.js +1 -1
- package/dist/es/integration-template/index.js.map +1 -1
- package/dist/es/mapping/utils/conditionDescriptionBuilder.js +1 -1
- package/dist/es/mapping/utils/conditionDescriptionBuilder.js.map +1 -1
- package/dist/es/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
- package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/index.js +1 -1
- package/dist/es/node_modules/html-dom-parser/node_modules/htmlparser2/lib/index.js +1 -1
- package/package.json +1 -1
|
@@ -239,7 +239,7 @@ const ConfigureTemplate = ({
|
|
|
239
239
|
mappingDescription,
|
|
240
240
|
triggerDescription
|
|
241
241
|
}) => {
|
|
242
|
-
return /* @__PURE__ */ React.createElement(
|
|
242
|
+
return /* @__PURE__ */ React.createElement(flex.Flex, { css: { width: "100%", height: "95vh", flexDirection: "column", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", alignItems: "center" }, /* @__PURE__ */ React.createElement(heading.Heading, { size: "h5", css: { color: "$neutral900" } }, "Select Configuration Type"), /* @__PURE__ */ React.createElement(
|
|
243
243
|
text.Text,
|
|
244
244
|
{
|
|
245
245
|
size: "sm",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/integration-template/index.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Heading,\n Text,\n ThemeProvider,\n TooltipProvider,\n} from \"@sparrowengg/twigs-react\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport CursorIcon from \"../commons/icons/cursor\";\nimport MappingIcon from \"../commons/icons/mapping\";\nimport Dashboard from \"./components/dashboard\";\nimport DraftModal from \"../commons/components/draftModal\";\nimport { \n FieldOptionsType, \n MappingFieldCollection, \n TriggerFieldCollection, \n} from \"../commons/types/enhanced\";\n\ntype SingleMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\ntype DynamicMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\n\ntype IntegrationTemplateProps = {\n singleMapping?: SingleMappingType,\n hasEditMapping?: boolean,\n draftHandler: (type: string | null) => void;\n onMappingEditHandler: (field: unknown) => void;\n fieldOptions: FieldOptionsType;\n triggerEnabled: boolean;\n mappingEnabled: boolean;\n mappingComponent?: React.ReactElement;\n singleMappingComponent?: React.ReactElement;\n dynamicMapping?: DynamicMappingType,\n dynamicMappingComponent?: React.ReactElement;\n mapping?: {\n mappedFields: MappingFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<MappingFieldCollection>>;\n };\n triggerComponent?: React.ReactElement;\n trigger?: {\n mappedFields: TriggerFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<TriggerFieldCollection>>;\n };\n integrationName: string;\n onDeleteHandler?: (id: string | number) => void\n toggleDashboardField?: (id: string | number, status: boolean) => void;\n dashboardDescription: string;\n mappingDescription: string;\n triggerDescription: string;\n handlePreviousNavigation: () => void;\n surveyType?: string;\n syncMapping?: (id: string | number) => void;\n};\nexport const IntegrationTemplate: React.FC<IntegrationTemplateProps> = ({\n singleMapping,\n hasEditMapping,\n surveyType,\n draftHandler,\n onMappingEditHandler,\n fieldOptions,\n triggerEnabled,\n mappingEnabled,\n mappingComponent,\n singleMappingComponent,\n mapping,\n triggerComponent,\n trigger,\n integrationName,\n onDeleteHandler,\n syncMapping,\n toggleDashboardField,\n dashboardDescription,\n mappingDescription,\n triggerDescription,\n handlePreviousNavigation,\n dynamicMapping,\n dynamicMappingComponent,\n}) => {\n const [isDraftModalOpen, setIsDraftModalOpen] = useState(false);\n const hasMultiAccounts = mappingComponent?.props?.accounts?.hasAccounts;\n const isMappingFieldCompleted = !!mapping?.mappedFields?.fields?.length;\n const isTriggerFieldCompleted = !!trigger?.mappedFields?.length;\n const [hasDashboardPage, setHasDashboardPage] = useState(\n !!singleMapping?.mappedFields?.fields?.length || !!mapping?.mappedFields?.fields?.length || !!trigger?.mappedFields?.length || !!dynamicMapping?.mappedFields?.fields?.length\n );\n const [hasConfigurationType, setHasConfigurationType] = useState(\n (!!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent) && !!triggerComponent\n );\n const [currentConfigurationType, setCurrentConfigurationType] = useState<\n string | null\n >(\n !hasConfigurationType\n ? !!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent\n ? \"MAPPING\"\n : \"TRIGGER\"\n : null\n ); // automatically switch to mapping or trigger screen if any one type is present\n const [editField, setEditField] = useState<any>({});\n const [isMappingPage, setIsMappingPage] = useState(false);\n // temporary previous mapping state to handle within integration template wrapper\n const [tempPreviousMapping, setTempPreviousMapping] = useState(\n !(isMappingFieldCompleted && isTriggerFieldCompleted)\n );\n const navigateMappingPage = (value: boolean) =>\n setIsMappingPage(value ?? !isMappingPage);\n const handleEditField = (field: any) => {\n setEditField({\n type: field.type,\n fieldValues: field.values,\n id: field.id,\n });\n };\n const previousMappingHandler = () => {\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n handlePreviousNavigation();\n if (!(isMappingFieldCompleted || isTriggerFieldCompleted)) {\n setHasDashboardPage(false);\n } else {\n setHasDashboardPage(true);\n }\n return;\n };\n const mappingClonedElementProps = {\n previousMappingHandler,\n draftHandler,\n editField: editField,\n integrationName,\n isMappingPage,\n surveyType: surveyType,\n navigateMappingPage,\n onSaveHandler: (editId?: string | number) => {\n const navigate = mappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? mappingComponent?.props?.hasPreviousMapping,\n };\n const clonedSingleMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await singleMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? singleMappingComponent?.props?.hasPreviousMapping,\n };\n const clonedDynamicMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await dynamicMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? dynamicMappingComponent?.props?.hasPreviousMapping,\n };\n const triggerClonedProps = {\n draftHandler,\n editField,\n previousMappingHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate = await triggerComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n previousMapping:\n tempPreviousMapping ?? triggerComponent?.props?.hasPreviousMapping,\n };\n const ClonedMappingComponent = !!mappingComponent\n ? React.cloneElement(mappingComponent, mappingClonedElementProps)\n : mappingComponent;\n const ClonedSingleMappingComponent = !!singleMappingComponent\n ? React.cloneElement(singleMappingComponent, clonedSingleMappingProps)\n : singleMappingComponent;\n const ClonedDynamicMappingComponent = !!dynamicMappingComponent\n ? React.cloneElement(dynamicMappingComponent, clonedDynamicMappingProps)\n : dynamicMappingComponent;\n const ClonedTriggerComponent = !!triggerComponent\n ? React.cloneElement(triggerComponent, triggerClonedProps)\n : triggerComponent;\n const removeQueryParam = (param: string) => {\n const url = new URL(window.location.href);\n url.searchParams.delete(param);\n window.history.replaceState({}, document.title, url);\n };\n useEffect(() => {\n if (\n !isMappingFieldCompleted &&\n !isTriggerFieldCompleted &&\n hasDashboardPage\n ) {\n // setHasDashboardPage(false);\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n }\n }, [mapping?.mappedFields?.fields, trigger?.mappedFields]);\n useEffect(() => {\n if (\n Object.fromEntries(new URLSearchParams(window.location.search) ?? {})\n .isDraft\n ) {\n setIsDraftModalOpen(true);\n }\n }, [isDraftModalOpen]);\n const onSaveHandler = async () => {\n await draftHandler(currentConfigurationType);\n await previousMappingHandler();\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n \n }\n const onCloseHandler = () => {\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n }\n const onCancelHandler = async () => {\n await previousMappingHandler();\n setIsDraftModalOpen(false);\n }\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\",\n label: \"DM Sans, Roboto Mono, sans-serif\",\n p: {\n margin: '0 !important',\n padding: '0 !important',\n }\n },\n }}\n >\n <TooltipProvider delayDuration={300}>\n {surveyType === \"OfflineApp\" ? <Flex alignItems=\"center\" justifyContent=\"center\" css={{ width: \"100%\", height: \"100vh\" }}>\n <Text size=\"lg\" css={{ color: \"$neutral900\" }} weight={\"medium\"}>This app is not supported for offline surveys</Text>\n </Flex> : <Box css={{ width: \"100%\" }}>\n {hasDashboardPage ? (\n <Dashboard\n onMappingEditHandler={onMappingEditHandler}\n fieldOptions={fieldOptions}\n triggerEnabled={triggerEnabled}\n mappingEnabled={mappingEnabled}\n hasEditMapping={hasEditMapping}\n hasDropdownComponents={{\n mapping: !!ClonedMappingComponent || !!clonedSingleMappingProps || !!ClonedDynamicMappingComponent,\n trigger: !!ClonedTriggerComponent,\n }}\n hasMultiAccounts={hasMultiAccounts}\n dashboardDescription={dashboardDescription}\n integrationName={integrationName}\n mappingFields={mapping?.mappedFields || singleMapping || dynamicMapping?.mappedFields}\n triggerFields={trigger?.mappedFields}\n handleConfigurationType={(value: string) => {\n setCurrentConfigurationType(value);\n setHasDashboardPage(false);\n setTempPreviousMapping(true);\n setEditField({});\n }}\n handleEditField={handleEditField}\n deleteFieldHandler={onDeleteHandler || (() => {})}\n syncMapping={syncMapping}\n toggleDashboardField={toggleDashboardField || (() => {})}\n handleDashboardPage={(value: boolean, type: string) => {\n setHasDashboardPage(value as boolean);\n setCurrentConfigurationType(type);\n setHasConfigurationType(false);\n }}\n />\n ) : (\n <>\n {hasConfigurationType &&\n ![\"MAPPING\", \"TRIGGER\"].includes(\n `${currentConfigurationType}`\n ) ? (\n <ConfigureTemplate\n mappingDescription={mappingDescription}\n triggerDescription={triggerDescription}\n handleConfigurationType={(value: string) =>\n setCurrentConfigurationType(value)\n }\n />\n ) : (\n <>\n {currentConfigurationType === \"MAPPING\" &&\n !!singleMappingComponent\n ? ClonedSingleMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" &&\n !!dynamicMappingComponent\n ? ClonedDynamicMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" && !!mappingComponent\n ? ClonedMappingComponent\n : null}\n {currentConfigurationType !== \"MAPPING\" && !!triggerComponent\n ? ClonedTriggerComponent\n : null}\n </>\n )}\n {isDraftModalOpen && (\n <DraftModal\n onSaveHandler={onSaveHandler}\n onCloseHandler={onCloseHandler}\n onCancel={onCancelHandler}\n />\n )}\n </>\n )}\n </Box>}\n </TooltipProvider>\n </ThemeProvider>\n );\n};\ntype ConfigureTemplateProps = {\n handleConfigurationType: (value: string) => void;\n mappingDescription: string;\n triggerDescription: string;\n};\nconst ConfigureTemplate: React.FC<ConfigureTemplateProps> = ({\n handleConfigurationType,\n mappingDescription,\n triggerDescription,\n}) => {\n return (\n <Box css={{ width: \"100%\", paddingTop: \"$48\" }}>\n <Flex flexDirection=\"column\" alignItems=\"center\">\n <Heading size=\"h5\" css={{ color: \"$neutral900\" }}>\n Select Configuration Type\n </Heading>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral600\", lineHeight: \"$sm\", marginTop: \"$2\" }}\n >\n Choose either Mapping or Triggering to configure their respective\n actions.\n </Text>\n </Flex>\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex\n css={{ maxWidth: 960, width: \"100%\", marginTop: \"$36\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"$20\"\n >\n <TemplateCard\n icon={<CursorIcon />}\n heading=\"Trigger\"\n description={triggerDescription}\n onClickHandler={() => handleConfigurationType(\"TRIGGER\")}\n />\n <TemplateCard\n icon={<MappingIcon />}\n heading=\"Mapping\"\n description={mappingDescription}\n onClickHandler={() => handleConfigurationType(\"MAPPING\")}\n />\n </Flex>\n </Flex>\n </Box>\n );\n};\ntype TemplateCardProps = {\n icon: ReactNode;\n heading: string;\n description: string;\n onClickHandler: () => void;\n};\nconst TemplateCard: React.FC<TemplateCardProps> = ({\n icon,\n heading,\n description,\n onClickHandler,\n}) => {\n return (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n onClick={onClickHandler}\n css={{\n width: 350,\n height: 300,\n outline: \"$borderWidths$xs solid $neutral200\",\n borderRadius: \"$4xl\",\n position: \"relative\",\n cursor: \"pointer\",\n filter: \"drop-shadow(0 4px 8px rgba(0, 0, 0, 0.06))\",\n overflow: \"auto\",\n \"&:hover\": {\n outline: \"$borderWidths$md solid $primary400\",\n \"& svg circle, rect, path\": {\n stroke: \"$primary500\",\n },\n \"& #ellipse\": {\n opacity: \"10%\",\n },\n },\n }}\n >\n <Box\n id=\"ellipse\"\n css={{\n position: \"absolute\",\n top: \"-23%\",\n filter: \"blur(25px)\",\n transition: \"all .4s ease\",\n width: 334,\n height: \"$25\",\n opacity: \"0%\",\n background: \"$primary400\",\n borderRadius: \"50%\",\n }}\n />\n <Box css={{ marginBlock: \"$32 $16\" }}>{icon}</Box>\n <Heading size=\"h6\" css={{ color: \"$neutral900\" }}>\n {heading}\n </Heading>\n <Text\n size=\"md\"\n css={{\n marginTop: \"$8\",\n color: \"$neutral800\",\n width: 222,\n textAlign: \"center\",\n }}\n >\n {description}\n </Text>\n </Flex>\n );\n};"],"names":["useState","_a","useEffect","ThemeProvider","TooltipProvider","Flex","Text","Box","Dashboard","DraftModal","Heading","CursorIcon","MappingIcon","heading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/integration-template/index.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Heading,\n Text,\n ThemeProvider,\n TooltipProvider,\n} from \"@sparrowengg/twigs-react\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport CursorIcon from \"../commons/icons/cursor\";\nimport MappingIcon from \"../commons/icons/mapping\";\nimport Dashboard from \"./components/dashboard\";\nimport DraftModal from \"../commons/components/draftModal\";\nimport { \n FieldOptionsType, \n MappingFieldCollection, \n TriggerFieldCollection, \n} from \"../commons/types/enhanced\";\n\ntype SingleMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\ntype DynamicMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\n\ntype IntegrationTemplateProps = {\n singleMapping?: SingleMappingType,\n hasEditMapping?: boolean,\n draftHandler: (type: string | null) => void;\n onMappingEditHandler: (field: unknown) => void;\n fieldOptions: FieldOptionsType;\n triggerEnabled: boolean;\n mappingEnabled: boolean;\n mappingComponent?: React.ReactElement;\n singleMappingComponent?: React.ReactElement;\n dynamicMapping?: DynamicMappingType,\n dynamicMappingComponent?: React.ReactElement;\n mapping?: {\n mappedFields: MappingFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<MappingFieldCollection>>;\n };\n triggerComponent?: React.ReactElement;\n trigger?: {\n mappedFields: TriggerFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<TriggerFieldCollection>>;\n };\n integrationName: string;\n onDeleteHandler?: (id: string | number) => void\n toggleDashboardField?: (id: string | number, status: boolean) => void;\n dashboardDescription: string;\n mappingDescription: string;\n triggerDescription: string;\n handlePreviousNavigation: () => void;\n surveyType?: string;\n syncMapping?: (id: string | number) => void;\n};\nexport const IntegrationTemplate: React.FC<IntegrationTemplateProps> = ({\n singleMapping,\n hasEditMapping,\n surveyType,\n draftHandler,\n onMappingEditHandler,\n fieldOptions,\n triggerEnabled,\n mappingEnabled,\n mappingComponent,\n singleMappingComponent,\n mapping,\n triggerComponent,\n trigger,\n integrationName,\n onDeleteHandler,\n syncMapping,\n toggleDashboardField,\n dashboardDescription,\n mappingDescription,\n triggerDescription,\n handlePreviousNavigation,\n dynamicMapping,\n dynamicMappingComponent,\n}) => {\n const [isDraftModalOpen, setIsDraftModalOpen] = useState(false);\n const hasMultiAccounts = mappingComponent?.props?.accounts?.hasAccounts;\n const isMappingFieldCompleted = !!mapping?.mappedFields?.fields?.length;\n const isTriggerFieldCompleted = !!trigger?.mappedFields?.length;\n const [hasDashboardPage, setHasDashboardPage] = useState(\n !!singleMapping?.mappedFields?.fields?.length || !!mapping?.mappedFields?.fields?.length || !!trigger?.mappedFields?.length || !!dynamicMapping?.mappedFields?.fields?.length\n );\n const [hasConfigurationType, setHasConfigurationType] = useState(\n (!!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent) && !!triggerComponent\n );\n const [currentConfigurationType, setCurrentConfigurationType] = useState<\n string | null\n >(\n !hasConfigurationType\n ? !!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent\n ? \"MAPPING\"\n : \"TRIGGER\"\n : null\n ); // automatically switch to mapping or trigger screen if any one type is present\n const [editField, setEditField] = useState<any>({});\n const [isMappingPage, setIsMappingPage] = useState(false);\n // temporary previous mapping state to handle within integration template wrapper\n const [tempPreviousMapping, setTempPreviousMapping] = useState(\n !(isMappingFieldCompleted && isTriggerFieldCompleted)\n );\n const navigateMappingPage = (value: boolean) =>\n setIsMappingPage(value ?? !isMappingPage);\n const handleEditField = (field: any) => {\n setEditField({\n type: field.type,\n fieldValues: field.values,\n id: field.id,\n });\n };\n const previousMappingHandler = () => {\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n handlePreviousNavigation();\n if (!(isMappingFieldCompleted || isTriggerFieldCompleted)) {\n setHasDashboardPage(false);\n } else {\n setHasDashboardPage(true);\n }\n return;\n };\n const mappingClonedElementProps = {\n previousMappingHandler,\n draftHandler,\n editField: editField,\n integrationName,\n isMappingPage,\n surveyType: surveyType,\n navigateMappingPage,\n onSaveHandler: (editId?: string | number) => {\n const navigate = mappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? mappingComponent?.props?.hasPreviousMapping,\n };\n const clonedSingleMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await singleMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? singleMappingComponent?.props?.hasPreviousMapping,\n };\n const clonedDynamicMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await dynamicMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? dynamicMappingComponent?.props?.hasPreviousMapping,\n };\n const triggerClonedProps = {\n draftHandler,\n editField,\n previousMappingHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate = await triggerComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n previousMapping:\n tempPreviousMapping ?? triggerComponent?.props?.hasPreviousMapping,\n };\n const ClonedMappingComponent = !!mappingComponent\n ? React.cloneElement(mappingComponent, mappingClonedElementProps)\n : mappingComponent;\n const ClonedSingleMappingComponent = !!singleMappingComponent\n ? React.cloneElement(singleMappingComponent, clonedSingleMappingProps)\n : singleMappingComponent;\n const ClonedDynamicMappingComponent = !!dynamicMappingComponent\n ? React.cloneElement(dynamicMappingComponent, clonedDynamicMappingProps)\n : dynamicMappingComponent;\n const ClonedTriggerComponent = !!triggerComponent\n ? React.cloneElement(triggerComponent, triggerClonedProps)\n : triggerComponent;\n const removeQueryParam = (param: string) => {\n const url = new URL(window.location.href);\n url.searchParams.delete(param);\n window.history.replaceState({}, document.title, url);\n };\n useEffect(() => {\n if (\n !isMappingFieldCompleted &&\n !isTriggerFieldCompleted &&\n hasDashboardPage\n ) {\n // setHasDashboardPage(false);\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n }\n }, [mapping?.mappedFields?.fields, trigger?.mappedFields]);\n useEffect(() => {\n if (\n Object.fromEntries(new URLSearchParams(window.location.search) ?? {})\n .isDraft\n ) {\n setIsDraftModalOpen(true);\n }\n }, [isDraftModalOpen]);\n const onSaveHandler = async () => {\n await draftHandler(currentConfigurationType);\n await previousMappingHandler();\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n \n }\n const onCloseHandler = () => {\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n }\n const onCancelHandler = async () => {\n await previousMappingHandler();\n setIsDraftModalOpen(false);\n }\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\",\n label: \"DM Sans, Roboto Mono, sans-serif\",\n p: {\n margin: '0 !important',\n padding: '0 !important',\n }\n },\n }}\n >\n <TooltipProvider delayDuration={300}>\n {surveyType === \"OfflineApp\" ? <Flex alignItems=\"center\" justifyContent=\"center\" css={{ width: \"100%\", height: \"100vh\" }}>\n <Text size=\"lg\" css={{ color: \"$neutral900\" }} weight={\"medium\"}>This app is not supported for offline surveys</Text>\n </Flex> : <Box css={{ width: \"100%\" }}>\n {hasDashboardPage ? (\n <Dashboard\n onMappingEditHandler={onMappingEditHandler}\n fieldOptions={fieldOptions}\n triggerEnabled={triggerEnabled}\n mappingEnabled={mappingEnabled}\n hasEditMapping={hasEditMapping}\n hasDropdownComponents={{\n mapping: !!ClonedMappingComponent || !!clonedSingleMappingProps || !!ClonedDynamicMappingComponent,\n trigger: !!ClonedTriggerComponent,\n }}\n hasMultiAccounts={hasMultiAccounts}\n dashboardDescription={dashboardDescription}\n integrationName={integrationName}\n mappingFields={mapping?.mappedFields || singleMapping || dynamicMapping?.mappedFields}\n triggerFields={trigger?.mappedFields}\n handleConfigurationType={(value: string) => {\n setCurrentConfigurationType(value);\n setHasDashboardPage(false);\n setTempPreviousMapping(true);\n setEditField({});\n }}\n handleEditField={handleEditField}\n deleteFieldHandler={onDeleteHandler || (() => {})}\n syncMapping={syncMapping}\n toggleDashboardField={toggleDashboardField || (() => {})}\n handleDashboardPage={(value: boolean, type: string) => {\n setHasDashboardPage(value as boolean);\n setCurrentConfigurationType(type);\n setHasConfigurationType(false);\n }}\n />\n ) : (\n <>\n {hasConfigurationType &&\n ![\"MAPPING\", \"TRIGGER\"].includes(\n `${currentConfigurationType}`\n ) ? (\n <ConfigureTemplate\n mappingDescription={mappingDescription}\n triggerDescription={triggerDescription}\n handleConfigurationType={(value: string) =>\n setCurrentConfigurationType(value)\n }\n />\n ) : (\n <>\n {currentConfigurationType === \"MAPPING\" &&\n !!singleMappingComponent\n ? ClonedSingleMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" &&\n !!dynamicMappingComponent\n ? ClonedDynamicMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" && !!mappingComponent\n ? ClonedMappingComponent\n : null}\n {currentConfigurationType !== \"MAPPING\" && !!triggerComponent\n ? ClonedTriggerComponent\n : null}\n </>\n )}\n {isDraftModalOpen && (\n <DraftModal\n onSaveHandler={onSaveHandler}\n onCloseHandler={onCloseHandler}\n onCancel={onCancelHandler}\n />\n )}\n </>\n )}\n </Box>}\n </TooltipProvider>\n </ThemeProvider>\n );\n};\ntype ConfigureTemplateProps = {\n handleConfigurationType: (value: string) => void;\n mappingDescription: string;\n triggerDescription: string;\n};\nconst ConfigureTemplate: React.FC<ConfigureTemplateProps> = ({\n handleConfigurationType,\n mappingDescription,\n triggerDescription,\n}) => {\n return (\n <Flex css={{ width: \"100%\", height: \"95vh\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\" }}>\n <Flex flexDirection=\"column\" alignItems=\"center\">\n <Heading size=\"h5\" css={{ color: \"$neutral900\" }}>\n Select Configuration Type\n </Heading>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral600\", lineHeight: \"$sm\", marginTop: \"$2\" }}\n >\n Choose either Mapping or Triggering to configure their respective\n actions.\n </Text>\n </Flex>\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex\n css={{ maxWidth: 960, width: \"100%\", marginTop: \"$36\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"$20\"\n >\n <TemplateCard\n icon={<CursorIcon />}\n heading=\"Trigger\"\n description={triggerDescription}\n onClickHandler={() => handleConfigurationType(\"TRIGGER\")}\n />\n <TemplateCard\n icon={<MappingIcon />}\n heading=\"Mapping\"\n description={mappingDescription}\n onClickHandler={() => handleConfigurationType(\"MAPPING\")}\n />\n </Flex>\n </Flex>\n </Flex>\n );\n};\ntype TemplateCardProps = {\n icon: ReactNode;\n heading: string;\n description: string;\n onClickHandler: () => void;\n};\nconst TemplateCard: React.FC<TemplateCardProps> = ({\n icon,\n heading,\n description,\n onClickHandler,\n}) => {\n return (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n onClick={onClickHandler}\n css={{\n width: 350,\n height: 300,\n outline: \"$borderWidths$xs solid $neutral200\",\n borderRadius: \"$4xl\",\n position: \"relative\",\n cursor: \"pointer\",\n filter: \"drop-shadow(0 4px 8px rgba(0, 0, 0, 0.06))\",\n overflow: \"auto\",\n \"&:hover\": {\n outline: \"$borderWidths$md solid $primary400\",\n \"& svg circle, rect, path\": {\n stroke: \"$primary500\",\n },\n \"& #ellipse\": {\n opacity: \"10%\",\n },\n },\n }}\n >\n <Box\n id=\"ellipse\"\n css={{\n position: \"absolute\",\n top: \"-23%\",\n filter: \"blur(25px)\",\n transition: \"all .4s ease\",\n width: 334,\n height: \"$25\",\n opacity: \"0%\",\n background: \"$primary400\",\n borderRadius: \"50%\",\n }}\n />\n <Box css={{ marginBlock: \"$32 $16\" }}>{icon}</Box>\n <Heading size=\"h6\" css={{ color: \"$neutral900\" }}>\n {heading}\n </Heading>\n <Text\n size=\"md\"\n css={{\n marginTop: \"$8\",\n color: \"$neutral800\",\n width: 222,\n textAlign: \"center\",\n }}\n >\n {description}\n </Text>\n </Flex>\n );\n};"],"names":["useState","_a","useEffect","ThemeProvider","TooltipProvider","Flex","Text","Box","Dashboard","DraftModal","Heading","CursorIcon","MappingIcon","heading"],"mappings":"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"}
|
|
@@ -189,7 +189,7 @@ const ConditionCard = ({
|
|
|
189
189
|
},
|
|
190
190
|
/* @__PURE__ */ React.createElement("span", null, prefix),
|
|
191
191
|
" ",
|
|
192
|
-
((_d = (_c = (_b = filter == null ? void 0 : filter.property) == null ? void 0 : _b.selectionPath) == null ? void 0 : _c[0]) == null ? void 0 : _d.label) || "
|
|
192
|
+
((_d = (_c = (_b = filter == null ? void 0 : filter.property) == null ? void 0 : _b.selectionPath) == null ? void 0 : _c[0]) == null ? void 0 : _d.label) || " ",
|
|
193
193
|
" ",
|
|
194
194
|
/* @__PURE__ */ React.createElement(text.Text, { as: "span", weight: "bold", css: { color: "$neutral900" } }, propertyLabel),
|
|
195
195
|
" ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditionDescriptionBuilder.js","sources":["../../../../src/mapping/utils/conditionDescriptionBuilder.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Text,\n Box,\n Flex,\n Button,\n IconButton,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n} from \"@sparrowengg/twigs-react\";\nimport {\n PencilIcon,\n EllipsisVerticalIcon,\n} from \"@sparrowengg/twigs-react-icons\";\n\ntype ComparatorType = \"AND\" | \"OR\";\ntype GlobalConnectorType = \"ALL\" | \"ANY\";\n\ntype FilterType = {\n comparator: ComparatorType;\n connector?: {\n dataType: string;\n label: string;\n value: string;\n type: string;\n };\n property: {\n label: string;\n value: string;\n selectionPath?: Array<{ label: string; value: string }>;\n };\n value: {\n NUMBER: number | null;\n DATE: string | null;\n DATE_RANGE: { start: string; end: string } | null;\n DATE_TIME_TIMEZONE: any | null;\n SINGLE_LINE_TEXT: string | null;\n MULTI_LINE_TEXT: string | null;\n SINGLE_SELECT: string | null;\n MULTI_SELECT: string[] | null;\n };\n};\n\ntype FilterGroupType = {\n filters: FilterType[];\n};\n\ntype ConditionsDataType = {\n globalConnector: GlobalConnectorType;\n filterGroups: FilterGroupType[];\n};\n\n/**\n * Formats a value based on its data type\n */\nconst formatValue = (filter: FilterType): string => {\n const { connector, value } = filter;\n\n if (!connector) return \"\";\n\n const dataType = connector.dataType;\n\n switch (dataType) {\n case \"SINGLE_LINE_TEXT\":\n return value.SINGLE_LINE_TEXT || \"\";\n\n case \"NUMBER\":\n return value.NUMBER?.toString() || \"\";\n\n case \"DATE\":\n if (value.DATE) {\n // Format date to be more readable\n const date = new Date(value.DATE);\n return date.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n }\n return \"\";\n\n case \"DATE_RANGE\":\n if (value.DATE_RANGE) {\n const startDate = new Date(value.DATE_RANGE.start);\n const endDate = new Date(value.DATE_RANGE.end);\n const formatDate = (d: Date) =>\n d.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n return `${formatDate(startDate)} to ${formatDate(endDate)}`;\n }\n return \"\";\n\n case \"SINGLE_SELECT\":\n return value.SINGLE_SELECT || \"\";\n\n case \"MULTI_SELECT\":\n if (value.MULTI_SELECT && value.MULTI_SELECT.length > 0) {\n // Get labels from choices if available\n const choices = (connector as any).choices;\n if (choices && Array.isArray(choices)) {\n const labels = value.MULTI_SELECT.map((val) => {\n const choice = choices.find((c: any) => c.value === val);\n return choice ? choice.label : val;\n });\n return labels.join(\", \");\n }\n return value.MULTI_SELECT.join(\", \");\n }\n return \"\";\n\n case \"MULTI_LINE_TEXT\":\n return value.MULTI_LINE_TEXT || \"\";\n\n default:\n return \"\";\n }\n};\n\n/**\n * Builds a description for a single filter\n */\nconst buildFilterDescription = (filter: FilterType): React.ReactNode => {\n // Build property path if selectionPath exists\n let propertyLabel = filter.property.label;\n if (\n filter.property.selectionPath &&\n filter.property.selectionPath.length > 0\n ) {\n // Skip the first item (category) and show the rest if there are more than 1 items\n if (filter.property.selectionPath.length > 1) {\n const pathLabels = filter.property.selectionPath\n .slice(1)\n .map((p) => p.label);\n propertyLabel = [...pathLabels, filter.property.label].join(\" > \");\n }\n }\n\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n return (\n <>\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {formattedValue}\n </Text>\n </>\n );\n};\n\n/**\n * Builds a description for a filter group\n */\nconst buildGroupDescription = (group: FilterGroupType): React.ReactNode => {\n if (group.filters.length === 0) return null;\n\n return (\n <>\n {group.filters.map((filter, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {filter.comparator.toLowerCase()}\n </Text>{\" \"}\n </>\n )}\n {buildFilterDescription(filter)}\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Builds the complete condition description\n */\nexport const buildConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <>\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:{\" \"}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n or\n </Text>{\" \"}\n </>\n )}\n ({buildGroupDescription(group)})\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Alternative: Builds a more detailed, multi-line condition description\n */\nexport const buildDetailedConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <div>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <div key={groupIndex} style={{ marginTop: \"4px\", marginLeft: \"8px\" }}>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n {groupIndex > 0 && (\n <>\n <Text\n as=\"span\"\n weight=\"bold\"\n css={{\n color: \"$neutral700\",\n fontFamily: \"DM Sans !important\",\n }}\n >\n OR\n </Text>{\" \"}\n </>\n )}\n {buildGroupDescription(group)}\n </Text>\n </div>\n ))}\n </div>\n );\n};\n\n/**\n * Configure Icon Component\n */\nconst ConfigureIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_1958_11629)\">\n <path\n d=\"M17.5 14.1668H14.1667M10.8333 14.1668H2.5M2.5 5.8335H5.83333M9.16667 5.8335H17.5M11.6667 11.6668H13.3333C13.7933 11.6668 14.1667 12.0402 14.1667 12.5002V15.8335C14.1667 16.2935 13.7933 16.6668 13.3333 16.6668H11.6667C11.2067 16.6668 10.8333 16.2935 10.8333 15.8335V12.5002C10.8333 12.0402 11.2067 11.6668 11.6667 11.6668ZM8.33333 8.3335H6.66667C6.20667 8.3335 5.83333 7.96016 5.83333 7.50016V4.16683C5.83333 3.70683 6.20667 3.3335 6.66667 3.3335H8.33333C8.79333 3.3335 9.16667 3.70683 9.16667 4.16683V7.50016C9.16667 7.96016 8.79333 8.3335 8.33333 8.3335Z\"\n stroke=\"#64748B\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1958_11629\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport interface ConditionCardProps {\n isEditable?: boolean;\n conditionsData: ConditionsDataType;\n onEditClick?: () => void;\n onClearClick?: () => void;\n showMoreMenu?: boolean;\n}\n\n/**\n * Builds a card-style condition display with edit and clear actions\n */\nexport const ConditionCard: React.FC<ConditionCardProps> = ({\n conditionsData,\n onEditClick,\n onClearClick,\n showMoreMenu = true,\n isEditable = false,\n}) => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <Box\n css={{\n width: \"100%\",\n marginTop: \"$8\",\n backgroundColor: !isEditable ? \"transparent\" : \"#F8F8F8\",\n borderRadius: \"$lg\",\n padding: \"$6 !important\",\n }}\n >\n <Flex flexDirection=\"column\" gap=\"$2\">\n {/* Header Row */}\n <Flex\n alignItems=\"center\"\n gap=\"$4\"\n css={{\n maxHeight: \"20px\",\n }}\n >\n <ConfigureIcon />\n <Flex alignItems=\"center\" gap=\"$8\" css={{ flex: 1 }}>\n <Text\n size=\"sm\"\n css={{\n color: \"$neutral900\",\n fontFamily: \"DM Sans\",\n }}\n >\n When{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n </Flex>\n {isEditable ? <Flex alignItems=\"center\" gap=\"$4\">\n <Button\n leftIcon={<PencilIcon />}\n size=\"sm\"\n variant=\"ghost\"\n color=\"primary\"\n onClick={onEditClick}\n css={{\n fontFamily: \"DM Sans\",\n fontWeight: \"$5\",\n }}\n >\n Edit Conditions\n </Button>\n {showMoreMenu && onClearClick && (\n <DropdownMenu size=\"sm\">\n <DropdownMenuTrigger asChild>\n <IconButton\n size=\"sm\"\n icon={<EllipsisVerticalIcon />}\n variant=\"ghost\"\n color=\"default\"\n css={{\n borderRadius: \"$sm\",\n }}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={onClearClick}>\n Clear Conditions\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </Flex> : null}\n </Flex>\n\n {/* Condition Groups */}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <Box\n key={groupIndex}\n css={{\n paddingLeft: \"$14\",\n }}\n >\n {group.filters.map((filter, filterIndex) => {\n const propertyLabel = filter.property.label;\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n const prefix =\n filterIndex === 0\n ? groupIndex === 0\n ? \"When\"\n : filter?.comparator === \"AND\" ? \"And When\" : \"Or When\"\n : filter.comparator.toLowerCase();\n\n return (\n <Text\n key={filterIndex}\n size=\"sm\"\n weight=\"medium\"\n css={{\n color: \"$neutral800\",\n fontFamily: \"DM Sans\",\n lineHeight: \"$md\",\n span: {\n fontWeight: \"$7\",\n color: \"$neutral900\",\n }\n }}\n >\n <span>{prefix}</span> {filter?.property?.selectionPath?.[0]?.label || \"contact property\"}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {formattedValue}\n </Text>\n </Text>\n );\n })}\n </Box>\n ))}\n </Flex>\n </Box>\n );\n};\n"],"names":["Box","Flex","Text","Button","PencilIcon","DropdownMenu","DropdownMenuTrigger","IconButton","EllipsisVerticalIcon","DropdownMenuContent","DropdownMenuItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conditionDescriptionBuilder.js","sources":["../../../../src/mapping/utils/conditionDescriptionBuilder.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Text,\n Box,\n Flex,\n Button,\n IconButton,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n} from \"@sparrowengg/twigs-react\";\nimport {\n PencilIcon,\n EllipsisVerticalIcon,\n} from \"@sparrowengg/twigs-react-icons\";\n\ntype ComparatorType = \"AND\" | \"OR\";\ntype GlobalConnectorType = \"ALL\" | \"ANY\";\n\ntype FilterType = {\n comparator: ComparatorType;\n connector?: {\n dataType: string;\n label: string;\n value: string;\n type: string;\n };\n property: {\n label: string;\n value: string;\n selectionPath?: Array<{ label: string; value: string }>;\n };\n value: {\n NUMBER: number | null;\n DATE: string | null;\n DATE_RANGE: { start: string; end: string } | null;\n DATE_TIME_TIMEZONE: any | null;\n SINGLE_LINE_TEXT: string | null;\n MULTI_LINE_TEXT: string | null;\n SINGLE_SELECT: string | null;\n MULTI_SELECT: string[] | null;\n };\n};\n\ntype FilterGroupType = {\n filters: FilterType[];\n};\n\ntype ConditionsDataType = {\n globalConnector: GlobalConnectorType;\n filterGroups: FilterGroupType[];\n};\n\n/**\n * Formats a value based on its data type\n */\nconst formatValue = (filter: FilterType): string => {\n const { connector, value } = filter;\n\n if (!connector) return \"\";\n\n const dataType = connector.dataType;\n\n switch (dataType) {\n case \"SINGLE_LINE_TEXT\":\n return value.SINGLE_LINE_TEXT || \"\";\n\n case \"NUMBER\":\n return value.NUMBER?.toString() || \"\";\n\n case \"DATE\":\n if (value.DATE) {\n // Format date to be more readable\n const date = new Date(value.DATE);\n return date.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n }\n return \"\";\n\n case \"DATE_RANGE\":\n if (value.DATE_RANGE) {\n const startDate = new Date(value.DATE_RANGE.start);\n const endDate = new Date(value.DATE_RANGE.end);\n const formatDate = (d: Date) =>\n d.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n return `${formatDate(startDate)} to ${formatDate(endDate)}`;\n }\n return \"\";\n\n case \"SINGLE_SELECT\":\n return value.SINGLE_SELECT || \"\";\n\n case \"MULTI_SELECT\":\n if (value.MULTI_SELECT && value.MULTI_SELECT.length > 0) {\n // Get labels from choices if available\n const choices = (connector as any).choices;\n if (choices && Array.isArray(choices)) {\n const labels = value.MULTI_SELECT.map((val) => {\n const choice = choices.find((c: any) => c.value === val);\n return choice ? choice.label : val;\n });\n return labels.join(\", \");\n }\n return value.MULTI_SELECT.join(\", \");\n }\n return \"\";\n\n case \"MULTI_LINE_TEXT\":\n return value.MULTI_LINE_TEXT || \"\";\n\n default:\n return \"\";\n }\n};\n\n/**\n * Builds a description for a single filter\n */\nconst buildFilterDescription = (filter: FilterType): React.ReactNode => {\n // Build property path if selectionPath exists\n let propertyLabel = filter.property.label;\n if (\n filter.property.selectionPath &&\n filter.property.selectionPath.length > 0\n ) {\n // Skip the first item (category) and show the rest if there are more than 1 items\n if (filter.property.selectionPath.length > 1) {\n const pathLabels = filter.property.selectionPath\n .slice(1)\n .map((p) => p.label);\n propertyLabel = [...pathLabels, filter.property.label].join(\" > \");\n }\n }\n\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n return (\n <>\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {formattedValue}\n </Text>\n </>\n );\n};\n\n/**\n * Builds a description for a filter group\n */\nconst buildGroupDescription = (group: FilterGroupType): React.ReactNode => {\n if (group.filters.length === 0) return null;\n\n return (\n <>\n {group.filters.map((filter, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {filter.comparator.toLowerCase()}\n </Text>{\" \"}\n </>\n )}\n {buildFilterDescription(filter)}\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Builds the complete condition description\n */\nexport const buildConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <>\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:{\" \"}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n or\n </Text>{\" \"}\n </>\n )}\n ({buildGroupDescription(group)})\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Alternative: Builds a more detailed, multi-line condition description\n */\nexport const buildDetailedConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <div>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <div key={groupIndex} style={{ marginTop: \"4px\", marginLeft: \"8px\" }}>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n {groupIndex > 0 && (\n <>\n <Text\n as=\"span\"\n weight=\"bold\"\n css={{\n color: \"$neutral700\",\n fontFamily: \"DM Sans !important\",\n }}\n >\n OR\n </Text>{\" \"}\n </>\n )}\n {buildGroupDescription(group)}\n </Text>\n </div>\n ))}\n </div>\n );\n};\n\n/**\n * Configure Icon Component\n */\nconst ConfigureIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_1958_11629)\">\n <path\n d=\"M17.5 14.1668H14.1667M10.8333 14.1668H2.5M2.5 5.8335H5.83333M9.16667 5.8335H17.5M11.6667 11.6668H13.3333C13.7933 11.6668 14.1667 12.0402 14.1667 12.5002V15.8335C14.1667 16.2935 13.7933 16.6668 13.3333 16.6668H11.6667C11.2067 16.6668 10.8333 16.2935 10.8333 15.8335V12.5002C10.8333 12.0402 11.2067 11.6668 11.6667 11.6668ZM8.33333 8.3335H6.66667C6.20667 8.3335 5.83333 7.96016 5.83333 7.50016V4.16683C5.83333 3.70683 6.20667 3.3335 6.66667 3.3335H8.33333C8.79333 3.3335 9.16667 3.70683 9.16667 4.16683V7.50016C9.16667 7.96016 8.79333 8.3335 8.33333 8.3335Z\"\n stroke=\"#64748B\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1958_11629\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport interface ConditionCardProps {\n isEditable?: boolean;\n conditionsData: ConditionsDataType;\n onEditClick?: () => void;\n onClearClick?: () => void;\n showMoreMenu?: boolean;\n}\n\n/**\n * Builds a card-style condition display with edit and clear actions\n */\nexport const ConditionCard: React.FC<ConditionCardProps> = ({\n conditionsData,\n onEditClick,\n onClearClick,\n showMoreMenu = true,\n isEditable = false,\n}) => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <Box\n css={{\n width: \"100%\",\n marginTop: \"$8\",\n backgroundColor: !isEditable ? \"transparent\" : \"#F8F8F8\",\n borderRadius: \"$lg\",\n padding: \"$6 !important\",\n }}\n >\n <Flex flexDirection=\"column\" gap=\"$2\">\n {/* Header Row */}\n <Flex\n alignItems=\"center\"\n gap=\"$4\"\n css={{\n maxHeight: \"20px\",\n }}\n >\n <ConfigureIcon />\n <Flex alignItems=\"center\" gap=\"$8\" css={{ flex: 1 }}>\n <Text\n size=\"sm\"\n css={{\n color: \"$neutral900\",\n fontFamily: \"DM Sans\",\n }}\n >\n When{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n </Flex>\n {isEditable ? <Flex alignItems=\"center\" gap=\"$4\">\n <Button\n leftIcon={<PencilIcon />}\n size=\"sm\"\n variant=\"ghost\"\n color=\"primary\"\n onClick={onEditClick}\n css={{\n fontFamily: \"DM Sans\",\n fontWeight: \"$5\",\n }}\n >\n Edit Conditions\n </Button>\n {showMoreMenu && onClearClick && (\n <DropdownMenu size=\"sm\">\n <DropdownMenuTrigger asChild>\n <IconButton\n size=\"sm\"\n icon={<EllipsisVerticalIcon />}\n variant=\"ghost\"\n color=\"default\"\n css={{\n borderRadius: \"$sm\",\n }}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={onClearClick}>\n Clear Conditions\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </Flex> : null}\n </Flex>\n\n {/* Condition Groups */}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <Box\n key={groupIndex}\n css={{\n paddingLeft: \"$14\",\n }}\n >\n {group.filters.map((filter, filterIndex) => {\n const propertyLabel = filter.property.label;\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n const prefix =\n filterIndex === 0\n ? groupIndex === 0\n ? \"When\"\n : filter?.comparator === \"AND\" ? \"And When\" : \"Or When\"\n : filter.comparator.toLowerCase();\n\n return (\n <Text\n key={filterIndex}\n size=\"sm\"\n weight=\"medium\"\n css={{\n color: \"$neutral800\",\n fontFamily: \"DM Sans\",\n lineHeight: \"$md\",\n span: {\n fontWeight: \"$7\",\n color: \"$neutral900\",\n }\n }}\n >\n <span>{prefix}</span> {filter?.property?.selectionPath?.[0]?.label || \" \"}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {formattedValue}\n </Text>\n </Text>\n );\n })}\n </Box>\n ))}\n </Flex>\n </Box>\n );\n};\n"],"names":["Box","Flex","Text","Button","PencilIcon","DropdownMenu","DropdownMenuTrigger","IconButton","EllipsisVerticalIcon","DropdownMenuContent","DropdownMenuItem"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('../../../../_virtual/
|
|
3
|
+
var index = require('../../../../_virtual/index9.js');
|
|
4
4
|
var reactIs_production_min = require('./cjs/react-is.production.min.js');
|
|
5
5
|
var reactIs_development = require('./cjs/react-is.development.js');
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _commonjsHelpers = require('../../../../../_virtual/_commonjsHelpers.js');
|
|
4
|
-
var index = require('../../../../../_virtual/
|
|
4
|
+
var index = require('../../../../../_virtual/index10.js');
|
|
5
5
|
require('./stringify.js');
|
|
6
6
|
require('./traversal.js');
|
|
7
7
|
require('./manipulation.js');
|
|
@@ -8,7 +8,7 @@ require('./Tokenizer.js');
|
|
|
8
8
|
require('../../../../domelementtype/lib/index.js');
|
|
9
9
|
require('../../domutils/lib/index.js');
|
|
10
10
|
var index = require('../../../../../_virtual/index5.js');
|
|
11
|
-
var index$1 = require('../../../../../_virtual/
|
|
11
|
+
var index$1 = require('../../../../../_virtual/index10.js');
|
|
12
12
|
var Parser = require('../../../../../_virtual/Parser.js');
|
|
13
13
|
var index$3 = require('../../../../../_virtual/index7.js');
|
|
14
14
|
var Tokenizer = require('../../../../../_virtual/Tokenizer.js');
|
|
@@ -237,7 +237,7 @@ const ConfigureTemplate = ({
|
|
|
237
237
|
mappingDescription,
|
|
238
238
|
triggerDescription
|
|
239
239
|
}) => {
|
|
240
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
240
|
+
return /* @__PURE__ */ React__default.createElement(Flex, { css: { width: "100%", height: "95vh", flexDirection: "column", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", alignItems: "center" }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5", css: { color: "$neutral900" } }, "Select Configuration Type"), /* @__PURE__ */ React__default.createElement(
|
|
241
241
|
Text,
|
|
242
242
|
{
|
|
243
243
|
size: "sm",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/integration-template/index.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Heading,\n Text,\n ThemeProvider,\n TooltipProvider,\n} from \"@sparrowengg/twigs-react\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport CursorIcon from \"../commons/icons/cursor\";\nimport MappingIcon from \"../commons/icons/mapping\";\nimport Dashboard from \"./components/dashboard\";\nimport DraftModal from \"../commons/components/draftModal\";\nimport { \n FieldOptionsType, \n MappingFieldCollection, \n TriggerFieldCollection, \n} from \"../commons/types/enhanced\";\n\ntype SingleMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\ntype DynamicMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\n\ntype IntegrationTemplateProps = {\n singleMapping?: SingleMappingType,\n hasEditMapping?: boolean,\n draftHandler: (type: string | null) => void;\n onMappingEditHandler: (field: unknown) => void;\n fieldOptions: FieldOptionsType;\n triggerEnabled: boolean;\n mappingEnabled: boolean;\n mappingComponent?: React.ReactElement;\n singleMappingComponent?: React.ReactElement;\n dynamicMapping?: DynamicMappingType,\n dynamicMappingComponent?: React.ReactElement;\n mapping?: {\n mappedFields: MappingFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<MappingFieldCollection>>;\n };\n triggerComponent?: React.ReactElement;\n trigger?: {\n mappedFields: TriggerFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<TriggerFieldCollection>>;\n };\n integrationName: string;\n onDeleteHandler?: (id: string | number) => void\n toggleDashboardField?: (id: string | number, status: boolean) => void;\n dashboardDescription: string;\n mappingDescription: string;\n triggerDescription: string;\n handlePreviousNavigation: () => void;\n surveyType?: string;\n syncMapping?: (id: string | number) => void;\n};\nexport const IntegrationTemplate: React.FC<IntegrationTemplateProps> = ({\n singleMapping,\n hasEditMapping,\n surveyType,\n draftHandler,\n onMappingEditHandler,\n fieldOptions,\n triggerEnabled,\n mappingEnabled,\n mappingComponent,\n singleMappingComponent,\n mapping,\n triggerComponent,\n trigger,\n integrationName,\n onDeleteHandler,\n syncMapping,\n toggleDashboardField,\n dashboardDescription,\n mappingDescription,\n triggerDescription,\n handlePreviousNavigation,\n dynamicMapping,\n dynamicMappingComponent,\n}) => {\n const [isDraftModalOpen, setIsDraftModalOpen] = useState(false);\n const hasMultiAccounts = mappingComponent?.props?.accounts?.hasAccounts;\n const isMappingFieldCompleted = !!mapping?.mappedFields?.fields?.length;\n const isTriggerFieldCompleted = !!trigger?.mappedFields?.length;\n const [hasDashboardPage, setHasDashboardPage] = useState(\n !!singleMapping?.mappedFields?.fields?.length || !!mapping?.mappedFields?.fields?.length || !!trigger?.mappedFields?.length || !!dynamicMapping?.mappedFields?.fields?.length\n );\n const [hasConfigurationType, setHasConfigurationType] = useState(\n (!!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent) && !!triggerComponent\n );\n const [currentConfigurationType, setCurrentConfigurationType] = useState<\n string | null\n >(\n !hasConfigurationType\n ? !!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent\n ? \"MAPPING\"\n : \"TRIGGER\"\n : null\n ); // automatically switch to mapping or trigger screen if any one type is present\n const [editField, setEditField] = useState<any>({});\n const [isMappingPage, setIsMappingPage] = useState(false);\n // temporary previous mapping state to handle within integration template wrapper\n const [tempPreviousMapping, setTempPreviousMapping] = useState(\n !(isMappingFieldCompleted && isTriggerFieldCompleted)\n );\n const navigateMappingPage = (value: boolean) =>\n setIsMappingPage(value ?? !isMappingPage);\n const handleEditField = (field: any) => {\n setEditField({\n type: field.type,\n fieldValues: field.values,\n id: field.id,\n });\n };\n const previousMappingHandler = () => {\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n handlePreviousNavigation();\n if (!(isMappingFieldCompleted || isTriggerFieldCompleted)) {\n setHasDashboardPage(false);\n } else {\n setHasDashboardPage(true);\n }\n return;\n };\n const mappingClonedElementProps = {\n previousMappingHandler,\n draftHandler,\n editField: editField,\n integrationName,\n isMappingPage,\n surveyType: surveyType,\n navigateMappingPage,\n onSaveHandler: (editId?: string | number) => {\n const navigate = mappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? mappingComponent?.props?.hasPreviousMapping,\n };\n const clonedSingleMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await singleMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? singleMappingComponent?.props?.hasPreviousMapping,\n };\n const clonedDynamicMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await dynamicMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? dynamicMappingComponent?.props?.hasPreviousMapping,\n };\n const triggerClonedProps = {\n draftHandler,\n editField,\n previousMappingHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate = await triggerComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n previousMapping:\n tempPreviousMapping ?? triggerComponent?.props?.hasPreviousMapping,\n };\n const ClonedMappingComponent = !!mappingComponent\n ? React.cloneElement(mappingComponent, mappingClonedElementProps)\n : mappingComponent;\n const ClonedSingleMappingComponent = !!singleMappingComponent\n ? React.cloneElement(singleMappingComponent, clonedSingleMappingProps)\n : singleMappingComponent;\n const ClonedDynamicMappingComponent = !!dynamicMappingComponent\n ? React.cloneElement(dynamicMappingComponent, clonedDynamicMappingProps)\n : dynamicMappingComponent;\n const ClonedTriggerComponent = !!triggerComponent\n ? React.cloneElement(triggerComponent, triggerClonedProps)\n : triggerComponent;\n const removeQueryParam = (param: string) => {\n const url = new URL(window.location.href);\n url.searchParams.delete(param);\n window.history.replaceState({}, document.title, url);\n };\n useEffect(() => {\n if (\n !isMappingFieldCompleted &&\n !isTriggerFieldCompleted &&\n hasDashboardPage\n ) {\n // setHasDashboardPage(false);\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n }\n }, [mapping?.mappedFields?.fields, trigger?.mappedFields]);\n useEffect(() => {\n if (\n Object.fromEntries(new URLSearchParams(window.location.search) ?? {})\n .isDraft\n ) {\n setIsDraftModalOpen(true);\n }\n }, [isDraftModalOpen]);\n const onSaveHandler = async () => {\n await draftHandler(currentConfigurationType);\n await previousMappingHandler();\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n \n }\n const onCloseHandler = () => {\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n }\n const onCancelHandler = async () => {\n await previousMappingHandler();\n setIsDraftModalOpen(false);\n }\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\",\n label: \"DM Sans, Roboto Mono, sans-serif\",\n p: {\n margin: '0 !important',\n padding: '0 !important',\n }\n },\n }}\n >\n <TooltipProvider delayDuration={300}>\n {surveyType === \"OfflineApp\" ? <Flex alignItems=\"center\" justifyContent=\"center\" css={{ width: \"100%\", height: \"100vh\" }}>\n <Text size=\"lg\" css={{ color: \"$neutral900\" }} weight={\"medium\"}>This app is not supported for offline surveys</Text>\n </Flex> : <Box css={{ width: \"100%\" }}>\n {hasDashboardPage ? (\n <Dashboard\n onMappingEditHandler={onMappingEditHandler}\n fieldOptions={fieldOptions}\n triggerEnabled={triggerEnabled}\n mappingEnabled={mappingEnabled}\n hasEditMapping={hasEditMapping}\n hasDropdownComponents={{\n mapping: !!ClonedMappingComponent || !!clonedSingleMappingProps || !!ClonedDynamicMappingComponent,\n trigger: !!ClonedTriggerComponent,\n }}\n hasMultiAccounts={hasMultiAccounts}\n dashboardDescription={dashboardDescription}\n integrationName={integrationName}\n mappingFields={mapping?.mappedFields || singleMapping || dynamicMapping?.mappedFields}\n triggerFields={trigger?.mappedFields}\n handleConfigurationType={(value: string) => {\n setCurrentConfigurationType(value);\n setHasDashboardPage(false);\n setTempPreviousMapping(true);\n setEditField({});\n }}\n handleEditField={handleEditField}\n deleteFieldHandler={onDeleteHandler || (() => {})}\n syncMapping={syncMapping}\n toggleDashboardField={toggleDashboardField || (() => {})}\n handleDashboardPage={(value: boolean, type: string) => {\n setHasDashboardPage(value as boolean);\n setCurrentConfigurationType(type);\n setHasConfigurationType(false);\n }}\n />\n ) : (\n <>\n {hasConfigurationType &&\n ![\"MAPPING\", \"TRIGGER\"].includes(\n `${currentConfigurationType}`\n ) ? (\n <ConfigureTemplate\n mappingDescription={mappingDescription}\n triggerDescription={triggerDescription}\n handleConfigurationType={(value: string) =>\n setCurrentConfigurationType(value)\n }\n />\n ) : (\n <>\n {currentConfigurationType === \"MAPPING\" &&\n !!singleMappingComponent\n ? ClonedSingleMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" &&\n !!dynamicMappingComponent\n ? ClonedDynamicMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" && !!mappingComponent\n ? ClonedMappingComponent\n : null}\n {currentConfigurationType !== \"MAPPING\" && !!triggerComponent\n ? ClonedTriggerComponent\n : null}\n </>\n )}\n {isDraftModalOpen && (\n <DraftModal\n onSaveHandler={onSaveHandler}\n onCloseHandler={onCloseHandler}\n onCancel={onCancelHandler}\n />\n )}\n </>\n )}\n </Box>}\n </TooltipProvider>\n </ThemeProvider>\n );\n};\ntype ConfigureTemplateProps = {\n handleConfigurationType: (value: string) => void;\n mappingDescription: string;\n triggerDescription: string;\n};\nconst ConfigureTemplate: React.FC<ConfigureTemplateProps> = ({\n handleConfigurationType,\n mappingDescription,\n triggerDescription,\n}) => {\n return (\n <Box css={{ width: \"100%\", paddingTop: \"$48\" }}>\n <Flex flexDirection=\"column\" alignItems=\"center\">\n <Heading size=\"h5\" css={{ color: \"$neutral900\" }}>\n Select Configuration Type\n </Heading>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral600\", lineHeight: \"$sm\", marginTop: \"$2\" }}\n >\n Choose either Mapping or Triggering to configure their respective\n actions.\n </Text>\n </Flex>\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex\n css={{ maxWidth: 960, width: \"100%\", marginTop: \"$36\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"$20\"\n >\n <TemplateCard\n icon={<CursorIcon />}\n heading=\"Trigger\"\n description={triggerDescription}\n onClickHandler={() => handleConfigurationType(\"TRIGGER\")}\n />\n <TemplateCard\n icon={<MappingIcon />}\n heading=\"Mapping\"\n description={mappingDescription}\n onClickHandler={() => handleConfigurationType(\"MAPPING\")}\n />\n </Flex>\n </Flex>\n </Box>\n );\n};\ntype TemplateCardProps = {\n icon: ReactNode;\n heading: string;\n description: string;\n onClickHandler: () => void;\n};\nconst TemplateCard: React.FC<TemplateCardProps> = ({\n icon,\n heading,\n description,\n onClickHandler,\n}) => {\n return (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n onClick={onClickHandler}\n css={{\n width: 350,\n height: 300,\n outline: \"$borderWidths$xs solid $neutral200\",\n borderRadius: \"$4xl\",\n position: \"relative\",\n cursor: \"pointer\",\n filter: \"drop-shadow(0 4px 8px rgba(0, 0, 0, 0.06))\",\n overflow: \"auto\",\n \"&:hover\": {\n outline: \"$borderWidths$md solid $primary400\",\n \"& svg circle, rect, path\": {\n stroke: \"$primary500\",\n },\n \"& #ellipse\": {\n opacity: \"10%\",\n },\n },\n }}\n >\n <Box\n id=\"ellipse\"\n css={{\n position: \"absolute\",\n top: \"-23%\",\n filter: \"blur(25px)\",\n transition: \"all .4s ease\",\n width: 334,\n height: \"$25\",\n opacity: \"0%\",\n background: \"$primary400\",\n borderRadius: \"50%\",\n }}\n />\n <Box css={{ marginBlock: \"$32 $16\" }}>{icon}</Box>\n <Heading size=\"h6\" css={{ color: \"$neutral900\" }}>\n {heading}\n </Heading>\n <Text\n size=\"md\"\n css={{\n marginTop: \"$8\",\n color: \"$neutral800\",\n width: 222,\n textAlign: \"center\",\n }}\n >\n {description}\n </Text>\n </Flex>\n );\n};"],"names":["_a","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/integration-template/index.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Heading,\n Text,\n ThemeProvider,\n TooltipProvider,\n} from \"@sparrowengg/twigs-react\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport CursorIcon from \"../commons/icons/cursor\";\nimport MappingIcon from \"../commons/icons/mapping\";\nimport Dashboard from \"./components/dashboard\";\nimport DraftModal from \"../commons/components/draftModal\";\nimport { \n FieldOptionsType, \n MappingFieldCollection, \n TriggerFieldCollection, \n} from \"../commons/types/enhanced\";\n\ntype SingleMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\ntype DynamicMappingType = {\n mappedFields: {\n type: string;\n fields: unknown[];\n };\n};\n\ntype IntegrationTemplateProps = {\n singleMapping?: SingleMappingType,\n hasEditMapping?: boolean,\n draftHandler: (type: string | null) => void;\n onMappingEditHandler: (field: unknown) => void;\n fieldOptions: FieldOptionsType;\n triggerEnabled: boolean;\n mappingEnabled: boolean;\n mappingComponent?: React.ReactElement;\n singleMappingComponent?: React.ReactElement;\n dynamicMapping?: DynamicMappingType,\n dynamicMappingComponent?: React.ReactElement;\n mapping?: {\n mappedFields: MappingFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<MappingFieldCollection>>;\n };\n triggerComponent?: React.ReactElement;\n trigger?: {\n mappedFields: TriggerFieldCollection;\n setMappedFields: React.Dispatch<React.SetStateAction<TriggerFieldCollection>>;\n };\n integrationName: string;\n onDeleteHandler?: (id: string | number) => void\n toggleDashboardField?: (id: string | number, status: boolean) => void;\n dashboardDescription: string;\n mappingDescription: string;\n triggerDescription: string;\n handlePreviousNavigation: () => void;\n surveyType?: string;\n syncMapping?: (id: string | number) => void;\n};\nexport const IntegrationTemplate: React.FC<IntegrationTemplateProps> = ({\n singleMapping,\n hasEditMapping,\n surveyType,\n draftHandler,\n onMappingEditHandler,\n fieldOptions,\n triggerEnabled,\n mappingEnabled,\n mappingComponent,\n singleMappingComponent,\n mapping,\n triggerComponent,\n trigger,\n integrationName,\n onDeleteHandler,\n syncMapping,\n toggleDashboardField,\n dashboardDescription,\n mappingDescription,\n triggerDescription,\n handlePreviousNavigation,\n dynamicMapping,\n dynamicMappingComponent,\n}) => {\n const [isDraftModalOpen, setIsDraftModalOpen] = useState(false);\n const hasMultiAccounts = mappingComponent?.props?.accounts?.hasAccounts;\n const isMappingFieldCompleted = !!mapping?.mappedFields?.fields?.length;\n const isTriggerFieldCompleted = !!trigger?.mappedFields?.length;\n const [hasDashboardPage, setHasDashboardPage] = useState(\n !!singleMapping?.mappedFields?.fields?.length || !!mapping?.mappedFields?.fields?.length || !!trigger?.mappedFields?.length || !!dynamicMapping?.mappedFields?.fields?.length\n );\n const [hasConfigurationType, setHasConfigurationType] = useState(\n (!!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent) && !!triggerComponent\n );\n const [currentConfigurationType, setCurrentConfigurationType] = useState<\n string | null\n >(\n !hasConfigurationType\n ? !!mappingComponent || !!singleMappingComponent || !!dynamicMappingComponent\n ? \"MAPPING\"\n : \"TRIGGER\"\n : null\n ); // automatically switch to mapping or trigger screen if any one type is present\n const [editField, setEditField] = useState<any>({});\n const [isMappingPage, setIsMappingPage] = useState(false);\n // temporary previous mapping state to handle within integration template wrapper\n const [tempPreviousMapping, setTempPreviousMapping] = useState(\n !(isMappingFieldCompleted && isTriggerFieldCompleted)\n );\n const navigateMappingPage = (value: boolean) =>\n setIsMappingPage(value ?? !isMappingPage);\n const handleEditField = (field: any) => {\n setEditField({\n type: field.type,\n fieldValues: field.values,\n id: field.id,\n });\n };\n const previousMappingHandler = () => {\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n handlePreviousNavigation();\n if (!(isMappingFieldCompleted || isTriggerFieldCompleted)) {\n setHasDashboardPage(false);\n } else {\n setHasDashboardPage(true);\n }\n return;\n };\n const mappingClonedElementProps = {\n previousMappingHandler,\n draftHandler,\n editField: editField,\n integrationName,\n isMappingPage,\n surveyType: surveyType,\n navigateMappingPage,\n onSaveHandler: (editId?: string | number) => {\n const navigate = mappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? mappingComponent?.props?.hasPreviousMapping,\n };\n const clonedSingleMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await singleMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? singleMappingComponent?.props?.hasPreviousMapping,\n };\n const clonedDynamicMappingProps = {\n editField: editField,\n previousMappingHandler,\n draftHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate =\n await dynamicMappingComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n hasPreviousMapping:\n tempPreviousMapping ?? dynamicMappingComponent?.props?.hasPreviousMapping,\n };\n const triggerClonedProps = {\n draftHandler,\n editField,\n previousMappingHandler,\n integrationName,\n onSaveHandler: async (editId?: string | number) => {\n const navigate = await triggerComponent?.props?.onSaveHandler(editId);\n if (navigate) setHasDashboardPage(true);\n },\n previousMapping:\n tempPreviousMapping ?? triggerComponent?.props?.hasPreviousMapping,\n };\n const ClonedMappingComponent = !!mappingComponent\n ? React.cloneElement(mappingComponent, mappingClonedElementProps)\n : mappingComponent;\n const ClonedSingleMappingComponent = !!singleMappingComponent\n ? React.cloneElement(singleMappingComponent, clonedSingleMappingProps)\n : singleMappingComponent;\n const ClonedDynamicMappingComponent = !!dynamicMappingComponent\n ? React.cloneElement(dynamicMappingComponent, clonedDynamicMappingProps)\n : dynamicMappingComponent;\n const ClonedTriggerComponent = !!triggerComponent\n ? React.cloneElement(triggerComponent, triggerClonedProps)\n : triggerComponent;\n const removeQueryParam = (param: string) => {\n const url = new URL(window.location.href);\n url.searchParams.delete(param);\n window.history.replaceState({}, document.title, url);\n };\n useEffect(() => {\n if (\n !isMappingFieldCompleted &&\n !isTriggerFieldCompleted &&\n hasDashboardPage\n ) {\n // setHasDashboardPage(false);\n setHasConfigurationType(true);\n setCurrentConfigurationType(null);\n }\n }, [mapping?.mappedFields?.fields, trigger?.mappedFields]);\n useEffect(() => {\n if (\n Object.fromEntries(new URLSearchParams(window.location.search) ?? {})\n .isDraft\n ) {\n setIsDraftModalOpen(true);\n }\n }, [isDraftModalOpen]);\n const onSaveHandler = async () => {\n await draftHandler(currentConfigurationType);\n await previousMappingHandler();\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n \n }\n const onCloseHandler = () => {\n removeQueryParam(\"isDraft\");\n setIsDraftModalOpen(false);\n }\n const onCancelHandler = async () => {\n await previousMappingHandler();\n setIsDraftModalOpen(false);\n }\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\",\n label: \"DM Sans, Roboto Mono, sans-serif\",\n p: {\n margin: '0 !important',\n padding: '0 !important',\n }\n },\n }}\n >\n <TooltipProvider delayDuration={300}>\n {surveyType === \"OfflineApp\" ? <Flex alignItems=\"center\" justifyContent=\"center\" css={{ width: \"100%\", height: \"100vh\" }}>\n <Text size=\"lg\" css={{ color: \"$neutral900\" }} weight={\"medium\"}>This app is not supported for offline surveys</Text>\n </Flex> : <Box css={{ width: \"100%\" }}>\n {hasDashboardPage ? (\n <Dashboard\n onMappingEditHandler={onMappingEditHandler}\n fieldOptions={fieldOptions}\n triggerEnabled={triggerEnabled}\n mappingEnabled={mappingEnabled}\n hasEditMapping={hasEditMapping}\n hasDropdownComponents={{\n mapping: !!ClonedMappingComponent || !!clonedSingleMappingProps || !!ClonedDynamicMappingComponent,\n trigger: !!ClonedTriggerComponent,\n }}\n hasMultiAccounts={hasMultiAccounts}\n dashboardDescription={dashboardDescription}\n integrationName={integrationName}\n mappingFields={mapping?.mappedFields || singleMapping || dynamicMapping?.mappedFields}\n triggerFields={trigger?.mappedFields}\n handleConfigurationType={(value: string) => {\n setCurrentConfigurationType(value);\n setHasDashboardPage(false);\n setTempPreviousMapping(true);\n setEditField({});\n }}\n handleEditField={handleEditField}\n deleteFieldHandler={onDeleteHandler || (() => {})}\n syncMapping={syncMapping}\n toggleDashboardField={toggleDashboardField || (() => {})}\n handleDashboardPage={(value: boolean, type: string) => {\n setHasDashboardPage(value as boolean);\n setCurrentConfigurationType(type);\n setHasConfigurationType(false);\n }}\n />\n ) : (\n <>\n {hasConfigurationType &&\n ![\"MAPPING\", \"TRIGGER\"].includes(\n `${currentConfigurationType}`\n ) ? (\n <ConfigureTemplate\n mappingDescription={mappingDescription}\n triggerDescription={triggerDescription}\n handleConfigurationType={(value: string) =>\n setCurrentConfigurationType(value)\n }\n />\n ) : (\n <>\n {currentConfigurationType === \"MAPPING\" &&\n !!singleMappingComponent\n ? ClonedSingleMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" &&\n !!dynamicMappingComponent\n ? ClonedDynamicMappingComponent\n : null}\n {currentConfigurationType === \"MAPPING\" && !!mappingComponent\n ? ClonedMappingComponent\n : null}\n {currentConfigurationType !== \"MAPPING\" && !!triggerComponent\n ? ClonedTriggerComponent\n : null}\n </>\n )}\n {isDraftModalOpen && (\n <DraftModal\n onSaveHandler={onSaveHandler}\n onCloseHandler={onCloseHandler}\n onCancel={onCancelHandler}\n />\n )}\n </>\n )}\n </Box>}\n </TooltipProvider>\n </ThemeProvider>\n );\n};\ntype ConfigureTemplateProps = {\n handleConfigurationType: (value: string) => void;\n mappingDescription: string;\n triggerDescription: string;\n};\nconst ConfigureTemplate: React.FC<ConfigureTemplateProps> = ({\n handleConfigurationType,\n mappingDescription,\n triggerDescription,\n}) => {\n return (\n <Flex css={{ width: \"100%\", height: \"95vh\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\" }}>\n <Flex flexDirection=\"column\" alignItems=\"center\">\n <Heading size=\"h5\" css={{ color: \"$neutral900\" }}>\n Select Configuration Type\n </Heading>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral600\", lineHeight: \"$sm\", marginTop: \"$2\" }}\n >\n Choose either Mapping or Triggering to configure their respective\n actions.\n </Text>\n </Flex>\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex\n css={{ maxWidth: 960, width: \"100%\", marginTop: \"$36\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"$20\"\n >\n <TemplateCard\n icon={<CursorIcon />}\n heading=\"Trigger\"\n description={triggerDescription}\n onClickHandler={() => handleConfigurationType(\"TRIGGER\")}\n />\n <TemplateCard\n icon={<MappingIcon />}\n heading=\"Mapping\"\n description={mappingDescription}\n onClickHandler={() => handleConfigurationType(\"MAPPING\")}\n />\n </Flex>\n </Flex>\n </Flex>\n );\n};\ntype TemplateCardProps = {\n icon: ReactNode;\n heading: string;\n description: string;\n onClickHandler: () => void;\n};\nconst TemplateCard: React.FC<TemplateCardProps> = ({\n icon,\n heading,\n description,\n onClickHandler,\n}) => {\n return (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n onClick={onClickHandler}\n css={{\n width: 350,\n height: 300,\n outline: \"$borderWidths$xs solid $neutral200\",\n borderRadius: \"$4xl\",\n position: \"relative\",\n cursor: \"pointer\",\n filter: \"drop-shadow(0 4px 8px rgba(0, 0, 0, 0.06))\",\n overflow: \"auto\",\n \"&:hover\": {\n outline: \"$borderWidths$md solid $primary400\",\n \"& svg circle, rect, path\": {\n stroke: \"$primary500\",\n },\n \"& #ellipse\": {\n opacity: \"10%\",\n },\n },\n }}\n >\n <Box\n id=\"ellipse\"\n css={{\n position: \"absolute\",\n top: \"-23%\",\n filter: \"blur(25px)\",\n transition: \"all .4s ease\",\n width: 334,\n height: \"$25\",\n opacity: \"0%\",\n background: \"$primary400\",\n borderRadius: \"50%\",\n }}\n />\n <Box css={{ marginBlock: \"$32 $16\" }}>{icon}</Box>\n <Heading size=\"h6\" css={{ color: \"$neutral900\" }}>\n {heading}\n </Heading>\n <Text\n size=\"md\"\n css={{\n marginTop: \"$8\",\n color: \"$neutral800\",\n width: 222,\n textAlign: \"center\",\n }}\n >\n {description}\n </Text>\n </Flex>\n );\n};"],"names":["_a","React"],"mappings":"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"}
|
|
@@ -187,7 +187,7 @@ const ConditionCard = ({
|
|
|
187
187
|
},
|
|
188
188
|
/* @__PURE__ */ React__default.createElement("span", null, prefix),
|
|
189
189
|
" ",
|
|
190
|
-
((_d = (_c = (_b = filter == null ? void 0 : filter.property) == null ? void 0 : _b.selectionPath) == null ? void 0 : _c[0]) == null ? void 0 : _d.label) || "
|
|
190
|
+
((_d = (_c = (_b = filter == null ? void 0 : filter.property) == null ? void 0 : _b.selectionPath) == null ? void 0 : _c[0]) == null ? void 0 : _d.label) || " ",
|
|
191
191
|
" ",
|
|
192
192
|
/* @__PURE__ */ React__default.createElement(Text, { as: "span", weight: "bold", css: { color: "$neutral900" } }, propertyLabel),
|
|
193
193
|
" ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditionDescriptionBuilder.js","sources":["../../../../src/mapping/utils/conditionDescriptionBuilder.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Text,\n Box,\n Flex,\n Button,\n IconButton,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n} from \"@sparrowengg/twigs-react\";\nimport {\n PencilIcon,\n EllipsisVerticalIcon,\n} from \"@sparrowengg/twigs-react-icons\";\n\ntype ComparatorType = \"AND\" | \"OR\";\ntype GlobalConnectorType = \"ALL\" | \"ANY\";\n\ntype FilterType = {\n comparator: ComparatorType;\n connector?: {\n dataType: string;\n label: string;\n value: string;\n type: string;\n };\n property: {\n label: string;\n value: string;\n selectionPath?: Array<{ label: string; value: string }>;\n };\n value: {\n NUMBER: number | null;\n DATE: string | null;\n DATE_RANGE: { start: string; end: string } | null;\n DATE_TIME_TIMEZONE: any | null;\n SINGLE_LINE_TEXT: string | null;\n MULTI_LINE_TEXT: string | null;\n SINGLE_SELECT: string | null;\n MULTI_SELECT: string[] | null;\n };\n};\n\ntype FilterGroupType = {\n filters: FilterType[];\n};\n\ntype ConditionsDataType = {\n globalConnector: GlobalConnectorType;\n filterGroups: FilterGroupType[];\n};\n\n/**\n * Formats a value based on its data type\n */\nconst formatValue = (filter: FilterType): string => {\n const { connector, value } = filter;\n\n if (!connector) return \"\";\n\n const dataType = connector.dataType;\n\n switch (dataType) {\n case \"SINGLE_LINE_TEXT\":\n return value.SINGLE_LINE_TEXT || \"\";\n\n case \"NUMBER\":\n return value.NUMBER?.toString() || \"\";\n\n case \"DATE\":\n if (value.DATE) {\n // Format date to be more readable\n const date = new Date(value.DATE);\n return date.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n }\n return \"\";\n\n case \"DATE_RANGE\":\n if (value.DATE_RANGE) {\n const startDate = new Date(value.DATE_RANGE.start);\n const endDate = new Date(value.DATE_RANGE.end);\n const formatDate = (d: Date) =>\n d.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n return `${formatDate(startDate)} to ${formatDate(endDate)}`;\n }\n return \"\";\n\n case \"SINGLE_SELECT\":\n return value.SINGLE_SELECT || \"\";\n\n case \"MULTI_SELECT\":\n if (value.MULTI_SELECT && value.MULTI_SELECT.length > 0) {\n // Get labels from choices if available\n const choices = (connector as any).choices;\n if (choices && Array.isArray(choices)) {\n const labels = value.MULTI_SELECT.map((val) => {\n const choice = choices.find((c: any) => c.value === val);\n return choice ? choice.label : val;\n });\n return labels.join(\", \");\n }\n return value.MULTI_SELECT.join(\", \");\n }\n return \"\";\n\n case \"MULTI_LINE_TEXT\":\n return value.MULTI_LINE_TEXT || \"\";\n\n default:\n return \"\";\n }\n};\n\n/**\n * Builds a description for a single filter\n */\nconst buildFilterDescription = (filter: FilterType): React.ReactNode => {\n // Build property path if selectionPath exists\n let propertyLabel = filter.property.label;\n if (\n filter.property.selectionPath &&\n filter.property.selectionPath.length > 0\n ) {\n // Skip the first item (category) and show the rest if there are more than 1 items\n if (filter.property.selectionPath.length > 1) {\n const pathLabels = filter.property.selectionPath\n .slice(1)\n .map((p) => p.label);\n propertyLabel = [...pathLabels, filter.property.label].join(\" > \");\n }\n }\n\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n return (\n <>\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {formattedValue}\n </Text>\n </>\n );\n};\n\n/**\n * Builds a description for a filter group\n */\nconst buildGroupDescription = (group: FilterGroupType): React.ReactNode => {\n if (group.filters.length === 0) return null;\n\n return (\n <>\n {group.filters.map((filter, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {filter.comparator.toLowerCase()}\n </Text>{\" \"}\n </>\n )}\n {buildFilterDescription(filter)}\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Builds the complete condition description\n */\nexport const buildConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <>\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:{\" \"}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n or\n </Text>{\" \"}\n </>\n )}\n ({buildGroupDescription(group)})\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Alternative: Builds a more detailed, multi-line condition description\n */\nexport const buildDetailedConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <div>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <div key={groupIndex} style={{ marginTop: \"4px\", marginLeft: \"8px\" }}>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n {groupIndex > 0 && (\n <>\n <Text\n as=\"span\"\n weight=\"bold\"\n css={{\n color: \"$neutral700\",\n fontFamily: \"DM Sans !important\",\n }}\n >\n OR\n </Text>{\" \"}\n </>\n )}\n {buildGroupDescription(group)}\n </Text>\n </div>\n ))}\n </div>\n );\n};\n\n/**\n * Configure Icon Component\n */\nconst ConfigureIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_1958_11629)\">\n <path\n d=\"M17.5 14.1668H14.1667M10.8333 14.1668H2.5M2.5 5.8335H5.83333M9.16667 5.8335H17.5M11.6667 11.6668H13.3333C13.7933 11.6668 14.1667 12.0402 14.1667 12.5002V15.8335C14.1667 16.2935 13.7933 16.6668 13.3333 16.6668H11.6667C11.2067 16.6668 10.8333 16.2935 10.8333 15.8335V12.5002C10.8333 12.0402 11.2067 11.6668 11.6667 11.6668ZM8.33333 8.3335H6.66667C6.20667 8.3335 5.83333 7.96016 5.83333 7.50016V4.16683C5.83333 3.70683 6.20667 3.3335 6.66667 3.3335H8.33333C8.79333 3.3335 9.16667 3.70683 9.16667 4.16683V7.50016C9.16667 7.96016 8.79333 8.3335 8.33333 8.3335Z\"\n stroke=\"#64748B\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1958_11629\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport interface ConditionCardProps {\n isEditable?: boolean;\n conditionsData: ConditionsDataType;\n onEditClick?: () => void;\n onClearClick?: () => void;\n showMoreMenu?: boolean;\n}\n\n/**\n * Builds a card-style condition display with edit and clear actions\n */\nexport const ConditionCard: React.FC<ConditionCardProps> = ({\n conditionsData,\n onEditClick,\n onClearClick,\n showMoreMenu = true,\n isEditable = false,\n}) => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <Box\n css={{\n width: \"100%\",\n marginTop: \"$8\",\n backgroundColor: !isEditable ? \"transparent\" : \"#F8F8F8\",\n borderRadius: \"$lg\",\n padding: \"$6 !important\",\n }}\n >\n <Flex flexDirection=\"column\" gap=\"$2\">\n {/* Header Row */}\n <Flex\n alignItems=\"center\"\n gap=\"$4\"\n css={{\n maxHeight: \"20px\",\n }}\n >\n <ConfigureIcon />\n <Flex alignItems=\"center\" gap=\"$8\" css={{ flex: 1 }}>\n <Text\n size=\"sm\"\n css={{\n color: \"$neutral900\",\n fontFamily: \"DM Sans\",\n }}\n >\n When{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n </Flex>\n {isEditable ? <Flex alignItems=\"center\" gap=\"$4\">\n <Button\n leftIcon={<PencilIcon />}\n size=\"sm\"\n variant=\"ghost\"\n color=\"primary\"\n onClick={onEditClick}\n css={{\n fontFamily: \"DM Sans\",\n fontWeight: \"$5\",\n }}\n >\n Edit Conditions\n </Button>\n {showMoreMenu && onClearClick && (\n <DropdownMenu size=\"sm\">\n <DropdownMenuTrigger asChild>\n <IconButton\n size=\"sm\"\n icon={<EllipsisVerticalIcon />}\n variant=\"ghost\"\n color=\"default\"\n css={{\n borderRadius: \"$sm\",\n }}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={onClearClick}>\n Clear Conditions\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </Flex> : null}\n </Flex>\n\n {/* Condition Groups */}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <Box\n key={groupIndex}\n css={{\n paddingLeft: \"$14\",\n }}\n >\n {group.filters.map((filter, filterIndex) => {\n const propertyLabel = filter.property.label;\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n const prefix =\n filterIndex === 0\n ? groupIndex === 0\n ? \"When\"\n : filter?.comparator === \"AND\" ? \"And When\" : \"Or When\"\n : filter.comparator.toLowerCase();\n\n return (\n <Text\n key={filterIndex}\n size=\"sm\"\n weight=\"medium\"\n css={{\n color: \"$neutral800\",\n fontFamily: \"DM Sans\",\n lineHeight: \"$md\",\n span: {\n fontWeight: \"$7\",\n color: \"$neutral900\",\n }\n }}\n >\n <span>{prefix}</span> {filter?.property?.selectionPath?.[0]?.label || \"contact property\"}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {formattedValue}\n </Text>\n </Text>\n );\n })}\n </Box>\n ))}\n </Flex>\n </Box>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conditionDescriptionBuilder.js","sources":["../../../../src/mapping/utils/conditionDescriptionBuilder.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Text,\n Box,\n Flex,\n Button,\n IconButton,\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n} from \"@sparrowengg/twigs-react\";\nimport {\n PencilIcon,\n EllipsisVerticalIcon,\n} from \"@sparrowengg/twigs-react-icons\";\n\ntype ComparatorType = \"AND\" | \"OR\";\ntype GlobalConnectorType = \"ALL\" | \"ANY\";\n\ntype FilterType = {\n comparator: ComparatorType;\n connector?: {\n dataType: string;\n label: string;\n value: string;\n type: string;\n };\n property: {\n label: string;\n value: string;\n selectionPath?: Array<{ label: string; value: string }>;\n };\n value: {\n NUMBER: number | null;\n DATE: string | null;\n DATE_RANGE: { start: string; end: string } | null;\n DATE_TIME_TIMEZONE: any | null;\n SINGLE_LINE_TEXT: string | null;\n MULTI_LINE_TEXT: string | null;\n SINGLE_SELECT: string | null;\n MULTI_SELECT: string[] | null;\n };\n};\n\ntype FilterGroupType = {\n filters: FilterType[];\n};\n\ntype ConditionsDataType = {\n globalConnector: GlobalConnectorType;\n filterGroups: FilterGroupType[];\n};\n\n/**\n * Formats a value based on its data type\n */\nconst formatValue = (filter: FilterType): string => {\n const { connector, value } = filter;\n\n if (!connector) return \"\";\n\n const dataType = connector.dataType;\n\n switch (dataType) {\n case \"SINGLE_LINE_TEXT\":\n return value.SINGLE_LINE_TEXT || \"\";\n\n case \"NUMBER\":\n return value.NUMBER?.toString() || \"\";\n\n case \"DATE\":\n if (value.DATE) {\n // Format date to be more readable\n const date = new Date(value.DATE);\n return date.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n }\n return \"\";\n\n case \"DATE_RANGE\":\n if (value.DATE_RANGE) {\n const startDate = new Date(value.DATE_RANGE.start);\n const endDate = new Date(value.DATE_RANGE.end);\n const formatDate = (d: Date) =>\n d.toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n return `${formatDate(startDate)} to ${formatDate(endDate)}`;\n }\n return \"\";\n\n case \"SINGLE_SELECT\":\n return value.SINGLE_SELECT || \"\";\n\n case \"MULTI_SELECT\":\n if (value.MULTI_SELECT && value.MULTI_SELECT.length > 0) {\n // Get labels from choices if available\n const choices = (connector as any).choices;\n if (choices && Array.isArray(choices)) {\n const labels = value.MULTI_SELECT.map((val) => {\n const choice = choices.find((c: any) => c.value === val);\n return choice ? choice.label : val;\n });\n return labels.join(\", \");\n }\n return value.MULTI_SELECT.join(\", \");\n }\n return \"\";\n\n case \"MULTI_LINE_TEXT\":\n return value.MULTI_LINE_TEXT || \"\";\n\n default:\n return \"\";\n }\n};\n\n/**\n * Builds a description for a single filter\n */\nconst buildFilterDescription = (filter: FilterType): React.ReactNode => {\n // Build property path if selectionPath exists\n let propertyLabel = filter.property.label;\n if (\n filter.property.selectionPath &&\n filter.property.selectionPath.length > 0\n ) {\n // Skip the first item (category) and show the rest if there are more than 1 items\n if (filter.property.selectionPath.length > 1) {\n const pathLabels = filter.property.selectionPath\n .slice(1)\n .map((p) => p.label);\n propertyLabel = [...pathLabels, filter.property.label].join(\" > \");\n }\n }\n\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n return (\n <>\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {formattedValue}\n </Text>\n </>\n );\n};\n\n/**\n * Builds a description for a filter group\n */\nconst buildGroupDescription = (group: FilterGroupType): React.ReactNode => {\n if (group.filters.length === 0) return null;\n\n return (\n <>\n {group.filters.map((filter, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n {filter.comparator.toLowerCase()}\n </Text>{\" \"}\n </>\n )}\n {buildFilterDescription(filter)}\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Builds the complete condition description\n */\nexport const buildConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <>\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:{\" \"}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && (\n <>\n {\" \"}\n <Text\n as=\"span\"\n weight=\"medium\"\n className=\"dm-sans\"\n css={{ color: \"$neutral700\", fontFamily: \"DM Sans !important\" }}\n >\n or\n </Text>{\" \"}\n </>\n )}\n ({buildGroupDescription(group)})\n </React.Fragment>\n ))}\n </>\n );\n};\n\n/**\n * Alternative: Builds a more detailed, multi-line condition description\n */\nexport const buildDetailedConditionDescription = (\n conditionsData: ConditionsDataType\n): React.ReactNode => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <div>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n When{\" \"}\n <Text\n as=\"span\"\n weight=\"bold\"\n className=\"dm-sans\"\n css={{ color: \"$neutral900\", fontFamily: \"DM Sans !important\" }}\n >\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <div key={groupIndex} style={{ marginTop: \"4px\", marginLeft: \"8px\" }}>\n <Text\n size=\"sm\"\n css={{ color: \"$neutral500\", fontFamily: \"DM Sans !important\" }}\n >\n {groupIndex > 0 && (\n <>\n <Text\n as=\"span\"\n weight=\"bold\"\n css={{\n color: \"$neutral700\",\n fontFamily: \"DM Sans !important\",\n }}\n >\n OR\n </Text>{\" \"}\n </>\n )}\n {buildGroupDescription(group)}\n </Text>\n </div>\n ))}\n </div>\n );\n};\n\n/**\n * Configure Icon Component\n */\nconst ConfigureIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_1958_11629)\">\n <path\n d=\"M17.5 14.1668H14.1667M10.8333 14.1668H2.5M2.5 5.8335H5.83333M9.16667 5.8335H17.5M11.6667 11.6668H13.3333C13.7933 11.6668 14.1667 12.0402 14.1667 12.5002V15.8335C14.1667 16.2935 13.7933 16.6668 13.3333 16.6668H11.6667C11.2067 16.6668 10.8333 16.2935 10.8333 15.8335V12.5002C10.8333 12.0402 11.2067 11.6668 11.6667 11.6668ZM8.33333 8.3335H6.66667C6.20667 8.3335 5.83333 7.96016 5.83333 7.50016V4.16683C5.83333 3.70683 6.20667 3.3335 6.66667 3.3335H8.33333C8.79333 3.3335 9.16667 3.70683 9.16667 4.16683V7.50016C9.16667 7.96016 8.79333 8.3335 8.33333 8.3335Z\"\n stroke=\"#64748B\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1958_11629\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport interface ConditionCardProps {\n isEditable?: boolean;\n conditionsData: ConditionsDataType;\n onEditClick?: () => void;\n onClearClick?: () => void;\n showMoreMenu?: boolean;\n}\n\n/**\n * Builds a card-style condition display with edit and clear actions\n */\nexport const ConditionCard: React.FC<ConditionCardProps> = ({\n conditionsData,\n onEditClick,\n onClearClick,\n showMoreMenu = true,\n isEditable = false,\n}) => {\n if (!conditionsData || conditionsData.filterGroups.length === 0) {\n return null;\n }\n\n const globalConnectorText =\n conditionsData.globalConnector === \"ALL\" ? \"all\" : \"any\";\n\n return (\n <Box\n css={{\n width: \"100%\",\n marginTop: \"$8\",\n backgroundColor: !isEditable ? \"transparent\" : \"#F8F8F8\",\n borderRadius: \"$lg\",\n padding: \"$6 !important\",\n }}\n >\n <Flex flexDirection=\"column\" gap=\"$2\">\n {/* Header Row */}\n <Flex\n alignItems=\"center\"\n gap=\"$4\"\n css={{\n maxHeight: \"20px\",\n }}\n >\n <ConfigureIcon />\n <Flex alignItems=\"center\" gap=\"$8\" css={{ flex: 1 }}>\n <Text\n size=\"sm\"\n css={{\n color: \"$neutral900\",\n fontFamily: \"DM Sans\",\n }}\n >\n When{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {globalConnectorText}\n </Text>{\" \"}\n of these conditions are met:\n </Text>\n </Flex>\n {isEditable ? <Flex alignItems=\"center\" gap=\"$4\">\n <Button\n leftIcon={<PencilIcon />}\n size=\"sm\"\n variant=\"ghost\"\n color=\"primary\"\n onClick={onEditClick}\n css={{\n fontFamily: \"DM Sans\",\n fontWeight: \"$5\",\n }}\n >\n Edit Conditions\n </Button>\n {showMoreMenu && onClearClick && (\n <DropdownMenu size=\"sm\">\n <DropdownMenuTrigger asChild>\n <IconButton\n size=\"sm\"\n icon={<EllipsisVerticalIcon />}\n variant=\"ghost\"\n color=\"default\"\n css={{\n borderRadius: \"$sm\",\n }}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={onClearClick}>\n Clear Conditions\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </Flex> : null}\n </Flex>\n\n {/* Condition Groups */}\n {conditionsData.filterGroups.map((group, groupIndex) => (\n <Box\n key={groupIndex}\n css={{\n paddingLeft: \"$14\",\n }}\n >\n {group.filters.map((filter, filterIndex) => {\n const propertyLabel = filter.property.label;\n const operatorLabel = filter.connector?.label || \"\";\n const formattedValue = formatValue(filter);\n\n const prefix =\n filterIndex === 0\n ? groupIndex === 0\n ? \"When\"\n : filter?.comparator === \"AND\" ? \"And When\" : \"Or When\"\n : filter.comparator.toLowerCase();\n\n return (\n <Text\n key={filterIndex}\n size=\"sm\"\n weight=\"medium\"\n css={{\n color: \"$neutral800\",\n fontFamily: \"DM Sans\",\n lineHeight: \"$md\",\n span: {\n fontWeight: \"$7\",\n color: \"$neutral900\",\n }\n }}\n >\n <span>{prefix}</span> {filter?.property?.selectionPath?.[0]?.label || \" \"}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {propertyLabel}\n </Text>{\" \"}\n {operatorLabel}{\" \"}\n <Text as=\"span\" weight=\"bold\" css={{ color: \"$neutral900\" }}>\n {formattedValue}\n </Text>\n </Text>\n );\n })}\n </Box>\n ))}\n </Flex>\n </Box>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __module as reactIs } from '../../../../_virtual/
|
|
1
|
+
import { __module as reactIs } from '../../../../_virtual/index9.js';
|
|
2
2
|
import { __require as requireReactIs_production_min } from './cjs/react-is.production.min.js';
|
|
3
3
|
import { __require as requireReactIs_development } from './cjs/react-is.development.js';
|
|
4
4
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { commonjsGlobal } from '../../../../../_virtual/_commonjsHelpers.js';
|
|
2
|
-
import { __exports as lib } from '../../../../../_virtual/
|
|
2
|
+
import { __exports as lib } from '../../../../../_virtual/index10.js';
|
|
3
3
|
import './stringify.js';
|
|
4
4
|
import './traversal.js';
|
|
5
5
|
import './manipulation.js';
|
|
@@ -6,7 +6,7 @@ import './Tokenizer.js';
|
|
|
6
6
|
import '../../../../domelementtype/lib/index.js';
|
|
7
7
|
import '../../domutils/lib/index.js';
|
|
8
8
|
import { __exports as lib } from '../../../../../_virtual/index5.js';
|
|
9
|
-
import { __exports as lib$1 } from '../../../../../_virtual/
|
|
9
|
+
import { __exports as lib$1 } from '../../../../../_virtual/index10.js';
|
|
10
10
|
import { __exports as Parser } from '../../../../../_virtual/Parser.js';
|
|
11
11
|
import { __exports as lib$3 } from '../../../../../_virtual/index7.js';
|
|
12
12
|
import { __exports as Tokenizer } from '../../../../../_virtual/Tokenizer.js';
|