@sparrowengg/integrations-templates-frontend 8.0.11-Beta → 8.0.14-Beta

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.
@@ -49,7 +49,9 @@ const DynamicMapping = ({
49
49
  requireChangesToUpdate,
50
50
  blockIncompleteMappingRows,
51
51
  hasMappingChanged,
52
- excludeParentQuestionTypesInConditions
52
+ excludeParentQuestionTypesInConditions,
53
+ disabledMappingTypes,
54
+ customTypeOptions
53
55
  }) => {
54
56
  const {
55
57
  ssMappingData,
@@ -167,7 +169,9 @@ const DynamicMapping = ({
167
169
  setMappingConditions,
168
170
  conditionData,
169
171
  conditionDescription,
170
- excludeParentQuestionTypesInConditions
172
+ excludeParentQuestionTypesInConditions,
173
+ disabledMappingTypes,
174
+ customTypeOptions
171
175
  }
172
176
  ) : /* @__PURE__ */ React.createElement(
173
177
  mapping$1.Mapping,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/dynamic-mapping/index.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { Box, Flex, ThemeProvider, TooltipProvider } from '@sparrowengg/twigs-react';\nimport { surveySparrowURL } from '../commons/constants';\nimport { Mapping as MultiMapping } from '../mapping/components/mapping';\nimport {\n IntegrationField,\n ConfigurationFieldValue,\n MappingData,\n} from '../commons/types/enhanced';\nimport { FieldType, CustomListFieldType, OldResponseFieldType } from '../mapping/types';\nimport { MappingHeader, ConfigurationSetup, Mapping } from './components';\nimport { useDynamicMappingState, useFieldChanges } from './hooks';\n\n/* ----- Types / Interfaces ----- */\n\ntype DynamicMappingPropsType = {\n forceDisableMappingCTA?: boolean;\n mappingType?: string;\n /**\n * Opt-in (default off/undefined). Enables Enrich (derived question) support:\n * the \"Enrich\" mapped type in the field dropdown, and Enrich fields as\n * operands in the condition builder's filters.\n */\n hasDerivedQuestions?: boolean;\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n currentMappingName?: string;\n setMappingName?: (value: string) => void;\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string | unknown } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: any;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n surveyType: string;\n havingTypeDropdown: boolean;\n fields: Array<FieldType>;\n setFields: React.Dispatch<React.SetStateAction<Array<FieldType>>>;\n surveyId: string | number;\n integrationName: string;\n customList: CustomListFieldType;\n oldResponse: OldResponseFieldType;\n hasNamingModal?: boolean;\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n /** When true, includes Response PDF in submission properties; when omitted, it is hidden. */\n hasResponsePDF?: boolean;\n /**\n * Opt-in (default off/undefined = current behavior). When true, disables the\n * Update button in edit mode (MULTI_MAPPING) if nothing has changed.\n */\n requireChangesToUpdate?: boolean;\n /**\n * Opt-in (default off/undefined = current behavior). When true, disables\n * save/update (MULTI_MAPPING) if any common field row is completely empty.\n */\n blockIncompleteMappingRows?: boolean;\n /**\n * Reliable caller-supplied change signal (snapshot-based, includes the\n * mapping name). When provided, drives the naming-modal Update button's\n * disabled state (with requireChangesToUpdate) instead of the internal\n * hasFieldsChanged, which is unreliable for MULTI_MAPPING.\n */\n hasMappingChanged?: boolean;\n /**\n * Opt-in (default off/undefined = current behavior). When true, excludes\n * parent/complex question types (e.g. Matrix, GroupRating) from the\n * condition builder's 'questions' options, since they have no answer of\n * their own. Their child questions remain selectable.\n */\n excludeParentQuestionTypesInConditions?: boolean;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Dynamic mapping component for configuring and mapping integration fields\n * \n * @param {DynamicMappingPropsType} props - Component props\n * @returns {JSX.Element} Dynamic mapping component\n * \n * @example\n * <DynamicMapping\n * integrationFields={fields}\n * configuration={config}\n * surveyDetails={survey}\n * onSaveHandler={handleSave}\n * />\n */\nexport const DynamicMapping = ({\n forceDisableMappingCTA,\n mappingType,\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n hasDerivedQuestions,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n surveyType,\n havingTypeDropdown,\n fields,\n setFields,\n surveyId,\n integrationName,\n customList,\n oldResponse,\n hasNamingModal,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n hasResponsePDF,\n requireChangesToUpdate,\n blockIncompleteMappingRows,\n hasMappingChanged,\n excludeParentQuestionTypesInConditions,\n}: DynamicMappingPropsType): JSX.Element => {\n const {\n ssMappingData,\n setSSMappingData,\n isEditConfirmationOpen,\n setIsEditConfirmationOpen,\n originalMappingData,\n setOriginalMappingData,\n originalConfigurationFields,\n setOriginalConfigurationFields,\n originalConfiguredFields,\n setOriginalConfiguredFields,\n originalImportResponse,\n setOriginalImportResponse,\n isInitialLoad,\n setIsInitialLoad,\n essentialFields,\n commonFields,\n } = useDynamicMappingState(fields);\n\n const hasFieldsChanged = useFieldChanges({\n editField,\n originalMappingData,\n ssMappingData,\n originalConfigurationFields,\n configurationFields: configuration.configurationFields,\n originalConfiguredFields,\n configuredFields: configuration.configuredFields,\n originalImportResponse,\n importResponse,\n isInitialLoad,\n });\n\n const handleSaveConfiguration = useCallback(async () => {\n return configuration.onSaveHandler();\n }, [configuration]);\n\n const handleNavigateConfigPage = useCallback(() => {\n navigateMappingPage(false);\n }, [navigateMappingPage]);\n\n const handleSave = useCallback(() => {\n onSaveHandler(editField?.id ? editField : {});\n }, [onSaveHandler, editField]);\n\n const isMultiMapping = useMemo(\n () => mappingType === 'MULTI_MAPPING',\n [mappingType]\n );\n\n const showConfiguration = useMemo(\n () => !isMappingPage && configuration.hasConfiguration,\n [isMappingPage, configuration.hasConfiguration]\n );\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: 'DM Sans, Roboto Mono, sans-serif',\n heading: 'DM Sans, Roboto Mono, sans-serif',\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: '100%' }}>\n <MappingHeader\n forceDisableMappingCTA={forceDisableMappingCTA}\n hasNamingModal={hasNamingModal}\n mappingType={mappingType ?? ''}\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSave}\n essentialFields={essentialFields}\n commonFields={commonFields}\n requireChangesToUpdate={requireChangesToUpdate}\n blockIncompleteMappingRows={blockIncompleteMappingRows}\n hasMappingChanged={hasMappingChanged}\n />\n\n {showConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: '$40' }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <>\n {isMultiMapping ? (\n <MultiMapping\n hasDerivedQuestions={hasDerivedQuestions}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n fields={fields}\n setFields={setFields}\n surveyDetails={surveyDetails}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n surveyId={surveyDetails.surveyId}\n token={token}\n apiURL={apiURL}\n integrationName={integrationName}\n customList={customList}\n oldResponse={oldResponse}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n excludeParentQuestionTypesInConditions={excludeParentQuestionTypesInConditions}\n />\n ) : (\n <Mapping\n hasDerivedQuestions={hasDerivedQuestions}\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n hasResponsePDF={hasResponsePDF}\n excludeParentQuestionTypesInConditions={excludeParentQuestionTypesInConditions}\n />\n )}\n </>\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n"],"names":["surveySparrowURL","useDynamicMappingState","useFieldChanges","useCallback","useMemo","ThemeProvider","TooltipProvider","Box","MappingHeader","Flex","ConfigurationSetup","MultiMapping","Mapping"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/dynamic-mapping/index.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { Box, Flex, ThemeProvider, TooltipProvider } from '@sparrowengg/twigs-react';\nimport { surveySparrowURL } from '../commons/constants';\nimport { Mapping as MultiMapping } from '../mapping/components/mapping';\nimport {\n IntegrationField,\n ConfigurationFieldValue,\n MappingData,\n} from '../commons/types/enhanced';\nimport { FieldType, CustomListFieldType, OldResponseFieldType } from '../mapping/types';\nimport { MappingHeader, ConfigurationSetup, Mapping } from './components';\nimport { useDynamicMappingState, useFieldChanges } from './hooks';\n\n/* ----- Types / Interfaces ----- */\n\ntype DynamicMappingPropsType = {\n forceDisableMappingCTA?: boolean;\n mappingType?: string;\n /**\n * Opt-in (default off/undefined). Enables Enrich (derived question) support:\n * the \"Enrich\" mapped type in the field dropdown, and Enrich fields as\n * operands in the condition builder's filters.\n */\n hasDerivedQuestions?: boolean;\n hasPreviousMapping?: boolean;\n integrationFields: IntegrationField[];\n configuration: {\n currentMappingName?: string;\n setMappingName?: (value: string) => void;\n importOptions: {\n showImportOptions: boolean;\n excludeResponse: {\n id: number | string;\n label: string;\n ifChecked: () => string;\n ifUnchecked: (period: string) => string;\n fieldType: string;\n value: boolean | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n options: Array<{\n id: number | string;\n label: string;\n value: string | null;\n disabled?: boolean;\n description: string;\n type: string | null;\n tooltip?: string;\n minValue?: string;\n maxValue?: string;\n }>;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n };\n hasConfiguration: boolean;\n configuredFields: any;\n configurationFields: Array<{\n id: number | string;\n label: string;\n fieldType: string;\n hasAddNewOption?: boolean;\n tooltip?: string;\n options?: Array<{ label: string; value: string }>;\n value: { label: string; value: string | unknown } | string | null;\n onChangeHandler: (value: ConfigurationFieldValue) => void;\n }>;\n onSaveHandler: any;\n };\n token?: string;\n isMappingPage: boolean;\n navigateMappingPage: (value?: boolean) => void;\n apiURL?: string;\n surveyDetails: {\n surveyName: string;\n surveyId: string | number;\n surveyProperties?: any;\n };\n onSaveHandler: (fields: any) => void;\n setIntegrationFields: React.Dispatch<React.SetStateAction<any>>;\n hasExistingMapping: boolean;\n importResponse: {\n hasImportResponse: boolean;\n value: any;\n onChangeHandler: (value: any) => void;\n };\n editField?: any;\n previousMappingHandler?: (value?: boolean) => void;\n surveyType: string;\n havingTypeDropdown: boolean;\n fields: Array<FieldType>;\n setFields: React.Dispatch<React.SetStateAction<Array<FieldType>>>;\n surveyId: string | number;\n integrationName: string;\n customList: CustomListFieldType;\n oldResponse: OldResponseFieldType;\n hasNamingModal?: boolean;\n hasConditions?: boolean;\n mappingConditions?: any;\n setMappingConditions?: (value: any) => void;\n conditionData?: any;\n conditionDescription?: string;\n /** When true, includes Response PDF in submission properties; when omitted, it is hidden. */\n hasResponsePDF?: boolean;\n /**\n * Opt-in (default off/undefined = current behavior). When true, disables the\n * Update button in edit mode (MULTI_MAPPING) if nothing has changed.\n */\n requireChangesToUpdate?: boolean;\n /**\n * Opt-in (default off/undefined = current behavior). When true, disables\n * save/update (MULTI_MAPPING) if any common field row is completely empty.\n */\n blockIncompleteMappingRows?: boolean;\n /**\n * Reliable caller-supplied change signal (snapshot-based, includes the\n * mapping name). When provided, drives the naming-modal Update button's\n * disabled state (with requireChangesToUpdate) instead of the internal\n * hasFieldsChanged, which is unreliable for MULTI_MAPPING.\n */\n hasMappingChanged?: boolean;\n /**\n * Opt-in (default off/undefined = current behavior). When true, excludes\n * parent/complex question types (e.g. Matrix, GroupRating) from the\n * condition builder's 'questions' options, since they have no answer of\n * their own. Their child questions remain selectable.\n */\n excludeParentQuestionTypesInConditions?: boolean;\n /** Type values to disable in the field-type Select (e.g. ['QUESTION', 'VARIABLE']). */\n disabledMappingTypes?: string[];\n\n /** Extra options injected per type value into the SurveySparrow Field Select. */\n customTypeOptions?: Record<string, any[]>;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Dynamic mapping component for configuring and mapping integration fields\n * \n * @param {DynamicMappingPropsType} props - Component props\n * @returns {JSX.Element} Dynamic mapping component\n * \n * @example\n * <DynamicMapping\n * integrationFields={fields}\n * configuration={config}\n * surveyDetails={survey}\n * onSaveHandler={handleSave}\n * />\n */\nexport const DynamicMapping = ({\n forceDisableMappingCTA,\n mappingType,\n integrationFields,\n configuration,\n isMappingPage,\n navigateMappingPage,\n setIntegrationFields,\n hasDerivedQuestions,\n token,\n apiURL = surveySparrowURL,\n surveyDetails,\n importResponse,\n hasExistingMapping,\n onSaveHandler,\n editField,\n previousMappingHandler,\n surveyType,\n havingTypeDropdown,\n fields,\n setFields,\n surveyId,\n integrationName,\n customList,\n oldResponse,\n hasNamingModal,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n conditionDescription,\n hasResponsePDF,\n requireChangesToUpdate,\n blockIncompleteMappingRows,\n hasMappingChanged,\n excludeParentQuestionTypesInConditions,\n disabledMappingTypes,\n customTypeOptions,\n}: DynamicMappingPropsType): JSX.Element => {\n const {\n ssMappingData,\n setSSMappingData,\n isEditConfirmationOpen,\n setIsEditConfirmationOpen,\n originalMappingData,\n setOriginalMappingData,\n originalConfigurationFields,\n setOriginalConfigurationFields,\n originalConfiguredFields,\n setOriginalConfiguredFields,\n originalImportResponse,\n setOriginalImportResponse,\n isInitialLoad,\n setIsInitialLoad,\n essentialFields,\n commonFields,\n } = useDynamicMappingState(fields);\n\n const hasFieldsChanged = useFieldChanges({\n editField,\n originalMappingData,\n ssMappingData,\n originalConfigurationFields,\n configurationFields: configuration.configurationFields,\n originalConfiguredFields,\n configuredFields: configuration.configuredFields,\n originalImportResponse,\n importResponse,\n isInitialLoad,\n });\n\n const handleSaveConfiguration = useCallback(async () => {\n return configuration.onSaveHandler();\n }, [configuration]);\n\n const handleNavigateConfigPage = useCallback(() => {\n navigateMappingPage(false);\n }, [navigateMappingPage]);\n\n const handleSave = useCallback(() => {\n onSaveHandler(editField?.id ? editField : {});\n }, [onSaveHandler, editField]);\n\n const isMultiMapping = useMemo(\n () => mappingType === 'MULTI_MAPPING',\n [mappingType]\n );\n\n const showConfiguration = useMemo(\n () => !isMappingPage && configuration.hasConfiguration,\n [isMappingPage, configuration.hasConfiguration]\n );\n\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: 'DM Sans, Roboto Mono, sans-serif',\n heading: 'DM Sans, Roboto Mono, sans-serif',\n },\n }}\n >\n <TooltipProvider>\n <Box css={{ width: '100%' }}>\n <MappingHeader\n forceDisableMappingCTA={forceDisableMappingCTA}\n hasNamingModal={hasNamingModal}\n mappingType={mappingType ?? ''}\n isEditConfirmationOpen={isEditConfirmationOpen}\n setIsEditConfirmationOpen={setIsEditConfirmationOpen}\n editField={editField}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n configuration={configuration}\n hasFieldsChanged={hasFieldsChanged}\n saveConfiguration={handleSaveConfiguration}\n isMappingPage={isMappingPage}\n hasExistingMapping={hasExistingMapping}\n navigateConfigPage={handleNavigateConfigPage}\n previousMappingHandler={previousMappingHandler}\n onSaveHandler={handleSave}\n essentialFields={essentialFields}\n commonFields={commonFields}\n requireChangesToUpdate={requireChangesToUpdate}\n blockIncompleteMappingRows={blockIncompleteMappingRows}\n hasMappingChanged={hasMappingChanged}\n />\n\n {showConfiguration ? (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: '$40' }}\n >\n <ConfigurationSetup\n configuration={configuration}\n surveyName={surveyDetails.surveyName}\n editField={editField}\n />\n </Flex>\n ) : (\n <>\n {isMultiMapping ? (\n <MultiMapping\n hasDerivedQuestions={hasDerivedQuestions}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n fields={fields}\n setFields={setFields}\n surveyDetails={surveyDetails}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n surveyId={surveyDetails.surveyId}\n token={token}\n apiURL={apiURL}\n integrationName={integrationName}\n customList={customList}\n oldResponse={oldResponse}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n excludeParentQuestionTypesInConditions={excludeParentQuestionTypesInConditions}\n disabledMappingTypes={disabledMappingTypes}\n customTypeOptions={customTypeOptions}\n />\n ) : (\n <Mapping\n hasDerivedQuestions={hasDerivedQuestions}\n setOriginalMappingData={setOriginalMappingData}\n integrationFields={integrationFields}\n setIntegrationFields={setIntegrationFields}\n token={token}\n setIsInitialLoad={setIsInitialLoad}\n apiURL={apiURL}\n surveyId={surveyDetails.surveyId}\n surveyProperties={surveyDetails.surveyProperties}\n importResponse={importResponse}\n ssMappingData={ssMappingData}\n setSSMappingData={setSSMappingData}\n editField={editField}\n hasConditions={hasConditions}\n mappingConditions={mappingConditions}\n setMappingConditions={setMappingConditions}\n conditionData={conditionData}\n conditionDescription={conditionDescription}\n hasResponsePDF={hasResponsePDF}\n excludeParentQuestionTypesInConditions={excludeParentQuestionTypesInConditions}\n />\n )}\n </>\n )}\n </Box>\n </TooltipProvider>\n </ThemeProvider>\n );\n};\n"],"names":["surveySparrowURL","useDynamicMappingState","useFieldChanges","useCallback","useMemo","ThemeProvider","TooltipProvider","Box","MappingHeader","Flex","ConfigurationSetup","MultiMapping","Mapping"],"mappings":"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"}
@@ -66,9 +66,11 @@ const Field = ({
66
66
  hasCustomMenuProperty,
67
67
  isBtnDisabled,
68
68
  removeField,
69
- showCustomPropertyModal
69
+ showCustomPropertyModal,
70
+ disabledMappingTypes,
71
+ customTypeOptions
70
72
  }) => {
71
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
73
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
72
74
  React.useEffect(() => {
73
75
  if (!field.integrationField) {
74
76
  const foundField = integrationFields.find(
@@ -108,7 +110,7 @@ const Field = ({
108
110
  size: "lg",
109
111
  isSearchable: false,
110
112
  value: field == null ? void 0 : field.mappedType,
111
- options: hasDerivedQuestions ? index.mappingType : index.mappingType.filter((type) => (type == null ? void 0 : type.value) !== "DERIVED_QUESTION"),
113
+ options: (hasDerivedQuestions ? index.mappingType : index.mappingType.filter((type) => (type == null ? void 0 : type.value) !== "DERIVED_QUESTION")).filter((type) => !(disabledMappingTypes == null ? void 0 : disabledMappingTypes.includes(type.value))),
112
114
  onChange: (type) => handleFieldValue(field == null ? void 0 : field.id, "type", type),
113
115
  styles: customStyles
114
116
  }
@@ -120,18 +122,21 @@ const Field = ({
120
122
  placeholder: "Choose",
121
123
  value: field == null ? void 0 : field.surveySparrowField,
122
124
  onChange: (ssField) => handleFieldValue(field == null ? void 0 : field.id, "surveySparrowField", ssField),
123
- options: (_c = index$1.handleMappingOptions(
124
- (_b = (_a = field == null ? void 0 : field.mappedType) == null ? void 0 : _a.value) != null ? _b : "QUESTION",
125
- ssMappingData.questions,
126
- ssMappingData.contactProperties,
127
- ssMappingData.derivedQuestions,
128
- ssMappingData.variables,
129
- ssMappingData.expressions,
130
- index.integrationsNpsSubmissionProperties,
131
- index.integrationsClassicSubmissionProperties,
132
- surveyType,
133
- hasSurveyProperties
134
- )) == null ? void 0 : _c.map((option) => {
125
+ options: [
126
+ ...(_c = index$1.handleMappingOptions(
127
+ (_b = (_a = field == null ? void 0 : field.mappedType) == null ? void 0 : _a.value) != null ? _b : "QUESTION",
128
+ ssMappingData.questions,
129
+ ssMappingData.contactProperties,
130
+ ssMappingData.derivedQuestions,
131
+ ssMappingData.variables,
132
+ ssMappingData.expressions,
133
+ index.integrationsNpsSubmissionProperties,
134
+ index.integrationsClassicSubmissionProperties,
135
+ surveyType,
136
+ hasSurveyProperties
137
+ )) != null ? _c : [],
138
+ ...(_f = customTypeOptions == null ? void 0 : customTypeOptions[(_e = (_d = field == null ? void 0 : field.mappedType) == null ? void 0 : _d.value) != null ? _e : "QUESTION"]) != null ? _f : []
139
+ ].map((option) => {
135
140
  var _a2;
136
141
  if (!(option == null ? void 0 : option.label) || !((_a2 = option == null ? void 0 : option.label) == null ? void 0 : _a2.length)) {
137
142
  return __spreadProps(__spreadValues({}, option), {
@@ -157,7 +162,7 @@ const Field = ({
157
162
  {
158
163
  placeholder: "Choose",
159
164
  size: "lg",
160
- value: (_d = field == null ? void 0 : field.integrationField) != null ? _d : integrationFields.find(
165
+ value: (_g = field == null ? void 0 : field.integrationField) != null ? _g : integrationFields.find(
161
166
  (integrationField) => integrationField.label === (field == null ? void 0 : field.essentialFieldLabel)
162
167
  ),
163
168
  isDisabled: !!integrationFields.find(
@@ -195,7 +200,7 @@ const Field = ({
195
200
  border: "$borderWidths$xs solid $neutral200"
196
201
  }
197
202
  },
198
- isDisabled: !((_e = field == null ? void 0 : field.integrationField) == null ? void 0 : _e.value),
203
+ isDisabled: !((_h = field == null ? void 0 : field.integrationField) == null ? void 0 : _h.value),
199
204
  value: field == null ? void 0 : field.integrationFieldType,
200
205
  onChange: (integration) => handleFieldValue(
201
206
  field == null ? void 0 : field.id,
@@ -219,18 +224,18 @@ const Field = ({
219
224
  },
220
225
  (isFirstField || field.isEssentialField) && /* @__PURE__ */ React.createElement(flex.Flex, { alignItems: "center", gap: "$2", css: {
221
226
  cursor: "pointer"
222
- } }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { width: "fit-content !important", justifyContent: "start", alignItems: "center", fontWeight: "$5" } }, "Default Value (Optional)"), ((_j = (_h = (_f = field == null ? void 0 : field.integrationFieldType) == null ? void 0 : _f.value) != null ? _h : (_g = integrationFields.find(
227
+ } }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { width: "fit-content !important", justifyContent: "start", alignItems: "center", fontWeight: "$5" } }, "Default Value (Optional)"), ((_m = (_k = (_i = field == null ? void 0 : field.integrationFieldType) == null ? void 0 : _i.value) != null ? _k : (_j = integrationFields.find(
223
228
  (integrationField) => integrationField.label === (field == null ? void 0 : field.essentialFieldLabel)
224
- )) == null ? void 0 : _g.type) != null ? _j : (_i = field.integrationField) == null ? void 0 : _i.type) === "NUMBER" ? /* @__PURE__ */ React.createElement(tooltip.Tooltip, { className: "dm-sans", content: "Please enter a valid number" }, /* @__PURE__ */ React.createElement(info.InfoIcon, { size: 14, color: "#9E9E9E" })) : null),
229
+ )) == null ? void 0 : _j.type) != null ? _m : (_l = field.integrationField) == null ? void 0 : _l.type) === "NUMBER" ? /* @__PURE__ */ React.createElement(tooltip.Tooltip, { className: "dm-sans", content: "Please enter a valid number" }, /* @__PURE__ */ React.createElement(info.InfoIcon, { size: 14, color: "#9E9E9E" })) : null),
225
230
  /* @__PURE__ */ React.createElement(
226
231
  DefaultField,
227
232
  {
228
233
  handleFieldValue: (value) => {
229
234
  handleFieldValue(field == null ? void 0 : field.id, "defaultValue", value);
230
235
  },
231
- integrationFieldType: (_p = (_o = (_m = (_k = field == null ? void 0 : field.integrationFieldType) == null ? void 0 : _k.value) != null ? _m : (_l = integrationFields.find(
236
+ integrationFieldType: (_s = (_r = (_p = (_n = field == null ? void 0 : field.integrationFieldType) == null ? void 0 : _n.value) != null ? _p : (_o = integrationFields.find(
232
237
  (integrationField) => integrationField.label === (field == null ? void 0 : field.essentialFieldLabel)
233
- )) == null ? void 0 : _l.type) != null ? _o : (_n = field.integrationField) == null ? void 0 : _n.type) != null ? _p : "STRING",
238
+ )) == null ? void 0 : _o.type) != null ? _r : (_q = field.integrationField) == null ? void 0 : _q.type) != null ? _s : "STRING",
234
239
  defaultValue: field == null ? void 0 : field.defaultValue
235
240
  }
236
241
  )
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sources":["../../../../src/mapping/components/field.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n FormLabel,\n IconButton,\n Input,\n Select,\n Text,\n Tooltip,\n} from \"@sparrowengg/twigs-react\";\nimport React, { useEffect } from \"react\";\nimport Trash from \"../../commons/icons/trash\";\nimport CustomMenu from \"./custom-menu\";\nimport { integrationsClassicSubmissionProperties, integrationsNpsSubmissionProperties, mappingType, subMenuOptions } from \"../../commons/constants\";\nimport { handleMappingOptions } from \"../../commons/helpers\";\nimport Arrow from \"../../commons/icons/arrow\";\nimport { FieldProps } from \"../types\";\nimport CustomDateMenu from \"./custom-date-menu\";\nimport CustomOption from \"./custom-option\";\nimport PlaceholderSpan from \"./placeholder-span\";\nimport { InfoIcon } from \"@sparrowengg/twigs-react-icons\";\n\nconst customStyles = {\n menuList: (prevStyles: any) => ({\n ...prevStyles,\n maxHeight: 176,\n // width: \"300px !important\",\n }),\n};\n\nconst subMenuCustomStyles = {\n menu: (prevStyles: any) => ({\n ...prevStyles,\n width: 260,\n right: 0,\n }),\n};\n\nconst Field: React.FC<FieldProps> = ({\n hasDerivedQuestions,\n hasSurveyProperties,\n surveyType,\n havingTypeDropdown,\n field,\n isFirstField,\n handleFieldValue,\n ssMappingData,\n integrationFields,\n integrationName,\n hasCustomMenuProperty,\n isBtnDisabled,\n removeField,\n showCustomPropertyModal,\n}) => {\n useEffect(() => {\n if (!field.integrationField) {\n const foundField = integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n );\n if (foundField) {\n field.integrationField = {\n label: foundField.label,\n value: foundField.value,\n type: foundField.type,\n };\n }\n }\n }, [field, integrationFields]);\n\n const hasNumberDefaultField = (type: any): boolean => {\n if(type === \"NUMBER\"){\n return true;\n }\n return false;\n }\n\n return (\n <Flex flexDirection=\"column\" gap=\"$8\">\n {field?.essentialFieldLabel && (\n <Text size=\"sm\" weight=\"bold\">\n {field.essentialFieldLabel}\n <PlaceholderSpan color=\"$negative500\">*</PlaceholderSpan>\n </Text>\n )}\n <Flex\n key={field.id}\n css={{\n width: \"100%\",\n \"&:hover\": {\n \"& button\": {\n opacity: 1,\n },\n \"& #arrow path\": {\n fill: \"$secondary500\",\n },\n },\n }}\n alignItems=\"center\"\n gap=\"$6\"\n >\n <Flex flexDirection=\"column\" gap=\"$2\" css={{ width: 144 }}>\n {(isFirstField || field.isEssentialField) && (\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Type\n </FormLabel>\n )}\n <Select\n placeholder=\"Choose\"\n size=\"lg\"\n isSearchable={false}\n value={field?.mappedType}\n options={hasDerivedQuestions ? mappingType : mappingType.filter((type) => type?.value !== \"DERIVED_QUESTION\")}\n onChange={(type: any) => handleFieldValue(field?.id, \"type\", type)}\n styles={customStyles}\n />\n </Flex>\n <Flex alignItems=\"center\" css={{ flex: 1 }} gap=\"11px\">\n <Flex flexDirection=\"column\" gap=\"$2\" css={{ width: \"100%\" }}>\n {(isFirstField || field.isEssentialField) && (\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n SurveySparrow Field\n </FormLabel>\n )}\n <Select\n size=\"lg\"\n placeholder=\"Choose\"\n value={field?.surveySparrowField}\n onChange={(ssField: any) =>\n handleFieldValue(field?.id, \"surveySparrowField\", ssField)\n }\n options={handleMappingOptions(\n (field?.mappedType?.value ?? \"QUESTION\") as string,\n ssMappingData.questions,\n ssMappingData.contactProperties,\n ssMappingData.derivedQuestions,\n ssMappingData.variables,\n ssMappingData.expressions,\n integrationsNpsSubmissionProperties,\n integrationsClassicSubmissionProperties,\n surveyType,\n hasSurveyProperties\n )?.map((option: any) => {\n if(!option?.label || !option?.label?.length){\n return {\n ...option,\n label: option.rtxt,\n \n }\n }\n return option;\n })}\n styles={customStyles}\n />\n </Flex>\n <Box\n as=\"span\"\n id=\"arrow\"\n css={{\n paddingTop: isFirstField || field.isEssentialField ? \"$9\" : 0,\n }}\n >\n <Arrow />\n </Box>\n <Flex flexDirection=\"column\" gap=\"$2\">\n {(isFirstField || field.isEssentialField) && (\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`${integrationName} Field`}\n </FormLabel>\n )}\n <Flex alignItems=\"center\">\n <Select\n placeholder=\"Choose\"\n size=\"lg\"\n value={\n field?.integrationField ??\n integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )\n }\n isDisabled={!!integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )}\n onChange={(integration: any) => {\n handleFieldValue(field?.id, \"integrationField\", integration);\n }}\n css={{\n width: 260,\n \"& .twigs-select__control\": {\n borderTopRightRadius: havingTypeDropdown ? 0 : \"$lg\",\n borderBottomRightRadius: havingTypeDropdown ? 0 : \"$lg\",\n },\n }}\n options={integrationFields}\n styles={customStyles}\n components={{\n ...(hasCustomMenuProperty && {\n Menu: (props: any) => (\n <CustomMenu\n {...props}\n customOnClick={showCustomPropertyModal}\n />\n ),\n }),\n }}\n />\n {havingTypeDropdown && (\n <Select\n css={{\n width: 112,\n \"& .twigs-select__control\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: \"$borderWidths$xs solid $neutral200\",\n },\n }}\n isDisabled={!field?.integrationField?.value}\n value={field?.integrationFieldType}\n onChange={(integration: any) =>\n handleFieldValue(\n field?.id,\n \"integrationFieldType\",\n integration\n )\n }\n styles={subMenuCustomStyles}\n options={subMenuOptions}\n closeMenuOnSelect\n // @ts-ignore\n noneOptionHandler={(value) =>\n handleFieldValue(field?.id, \"integrationFieldType\", value)\n }\n components={{ Menu: CustomMenu as any, Option: CustomOption as any }}\n placeholder=\"Choose\"\n size=\"lg\"\n />\n )}\n </Flex>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$2\"\n css={{ maxWidth: 180, width: \"100%\" }}\n >\n {(isFirstField || field.isEssentialField) && (\n <Flex alignItems=\"center\" gap=\"$2\" css={{\n cursor: \"pointer\",\n }}>\n <FormLabel size=\"xs\" css={{ width: \"fit-content !important\", justifyContent: \"start\", alignItems: \"center\", fontWeight: \"$5\" }}>\n {\"Default Value (Optional)\"}\n \n </FormLabel>\n {(field?.integrationFieldType?.value ??\n integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )?.type ?? field.integrationField?.type) === \"NUMBER\" ? <Tooltip className=\"dm-sans\" content=\"Please enter a valid number\">\n <InfoIcon size={14} color=\"#9E9E9E\" />\n </Tooltip> : null}\n </Flex>\n \n )}\n <DefaultField\n handleFieldValue={(value: any) => {\n handleFieldValue(field?.id, \"defaultValue\", value);\n }}\n integrationFieldType={\n (field?.integrationFieldType?.value ??\n integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )?.type ?? field.integrationField?.type ?? \"STRING\") as string\n }\n defaultValue={field?.defaultValue}\n />\n </Flex>\n </Flex>\n {!field.isEssentialField && (\n <IconButton\n css={{\n transition: \"all .3s ease\",\n marginTop: isFirstField ? \"$11\" : 0,\n }}\n size=\"sm\"\n icon={<Trash />}\n variant=\"ghost\"\n color=\"default\"\n disabled={isBtnDisabled}\n onClick={removeField}\n aria-label=\"Remove field\"\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport default Field;\n\nfunction resolveDefaultValueForControl(defaultValue: unknown): unknown {\n if (defaultValue == null) {\n return undefined;\n }\n if (typeof defaultValue === \"object\" && defaultValue !== null && \"value\" in defaultValue) {\n return (defaultValue as { value?: unknown }).value;\n }\n return defaultValue;\n}\n\nconst DefaultField: React.FC<{\n integrationFieldType: string;\n handleFieldValue: (value: any) => void;\n defaultValue: unknown;\n}> = ({ integrationFieldType, handleFieldValue, defaultValue }) => {\n const value = resolveDefaultValueForControl(defaultValue);\n const normalizedType = `${integrationFieldType ?? \"STRING\"}`.toUpperCase();\n\n switch (normalizedType) {\n case \"BOOLEAN\":\n return (\n <Select\n options={[\n {\n label: \"true\",\n value: true,\n },\n {\n label: \"false\",\n value: false,\n },\n ]}\n size=\"lg\"\n value={value}\n placeholder=\"\"\n onChange={(booleanValue: any) =>\n handleFieldValue({\n type: \"BOOLEAN\",\n value: booleanValue,\n })\n }\n />\n );\n case \"DATE_TIME\":\n case \"DATETIME\":\n return (\n <CustomDateMenu\n variant=\"datetime\"\n value={value != null && value !== \"\" ? String(value) : \"\"}\n disableAutoToday\n onChangeHandler={(dateValue: string) => {\n handleFieldValue({\n type: \"DATE_TIME\",\n value: dateValue,\n });\n }}\n />\n );\n case \"DATE\":\n return (\n <CustomDateMenu\n variant=\"date\"\n value={value != null && value !== \"\" ? String(value) : \"\"}\n disableAutoToday\n onChangeHandler={(dateValue: string) => {\n handleFieldValue({\n type: \"DATE\",\n value: dateValue,\n });\n }}\n />\n );\n case \"NUMBER\":\n return (\n <>\n <Input\n size=\"lg\"\n type=\"number\"\n placeholder=\"\"\n value={value === null || value === undefined ? \"\" : value}\n min={0}\n onChange={(e: any) =>\n handleFieldValue({\n type: \"NUMBER\",\n value: parseInt(e.currentTarget.value, 10),\n })\n }\n />\n </>\n );\n default:\n return (\n <Input\n size=\"lg\"\n placeholder=\"\"\n value={value === null || value === undefined ? \"\" : String(value)}\n onChange={(e: any) =>\n handleFieldValue({\n type: \"STRING\",\n value: e.currentTarget.value,\n })\n }\n />\n );\n }\n};"],"names":["useEffect","Flex","Text","PlaceholderSpan","FormLabel","Select","mappingType","handleMappingOptions","integrationsNpsSubmissionProperties","integrationsClassicSubmissionProperties","_a","Box","Arrow","CustomMenu","subMenuOptions","CustomOption","Tooltip","InfoIcon","IconButton","Trash","CustomDateMenu","Input"],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sources":["../../../../src/mapping/components/field.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n FormLabel,\n IconButton,\n Input,\n Select,\n Text,\n Tooltip,\n} from \"@sparrowengg/twigs-react\";\nimport React, { useEffect } from \"react\";\nimport Trash from \"../../commons/icons/trash\";\nimport CustomMenu from \"./custom-menu\";\nimport { integrationsClassicSubmissionProperties, integrationsNpsSubmissionProperties, mappingType, subMenuOptions } from \"../../commons/constants\";\nimport { handleMappingOptions } from \"../../commons/helpers\";\nimport Arrow from \"../../commons/icons/arrow\";\nimport { FieldProps } from \"../types\";\nimport CustomDateMenu from \"./custom-date-menu\";\nimport CustomOption from \"./custom-option\";\nimport PlaceholderSpan from \"./placeholder-span\";\nimport { InfoIcon } from \"@sparrowengg/twigs-react-icons\";\n\nconst customStyles = {\n menuList: (prevStyles: any) => ({\n ...prevStyles,\n maxHeight: 176,\n // width: \"300px !important\",\n }),\n};\n\nconst subMenuCustomStyles = {\n menu: (prevStyles: any) => ({\n ...prevStyles,\n width: 260,\n right: 0,\n }),\n};\n\nconst Field: React.FC<FieldProps> = ({\n hasDerivedQuestions,\n hasSurveyProperties,\n surveyType,\n havingTypeDropdown,\n field,\n isFirstField,\n handleFieldValue,\n ssMappingData,\n integrationFields,\n integrationName,\n hasCustomMenuProperty,\n isBtnDisabled,\n removeField,\n showCustomPropertyModal,\n disabledMappingTypes,\n customTypeOptions,\n}) => {\n useEffect(() => {\n if (!field.integrationField) {\n const foundField = integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n );\n if (foundField) {\n field.integrationField = {\n label: foundField.label,\n value: foundField.value,\n type: foundField.type,\n };\n }\n }\n }, [field, integrationFields]);\n\n const hasNumberDefaultField = (type: any): boolean => {\n if(type === \"NUMBER\"){\n return true;\n }\n return false;\n }\n\n return (\n <Flex flexDirection=\"column\" gap=\"$8\">\n {field?.essentialFieldLabel && (\n <Text size=\"sm\" weight=\"bold\">\n {field.essentialFieldLabel}\n <PlaceholderSpan color=\"$negative500\">*</PlaceholderSpan>\n </Text>\n )}\n <Flex\n key={field.id}\n css={{\n width: \"100%\",\n \"&:hover\": {\n \"& button\": {\n opacity: 1,\n },\n \"& #arrow path\": {\n fill: \"$secondary500\",\n },\n },\n }}\n alignItems=\"center\"\n gap=\"$6\"\n >\n <Flex flexDirection=\"column\" gap=\"$2\" css={{ width: 144 }}>\n {(isFirstField || field.isEssentialField) && (\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Type\n </FormLabel>\n )}\n <Select\n placeholder=\"Choose\"\n size=\"lg\"\n isSearchable={false}\n value={field?.mappedType}\n options={(hasDerivedQuestions ? mappingType : mappingType.filter((type) => type?.value !== \"DERIVED_QUESTION\"))\n .filter((type) => !disabledMappingTypes?.includes(type.value))}\n onChange={(type: any) => handleFieldValue(field?.id, \"type\", type)}\n styles={customStyles}\n />\n </Flex>\n <Flex alignItems=\"center\" css={{ flex: 1 }} gap=\"11px\">\n <Flex flexDirection=\"column\" gap=\"$2\" css={{ width: \"100%\" }}>\n {(isFirstField || field.isEssentialField) && (\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n SurveySparrow Field\n </FormLabel>\n )}\n <Select\n size=\"lg\"\n placeholder=\"Choose\"\n value={field?.surveySparrowField}\n onChange={(ssField: any) =>\n handleFieldValue(field?.id, \"surveySparrowField\", ssField)\n }\n options={[\n ...(handleMappingOptions(\n (field?.mappedType?.value ?? \"QUESTION\") as string,\n ssMappingData.questions,\n ssMappingData.contactProperties,\n ssMappingData.derivedQuestions,\n ssMappingData.variables,\n ssMappingData.expressions,\n integrationsNpsSubmissionProperties,\n integrationsClassicSubmissionProperties,\n surveyType,\n hasSurveyProperties\n ) ?? []),\n ...(customTypeOptions?.[(field?.mappedType?.value ?? \"QUESTION\")] ?? []),\n ].map((option: any) => {\n if(!option?.label || !option?.label?.length){\n return {\n ...option,\n label: option.rtxt,\n }\n }\n return option;\n })}\n styles={customStyles}\n />\n </Flex>\n <Box\n as=\"span\"\n id=\"arrow\"\n css={{\n paddingTop: isFirstField || field.isEssentialField ? \"$9\" : 0,\n }}\n >\n <Arrow />\n </Box>\n <Flex flexDirection=\"column\" gap=\"$2\">\n {(isFirstField || field.isEssentialField) && (\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`${integrationName} Field`}\n </FormLabel>\n )}\n <Flex alignItems=\"center\">\n <Select\n placeholder=\"Choose\"\n size=\"lg\"\n value={\n field?.integrationField ??\n integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )\n }\n isDisabled={!!integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )}\n onChange={(integration: any) => {\n handleFieldValue(field?.id, \"integrationField\", integration);\n }}\n css={{\n width: 260,\n \"& .twigs-select__control\": {\n borderTopRightRadius: havingTypeDropdown ? 0 : \"$lg\",\n borderBottomRightRadius: havingTypeDropdown ? 0 : \"$lg\",\n },\n }}\n options={integrationFields}\n styles={customStyles}\n components={{\n ...(hasCustomMenuProperty && {\n Menu: (props: any) => (\n <CustomMenu\n {...props}\n customOnClick={showCustomPropertyModal}\n />\n ),\n }),\n }}\n />\n {havingTypeDropdown && (\n <Select\n css={{\n width: 112,\n \"& .twigs-select__control\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: \"$borderWidths$xs solid $neutral200\",\n },\n }}\n isDisabled={!field?.integrationField?.value}\n value={field?.integrationFieldType}\n onChange={(integration: any) =>\n handleFieldValue(\n field?.id,\n \"integrationFieldType\",\n integration\n )\n }\n styles={subMenuCustomStyles}\n options={subMenuOptions}\n closeMenuOnSelect\n // @ts-ignore\n noneOptionHandler={(value) =>\n handleFieldValue(field?.id, \"integrationFieldType\", value)\n }\n components={{ Menu: CustomMenu as any, Option: CustomOption as any }}\n placeholder=\"Choose\"\n size=\"lg\"\n />\n )}\n </Flex>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$2\"\n css={{ maxWidth: 180, width: \"100%\" }}\n >\n {(isFirstField || field.isEssentialField) && (\n <Flex alignItems=\"center\" gap=\"$2\" css={{\n cursor: \"pointer\",\n }}>\n <FormLabel size=\"xs\" css={{ width: \"fit-content !important\", justifyContent: \"start\", alignItems: \"center\", fontWeight: \"$5\" }}>\n {\"Default Value (Optional)\"}\n \n </FormLabel>\n {(field?.integrationFieldType?.value ??\n integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )?.type ?? field.integrationField?.type) === \"NUMBER\" ? <Tooltip className=\"dm-sans\" content=\"Please enter a valid number\">\n <InfoIcon size={14} color=\"#9E9E9E\" />\n </Tooltip> : null}\n </Flex>\n \n )}\n <DefaultField\n handleFieldValue={(value: any) => {\n handleFieldValue(field?.id, \"defaultValue\", value);\n }}\n integrationFieldType={\n (field?.integrationFieldType?.value ??\n integrationFields.find(\n (integrationField: any) =>\n integrationField.label === field?.essentialFieldLabel\n )?.type ?? field.integrationField?.type ?? \"STRING\") as string\n }\n defaultValue={field?.defaultValue}\n />\n </Flex>\n </Flex>\n {!field.isEssentialField && (\n <IconButton\n css={{\n transition: \"all .3s ease\",\n marginTop: isFirstField ? \"$11\" : 0,\n }}\n size=\"sm\"\n icon={<Trash />}\n variant=\"ghost\"\n color=\"default\"\n disabled={isBtnDisabled}\n onClick={removeField}\n aria-label=\"Remove field\"\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport default Field;\n\nfunction resolveDefaultValueForControl(defaultValue: unknown): unknown {\n if (defaultValue == null) {\n return undefined;\n }\n if (typeof defaultValue === \"object\" && defaultValue !== null && \"value\" in defaultValue) {\n return (defaultValue as { value?: unknown }).value;\n }\n return defaultValue;\n}\n\nconst DefaultField: React.FC<{\n integrationFieldType: string;\n handleFieldValue: (value: any) => void;\n defaultValue: unknown;\n}> = ({ integrationFieldType, handleFieldValue, defaultValue }) => {\n const value = resolveDefaultValueForControl(defaultValue);\n const normalizedType = `${integrationFieldType ?? \"STRING\"}`.toUpperCase();\n\n switch (normalizedType) {\n case \"BOOLEAN\":\n return (\n <Select\n options={[\n {\n label: \"true\",\n value: true,\n },\n {\n label: \"false\",\n value: false,\n },\n ]}\n size=\"lg\"\n value={value}\n placeholder=\"\"\n onChange={(booleanValue: any) =>\n handleFieldValue({\n type: \"BOOLEAN\",\n value: booleanValue,\n })\n }\n />\n );\n case \"DATE_TIME\":\n case \"DATETIME\":\n return (\n <CustomDateMenu\n variant=\"datetime\"\n value={value != null && value !== \"\" ? String(value) : \"\"}\n disableAutoToday\n onChangeHandler={(dateValue: string) => {\n handleFieldValue({\n type: \"DATE_TIME\",\n value: dateValue,\n });\n }}\n />\n );\n case \"DATE\":\n return (\n <CustomDateMenu\n variant=\"date\"\n value={value != null && value !== \"\" ? String(value) : \"\"}\n disableAutoToday\n onChangeHandler={(dateValue: string) => {\n handleFieldValue({\n type: \"DATE\",\n value: dateValue,\n });\n }}\n />\n );\n case \"NUMBER\":\n return (\n <>\n <Input\n size=\"lg\"\n type=\"number\"\n placeholder=\"\"\n value={value === null || value === undefined ? \"\" : value}\n min={0}\n onChange={(e: any) =>\n handleFieldValue({\n type: \"NUMBER\",\n value: parseInt(e.currentTarget.value, 10),\n })\n }\n />\n </>\n );\n default:\n return (\n <Input\n size=\"lg\"\n placeholder=\"\"\n value={value === null || value === undefined ? \"\" : String(value)}\n onChange={(e: any) =>\n handleFieldValue({\n type: \"STRING\",\n value: e.currentTarget.value,\n })\n }\n />\n );\n }\n};"],"names":["useEffect","Flex","Text","PlaceholderSpan","FormLabel","Select","mappingType","handleMappingOptions","integrationsNpsSubmissionProperties","integrationsClassicSubmissionProperties","_a","Box","Arrow","CustomMenu","subMenuOptions","CustomOption","Tooltip","InfoIcon","IconButton","Trash","CustomDateMenu","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,YAAA,GAAe;AAAA,EACnB,QAAA,EAAU,CAAC,UAAA,KAAqB,aAAA,CAAA,cAAA,CAAA,EAAA,EAC3B,UAAA,CAAA,EAD2B;AAAA,IAE9B,SAAA,EAAW;AAAA;AAAA,GAEb;AACF,CAAA;AAEA,MAAM,mBAAA,GAAsB;AAAA,EAC1B,IAAA,EAAM,CAAC,UAAA,KAAqB,aAAA,CAAA,cAAA,CAAA,EAAA,EACvB,UAAA,CAAA,EADuB;AAAA,IAE1B,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AACF,CAAA;AAEA,MAAM,QAA8B,CAAC;AAAA,EACnC,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,qBAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,uBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA,KAAM;AAvDN,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwDE,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,MAAA,MAAM,aAAa,iBAAA,CAAkB,IAAA;AAAA,QACnC,CAAC,gBAAA,KACC,gBAAA,CAAiB,KAAA,MAAU,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,mBAAA;AAAA,OACtC;AACA,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,KAAA,CAAM,gBAAA,GAAmB;AAAA,UACvB,OAAO,UAAA,CAAW,KAAA;AAAA,UAClB,OAAO,UAAA,CAAW,KAAA;AAAA,UAClB,MAAM,UAAA,CAAW;AAAA,SACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,KAAA,EAAO,iBAAiB,CAAC,CAAA;AAS7B,EAAA,uBACE,KAAA,CAAA,aAAA,CAACC,aAAK,aAAA,EAAc,QAAA,EAAS,KAAI,IAAA,EAAA,EAAA,CAC9B,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,mBAAA,qBACN,KAAA,CAAA,aAAA,CAACC,SAAA,EAAA,EAAK,IAAA,EAAK,MAAK,MAAA,EAAO,MAAA,EAAA,EACpB,MAAM,mBAAA,kBACP,KAAA,CAAA,aAAA,CAACC,2BAAgB,KAAA,EAAM,cAAA,EAAA,EAAe,GAAC,CACzC,CAAA,kBAEF,KAAA,CAAA,aAAA;AAAA,IAACF,SAAA;AAAA,IAAA;AAAA,MACC,KAAK,KAAA,CAAM,EAAA;AAAA,MACX,GAAA,EAAK;AAAA,QACH,KAAA,EAAO,MAAA;AAAA,QACP,SAAA,EAAW;AAAA,UACT,UAAA,EAAY;AAAA,YACV,OAAA,EAAS;AAAA,WACX;AAAA,UACA,eAAA,EAAiB;AAAA,YACf,IAAA,EAAM;AAAA;AACR;AACF,OACF;AAAA,MACA,UAAA,EAAW,QAAA;AAAA,MACX,GAAA,EAAI;AAAA,KAAA;AAAA,oBAEJ,KAAA,CAAA,aAAA,CAACA,SAAA,EAAA,EAAK,aAAA,EAAc,QAAA,EAAS,GAAA,EAAI,MAAK,GAAA,EAAK,EAAE,KAAA,EAAO,GAAA,EAAI,EAAA,EAAA,CACpD,YAAA,IAAgB,MAAM,gBAAA,qBACtB,KAAA,CAAA,aAAA,CAACG,mBAAA,EAAA,EAAU,IAAA,EAAK,IAAA,EAAK,GAAA,EAAK,EAAE,UAAA,EAAY,IAAA,EAAK,EAAA,EAAG,MAEhD,CAAA,kBAEF,KAAA,CAAA,aAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAY,QAAA;AAAA,QACZ,IAAA,EAAK,IAAA;AAAA,QACL,YAAA,EAAc,KAAA;AAAA,QACd,OAAO,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,UAAA;AAAA,QACd,UAAU,mBAAA,GAAsBC,iBAAA,GAAcA,kBAAY,MAAA,CAAO,CAAC,UAAS,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA,MAAU,kBAAkB,CAAA,EAC1G,OAAO,CAAC,IAAA,KAAS,EAAC,oBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,oBAAA,CAAsB,QAAA,CAAS,KAAK,KAAA,CAAA,CAAM,CAAA;AAAA,QAC/D,UAAU,CAAC,IAAA,KAAc,iBAAiB,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA,EAAI,QAAQ,IAAI,CAAA;AAAA,QACjE,MAAA,EAAQ;AAAA;AAAA,KAEZ,CAAA;AAAA,oBACA,KAAA,CAAA,aAAA,CAACL,SAAA,EAAA,EAAK,UAAA,EAAW,QAAA,EAAS,KAAK,EAAE,IAAA,EAAM,CAAA,EAAE,EAAG,KAAI,MAAA,EAAA,kBAC9C,KAAA,CAAA,aAAA,CAACA,SAAA,EAAA,EAAK,aAAA,EAAc,UAAS,GAAA,EAAI,IAAA,EAAK,GAAA,EAAK,EAAE,OAAO,MAAA,EAAO,EAAA,EAAA,CACvD,YAAA,IAAgB,KAAA,CAAM,qCACtB,KAAA,CAAA,aAAA,CAACG,mBAAA,EAAA,EAAU,IAAA,EAAK,IAAA,EAAK,KAAK,EAAE,UAAA,EAAY,IAAA,EAAK,EAAA,EAAG,qBAEhD,CAAA,kBAEF,KAAA,CAAA,aAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,IAAA;AAAA,QACL,WAAA,EAAY,QAAA;AAAA,QACZ,OAAO,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,kBAAA;AAAA,QACd,UAAU,CAAC,OAAA,KACT,iBAAiB,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA,EAAI,sBAAsB,OAAO,CAAA;AAAA,QAE3D,OAAA,EAAS;AAAA,UACP,GAAA,CAAI,EAAA,GAAAE,4BAAA;AAAA,YAAA,CACD,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,UAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmB,KAAA,KAAnB,IAAA,GAAA,EAAA,GAA4B,UAAA;AAAA,YAC7B,aAAA,CAAc,SAAA;AAAA,YACd,aAAA,CAAc,iBAAA;AAAA,YACd,aAAA,CAAc,gBAAA;AAAA,YACd,aAAA,CAAc,SAAA;AAAA,YACd,aAAA,CAAc,WAAA;AAAA,YACdC,yCAAA;AAAA,YACAC,6CAAA;AAAA,YACA,UAAA;AAAA,YACA;AAAA,WACF,KAXI,YAWC,EAAC;AAAA,UACN,GAAA,CAAI,6DAAqB,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,UAAA,KAAP,mBAAmB,KAAA,KAAnB,IAAA,GAAA,EAAA,GAA4B,UAAA,CAAA,KAAjD,IAAA,GAAA,EAAA,GAAiE;AAAC,SACxE,CAAE,GAAA,CAAI,CAAC,MAAA,KAAgB;AApJrC,UAAA,IAAAC,GAAAA;AAqJgB,UAAA,IAAG,EAAC,iCAAQ,KAAA,CAAA,IAAS,EAAA,CAACA,MAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,KAAA,KAAR,IAAA,GAAA,MAAA,GAAAA,GAAAA,CAAe,MAAA,CAAA,EAAO;AAC1C,YAAA,OAAO,iCACF,MAAA,CAAA,EADE;AAAA,cAEL,OAAO,MAAA,CAAO;AAAA,aAChB,CAAA;AAAA,UACF;AACA,UAAA,OAAO,MAAA;AAAA,QACT,CAAC,CAAA;AAAA,QACD,MAAA,EAAQ;AAAA;AAAA,KAEZ,CAAA,kBACA,KAAA,CAAA,aAAA;AAAA,MAACC,OAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAG,MAAA;AAAA,QACH,EAAA,EAAG,OAAA;AAAA,QACH,GAAA,EAAK;AAAA,UACH,UAAA,EAAY,YAAA,IAAgB,KAAA,CAAM,gBAAA,GAAmB,IAAA,GAAO;AAAA;AAC9D,OAAA;AAAA,0CAECC,aAAA,EAAA,IAAM;AAAA,KACT,kBACA,KAAA,CAAA,aAAA,CAACX,SAAA,EAAA,EAAK,aAAA,EAAc,QAAA,EAAS,GAAA,EAAI,IAAA,EAAA,EAAA,CAC7B,YAAA,IAAgB,KAAA,CAAM,gBAAA,qBACtB,KAAA,CAAA,aAAA,CAACG,mBAAA,EAAA,EAAU,IAAA,EAAK,MAAK,GAAA,EAAK,EAAE,UAAA,EAAY,IAAA,EAAK,EAAA,EAC1C,CAAA,EAAG,eAAe,CAAA,MAAA,CACrB,CAAA,kBAEF,KAAA,CAAA,aAAA,CAACH,SAAA,EAAA,EAAK,UAAA,EAAW,QAAA,EAAA,kBACf,KAAA,CAAA,aAAA;AAAA,MAACI,aAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAY,QAAA;AAAA,QACZ,IAAA,EAAK,IAAA;AAAA,QACL,KAAA,EAAA,CACE,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,gBAAA,KAAP,IAAA,GAAA,EAAA,GACA,iBAAA,CAAkB,IAAA;AAAA,UAChB,CAAC,gBAAA,KACC,gBAAA,CAAiB,KAAA,MAAU,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,mBAAA;AAAA,SACtC;AAAA,QAEF,UAAA,EAAY,CAAC,CAAC,iBAAA,CAAkB,IAAA;AAAA,UAC9B,CAAC,gBAAA,KACC,gBAAA,CAAiB,KAAA,MAAU,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,mBAAA;AAAA,SACtC;AAAA,QACA,QAAA,EAAU,CAAC,WAAA,KAAqB;AAC9B,UAAA,gBAAA,CAAiB,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA,EAAI,kBAAA,EAAoB,WAAW,CAAA;AAAA,QAC7D,CAAA;AAAA,QACA,GAAA,EAAK;AAAA,UACH,KAAA,EAAO,GAAA;AAAA,UACP,0BAAA,EAA4B;AAAA,YAC1B,oBAAA,EAAsB,qBAAqB,CAAA,GAAI,KAAA;AAAA,YAC/C,uBAAA,EAAyB,qBAAqB,CAAA,GAAI;AAAA;AACpD,SACF;AAAA,QACA,OAAA,EAAS,iBAAA;AAAA,QACT,MAAA,EAAQ,YAAA;AAAA,QACR,UAAA,EAAY,mBACN,qBAAA,IAAyB;AAAA,UAC3B,IAAA,EAAM,CAAC,KAAA,qBACL,KAAA,CAAA,aAAA;AAAA,YAACQ,kBAAA;AAAA,YAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,KAAA,CAAA,EADL;AAAA,cAEC,aAAA,EAAe;AAAA,aAAA;AAAA;AACjB,SAEJ;AAAA;AAAA,OAGH,kBAAA,oBACC,KAAA,CAAA,aAAA;AAAA,MAACR,aAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK;AAAA,UACH,KAAA,EAAO,GAAA;AAAA,UACP,0BAAA,EAA4B;AAAA,YAC1B,mBAAA,EAAqB,CAAA;AAAA,YACrB,sBAAA,EAAwB,CAAA;AAAA,YACxB,MAAA,EAAQ;AAAA;AACV,SACF;AAAA,QACA,UAAA,EAAY,EAAA,CAAC,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,gBAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAAyB,KAAA,CAAA;AAAA,QACtC,OAAO,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,oBAAA;AAAA,QACd,QAAA,EAAU,CAAC,WAAA,KACT,gBAAA;AAAA,UACE,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA;AAAA,UACP,sBAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEF,MAAA,EAAQ,mBAAA;AAAA,QACR,OAAA,EAASS,oBAAA;AAAA,QACT,iBAAA,EAAiB,IAAA;AAAA,QAEjB,mBAAmB,CAAC,KAAA,KAClB,iBAAiB,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA,EAAI,wBAAwB,KAAK,CAAA;AAAA,QAE3D,UAAA,EAAY,EAAE,IAAA,EAAMD,kBAAA,EAAmB,QAAQE,oBAAA,EAAoB;AAAA,QACnE,WAAA,EAAY,QAAA;AAAA,QACZ,IAAA,EAAK;AAAA;AAAA,KAGX,CACF,CAAA,kBACA,KAAA,CAAA,aAAA;AAAA,MAACd,SAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAc,QAAA;AAAA,QACd,GAAA,EAAI,IAAA;AAAA,QACJ,GAAA,EAAK,EAAE,QAAA,EAAU,GAAA,EAAK,OAAO,MAAA;AAAO,OAAA;AAAA,MAAA,CAElC,YAAA,IAAgB,MAAM,gBAAA,qBACtB,KAAA,CAAA,aAAA,CAACA,aAAK,UAAA,EAAW,QAAA,EAAS,GAAA,EAAI,IAAA,EAAK,GAAA,EAAK;AAAA,QACtC,MAAA,EAAQ;AAAA,OACV,EAAA,sCACGG,mBAAA,EAAA,EAAU,IAAA,EAAK,MAAK,GAAA,EAAK,EAAE,KAAA,EAAO,wBAAA,EAA0B,cAAA,EAAgB,OAAA,EAAS,YAAY,QAAA,EAAU,UAAA,EAAY,IAAA,EAAK,EAAA,EAC5H,0BAEH,CAAA,EAAA,CAAA,CACE,gDAAO,oBAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAA6B,KAAA,KAA7B,IAAA,GAAA,EAAA,GAAA,CACA,EAAA,GAAA,iBAAA,CAAkB,IAAA;AAAA,QAChB,CAAC,gBAAA,KACC,gBAAA,CAAiB,KAAA,MAAU,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,mBAAA;AAAA,OACtC,KAHA,mBAGG,IAAA,KAJH,IAAA,GAAA,EAAA,GAAA,CAIW,WAAM,gBAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwB,IAAA,MAAU,QAAA,mBAAW,KAAA,CAAA,aAAA,CAACY,eAAA,EAAA,EAAQ,WAAU,SAAA,EAAU,OAAA,EAAQ,6BAAA,EAAA,kBAC3F,KAAA,CAAA,aAAA,CAACC,aAAA,EAAA,EAAS,IAAA,EAAM,IAAI,KAAA,EAAM,SAAA,EAAU,CACtC,CAAA,GAAa,IACb,CAAA;AAAA,sBAGJ,KAAA,CAAA,aAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,gBAAA,EAAkB,CAAC,KAAA,KAAe;AAChC,YAAA,gBAAA,CAAiB,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,EAAA,EAAI,cAAA,EAAgB,KAAK,CAAA;AAAA,UACnD,CAAA;AAAA,UACA,uBACG,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,oBAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAA6B,KAAA,KAA7B,aACD,EAAA,GAAA,iBAAA,CAAkB,IAAA;AAAA,YAChB,CAAC,gBAAA,KACC,gBAAA,CAAiB,KAAA,MAAU,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,mBAAA;AAAA,WACtC,KAHA,mBAGG,IAAA,KAJF,IAAA,GAAA,EAAA,GAAA,CAIU,WAAM,gBAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwB,SAJlC,IAAA,GAAA,EAAA,GAI0C,QAAA;AAAA,UAE7C,cAAc,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO;AAAA;AAAA;AACvB,KAEJ,CAAA;AAAA,IACC,CAAC,MAAM,gBAAA,oBACN,KAAA,CAAA,aAAA;AAAA,MAACC,qBAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK;AAAA,UACH,UAAA,EAAY,cAAA;AAAA,UACZ,SAAA,EAAW,eAAe,KAAA,GAAQ;AAAA,SACpC;AAAA,QACA,IAAA,EAAK,IAAA;AAAA,QACL,IAAA,sCAAOC,aAAA,EAAA,IAAM,CAAA;AAAA,QACb,OAAA,EAAQ,OAAA;AAAA,QACR,KAAA,EAAM,SAAA;AAAA,QACN,QAAA,EAAU,aAAA;AAAA,QACV,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAW;AAAA;AAAA;AACb,GAGN,CAAA;AAEJ;AAIA,SAAS,8BAA8B,YAAA,EAAgC;AACrE,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,YAAA,KAAiB,QAAA,IAAY,YAAA,KAAiB,IAAA,IAAQ,WAAW,YAAA,EAAc;AACxF,IAAA,OAAQ,YAAA,CAAqC,KAAA;AAAA,EAC/C;AACA,EAAA,OAAO,YAAA;AACT;AAEA,MAAM,eAID,CAAC,EAAE,oBAAA,EAAsB,gBAAA,EAAkB,cAAa,KAAM;AACjE,EAAA,MAAM,KAAA,GAAQ,8BAA8B,YAAY,CAAA;AACxD,EAAA,MAAM,cAAA,GAAiB,CAAA,EAAG,oBAAA,IAAA,IAAA,GAAA,oBAAA,GAAwB,QAAQ,GAAG,WAAA,EAAY;AAEzE,EAAA,QAAQ,cAAA;AAAgB,IACtB,KAAK,SAAA;AACH,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAACd,aAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS;AAAA,YACP;AAAA,cACE,KAAA,EAAO,MAAA;AAAA,cACP,KAAA,EAAO;AAAA,aACT;AAAA,YACA;AAAA,cACE,KAAA,EAAO,OAAA;AAAA,cACP,KAAA,EAAO;AAAA;AACT,WACF;AAAA,UACA,IAAA,EAAK,IAAA;AAAA,UACL,KAAA;AAAA,UACA,WAAA,EAAY,EAAA;AAAA,UACZ,QAAA,EAAU,CAAC,YAAA,KACT,gBAAA,CAAiB;AAAA,YACf,IAAA,EAAM,SAAA;AAAA,YACN,KAAA,EAAO;AAAA,WACR;AAAA;AAAA,OAEL;AAAA,IAEJ,KAAK,WAAA;AAAA,IACL,KAAK,UAAA;AACH,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAACe,sBAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,UAAA;AAAA,UACR,OAAO,KAAA,IAAS,IAAA,IAAQ,UAAU,EAAA,GAAK,MAAA,CAAO,KAAK,CAAA,GAAI,EAAA;AAAA,UACvD,gBAAA,EAAgB,IAAA;AAAA,UAChB,eAAA,EAAiB,CAAC,SAAA,KAAsB;AACtC,YAAA,gBAAA,CAAiB;AAAA,cACf,IAAA,EAAM,WAAA;AAAA,cACN,KAAA,EAAO;AAAA,aACR,CAAA;AAAA,UACH;AAAA;AAAA,OACF;AAAA,IAEJ,KAAK,MAAA;AACH,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAACA,sBAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,MAAA;AAAA,UACR,OAAO,KAAA,IAAS,IAAA,IAAQ,UAAU,EAAA,GAAK,MAAA,CAAO,KAAK,CAAA,GAAI,EAAA;AAAA,UACvD,gBAAA,EAAgB,IAAA;AAAA,UAChB,eAAA,EAAiB,CAAC,SAAA,KAAsB;AACtC,YAAA,gBAAA,CAAiB;AAAA,cACf,IAAA,EAAM,MAAA;AAAA,cACN,KAAA,EAAO;AAAA,aACR,CAAA;AAAA,UACH;AAAA;AAAA,OACF;AAAA,IAEJ,KAAK,QAAA;AACH,MAAA,uBACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA;AAAA,QAACC,WAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,IAAA;AAAA,UACL,IAAA,EAAK,QAAA;AAAA,UACL,WAAA,EAAY,EAAA;AAAA,UACZ,KAAA,EAAO,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,SAAY,EAAA,GAAK,KAAA;AAAA,UACpD,GAAA,EAAK,CAAA;AAAA,UACL,QAAA,EAAU,CAAC,CAAA,KACT,gBAAA,CAAiB;AAAA,YACf,IAAA,EAAM,QAAA;AAAA,YACN,KAAA,EAAO,QAAA,CAAS,CAAA,CAAE,aAAA,CAAc,OAAO,EAAE;AAAA,WAC1C;AAAA;AAAA,OAGP,CAAA;AAAA,IAEJ;AACE,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAACA,WAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,IAAA;AAAA,UACL,WAAA,EAAY,EAAA;AAAA,UACZ,OAAO,KAAA,KAAU,IAAA,IAAQ,UAAU,MAAA,GAAY,EAAA,GAAK,OAAO,KAAK,CAAA;AAAA,UAChE,QAAA,EAAU,CAAC,CAAA,KACT,gBAAA,CAAiB;AAAA,YACf,IAAA,EAAM,QAAA;AAAA,YACN,KAAA,EAAO,EAAE,aAAA,CAAc;AAAA,WACxB;AAAA;AAAA,OAEL;AAAA;AAGR,CAAA;;;;"}
@@ -65,7 +65,9 @@ const Mapping = ({
65
65
  customList,
66
66
  oldResponse,
67
67
  conditionDescription,
68
- excludeParentQuestionTypesInConditions
68
+ excludeParentQuestionTypesInConditions,
69
+ disabledMappingTypes,
70
+ customTypeOptions
69
71
  }) => {
70
72
  var _a;
71
73
  const {
@@ -254,7 +256,9 @@ const Mapping = ({
254
256
  isBtnDisabled: commonFields.length === 1,
255
257
  isFirstField: idx === 0,
256
258
  ssMappingData,
257
- showCustomPropertyModal: () => setShowCustomPropertyModal(true)
259
+ showCustomPropertyModal: () => setShowCustomPropertyModal(true),
260
+ disabledMappingTypes,
261
+ customTypeOptions
258
262
  }
259
263
  )))
260
264
  ), /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$16", css: { marginTop: "$16" } }, commonFields == null ? void 0 : commonFields.map((field$1, idx) => /* @__PURE__ */ React.createElement(
@@ -274,7 +278,9 @@ const Mapping = ({
274
278
  isBtnDisabled: essentialFields.length === 0 && commonFields.length === 1,
275
279
  isFirstField: idx === 0,
276
280
  ssMappingData,
277
- showCustomPropertyModal: () => setShowCustomPropertyModal(true)
281
+ showCustomPropertyModal: () => setShowCustomPropertyModal(true),
282
+ disabledMappingTypes,
283
+ customTypeOptions
278
284
  }
279
285
  ))), /* @__PURE__ */ React.createElement(
280
286
  button.Button,
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sources":["../../../../src/mapping/components/mapping.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useEffect, useCallback, useMemo } from 'react';\nimport {\n Box,\n Button,\n Checkbox,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from '@sparrowengg/twigs-react';\nimport { PlusIcon } from '@sparrowengg/twigs-react-icons';\nimport { v4 as uuid } from 'uuid';\nimport { surveySparrowURL, mappingPropertyValues } from '../../commons/constants';\nimport { DEFAULT_FIELD_VALUE } from '../constants';\nimport { MappingTypeProps, FieldType, IntegrationFieldType } from '../types';\nimport { FormFieldValue } from '../../commons/types/enhanced';\nimport ImportModal from '../../commons/components/import-modal';\nimport Spinner from '../../commons/components/spinner';\nimport Field from './field';\nimport PlaceholderSpan from './placeholder-span';\nimport MappingCondition from '../../commons/components/mapping-conditions';\nimport { ConditionCard } from '../utils/conditionDescriptionBuilder';\nimport { useMappingState, useSurveyData, useFieldHandler } from '../hooks';\nimport {\n deriveConditionDataFromSurveyData,\n hasValidConditionData,\n hasAnyMappingData,\n} from '../../dynamic-mapping/helpers';\n\n/* ----- Main Component ----- */\n\n/**\n * Mapping component for multi-field mapping configuration\n * \n * @param {MappingTypeProps} props - Component props\n * @returns {JSX.Element} Mapping component\n * \n * @example\n * <Mapping\n * surveyId={123}\n * token=\"token\"\n * fields={fields}\n * setFields={setFields}\n * integrationFields={integrationFields}\n * setIntegrationFields={setIntegrationFields}\n * />\n */\nexport const Mapping: React.FC<MappingTypeProps> = ({\n hasDerivedQuestions,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n havingTypeDropdown,\n integrationName,\n surveyId,\n surveyType,\n fields,\n setFields,\n integrationFields,\n hasCustomMenuProperty,\n setIntegrationFields,\n apiURL = surveySparrowURL,\n token,\n surveyDetails,\n customList,\n oldResponse,\n conditionDescription,\n excludeParentQuestionTypesInConditions,\n}) => {\n /* ----- Hooks ----- */\n\n const {\n showCustomPropertyModal,\n setShowCustomPropertyModal,\n customPropertyField,\n setCustomPropertyField,\n essentialFields,\n commonFields,\n } = useMappingState(fields);\n\n const { ssMappingData, loader, setLoader, fetchInitialMappingData } = useSurveyData({\n surveyId,\n apiURL,\n token,\n surveyDetails,\n });\n\n const { handleFieldValue } = useFieldHandler({ fields, setFields });\n\n /* ----- Helper Functions ----- */\n\n /**\n * Checks if all required props are provided\n * \n * @returns {boolean} True if all required props exist\n */\n const hasRequiredProps = useCallback(\n () =>\n !!fields &&\n !!setFields &&\n !!integrationFields &&\n !!setIntegrationFields &&\n (!!token || Object.keys(surveyDetails?.surveyProperties ?? {})?.length > 0),\n [fields, setFields, integrationFields, setIntegrationFields, token, surveyDetails]\n );\n\n /**\n * Converts number to word representation\n * \n * @param {number} length - Number to convert\n * @returns {string} Word representation or \"These\"\n */\n const getEssentialFieldsNumber = useCallback((length: number): string => {\n const numberMapping: Record<number, string> = {\n 1: 'one',\n 2: 'two',\n 3: 'three',\n 4: 'four',\n 5: 'five',\n 6: 'six',\n 7: 'seven',\n 8: 'eight',\n 9: 'nine',\n 10: 'ten',\n };\n return numberMapping[length] ?? 'These';\n }, []);\n\n /* ----- Event Handlers ----- */\n\n /**\n * Handles adding a new mapping field\n */\n const handleAddField = useCallback(() => {\n setFields([\n ...fields,\n {\n ...DEFAULT_FIELD_VALUE,\n id: uuid(),\n } as FieldType,\n ]);\n }, [fields, setFields]);\n\n /**\n * Handles removing a field\n * \n * @param {string | number} fieldId - ID of field to remove\n */\n const handleRemoveField = useCallback(\n (fieldId: string | number) => {\n setFields((prev) => prev.filter((currentField) => currentField.id !== fieldId));\n },\n [setFields]\n );\n\n /**\n * Handles custom property modal save\n */\n const handleCustomPropertySave = useCallback(() => {\n setIntegrationFields &&\n setIntegrationFields((prev) => [\n ...prev,\n {\n id: customPropertyField,\n label: customPropertyField,\n value: customPropertyField,\n type: 'string',\n } as unknown as IntegrationFieldType,\n ]);\n setShowCustomPropertyModal(false);\n }, [customPropertyField, setIntegrationFields, setShowCustomPropertyModal]);\n\n /**\n * Handles condition clear action\n */\n const handleConditionClear = useCallback(() => {\n setMappingConditions && setMappingConditions(undefined);\n }, [setMappingConditions]);\n\n /* ----- Effects ----- */\n\n useEffect(() => {\n setFields(\n fields?.length === 0\n ? [{ ...DEFAULT_FIELD_VALUE, id: uuid() } as FieldType]\n : fields?.map((field) => ({ ...field, id: uuid() })) as FieldType[]\n );\n if (!!surveyId) {\n fetchInitialMappingData();\n } else {\n setLoader(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token, surveyId]);\n\n /* ----- Memoized Values ----- */\n\n const hasSurveyProperties = useMemo(\n () => Object.keys(surveyDetails?.surveyProperties ?? {})?.length > 0,\n [surveyDetails]\n );\n\n // Compute effective conditionData - use prop if provided, otherwise derive from survey data\n const effectiveConditionData = useMemo(() => {\n // If conditionData prop is provided and valid, use it directly\n if (hasValidConditionData(conditionData)) {\n return conditionData;\n }\n // The hook's ssMappingData carries API-enriched questions (with hierarchy) but\n // never includes the `property` (Submission properties) category, and its\n // contactProperties can be empty when the API fetch returns nothing. Submission\n // properties are a static list (mappingPropertyValues, minus RESPONSE_PDF which\n // is not a condition operand) - the same source SINGLE_MAPPING uses - and are\n // not present on surveyProperties in the API flow. Fill both categories as a\n // fallback so the condition builder lists Submission properties and the default\n // contact properties, matching SINGLE_MAPPING, without altering the already-working\n // questions, variables and expressions.\n const surveyProperties = surveyDetails?.surveyProperties;\n let sourceData: any = ssMappingData || surveyProperties;\n // Only enrich when the base source actually has some field data, so an empty\n // state does not surface a properties-only condition list.\n if (sourceData && hasAnyMappingData(sourceData as any)) {\n const defaultProperty = mappingPropertyValues.filter((p) => p.id !== 'RESPONSE_PDF');\n sourceData = {\n ...sourceData,\n property: (sourceData as any)?.property?.length\n ? (sourceData as any).property\n : (surveyProperties as any)?.property?.length\n ? (surveyProperties as any).property\n : defaultProperty,\n // The API fetch (/v3/contact_properties) returns both custom and default\n // contact properties, so prefer the fetched set; fall back to surveyProperties\n // when the fetch yielded nothing. (Default contacts arrive without an `id` -\n // deriveConditionData falls back to their `name` so they are still listed.)\n contactProperties: (sourceData as any)?.contactProperties?.length\n ? (sourceData as any).contactProperties\n : (surveyProperties as any)?.contactProperties,\n };\n return deriveConditionDataFromSurveyData(sourceData as any, {\n excludeParentQuestionTypes: excludeParentQuestionTypesInConditions,\n });\n }\n return [];\n }, [\n conditionData,\n surveyDetails?.surveyProperties,\n ssMappingData,\n excludeParentQuestionTypesInConditions,\n ]);\n\n /* ----- Render Functions ----- */\n\n if (!hasRequiredProps()) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\" css={{ height: '100%' }}>\n <Heading size=\"h4\" weight=\"bold\">\n Provide the needed props to import Mapping Template\n </Heading>\n </Flex>\n );\n }\n\n if (loader) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex alignItems=\"center\" justifyContent=\"center\" css={{ height: 'calc(100vh - 57px)' }}>\n <Spinner />\n </Flex>\n </Flex>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Box css={{ maxWidth: 1120, width: '100%', marginBlock: '$40' }}>\n {/* Header Section */}\n {hasConditions ? (\n <>\n <Flex gap=\"$2\" css={{ marginBlock: '$8' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n Survey Name:\n </Text>\n <Text size=\"sm\" weight={'medium'} css={{ color: '$neutral800' }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Heading size=\"h5\" css={{ color: '$neutral900' }}>{`Map to ${integrationName}`}</Heading>\n {mappingConditions?.filterGroups?.length ? (\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n hasDerivedQuestions={hasDerivedQuestions}\n conditionData={effectiveConditionData}\n renderTrigger={(onEditClick) => (\n <ConditionCard\n isEditable={true}\n conditionsData={mappingConditions}\n onEditClick={onEditClick}\n onClearClick={handleConditionClear}\n showMoreMenu={true}\n />\n )}\n />\n ) : (\n <Flex gap=\"$2\" css={{ marginTop: '$8' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n {conditionDescription}\n </Text>\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n hasDerivedQuestions={hasDerivedQuestions}\n conditionData={effectiveConditionData}\n />\n </Flex>\n )}\n </>\n ) : (\n <>\n <Heading size=\"h5\" css={{ color: '$neutral900' }}>{`Map to ${integrationName}`}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: '$4' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n Survey Name:\n </Text>\n <Text size=\"sm\" weight={'medium'} css={{ color: '$neutral800' }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n </>\n )}\n\n {/* Essential Fields Section */}\n {!!essentialFields?.length && (\n <Box\n css={{\n width: '100%',\n paddingBlock: '$12 $16',\n ...(commonFields?.length\n ? { borderBottom: '$borderWidths$xs dashed $neutral200' }\n : {}),\n maxWidth: 1084,\n }}\n >\n {!hasConditions && (\n <Text\n size=\"md\"\n css={{\n color: '$neutral500',\n lineHeight: '$md',\n marginTop: '$4',\n }}\n >\n This connection requires{' '}\n <PlaceholderSpan color=\"$neutral600\">{essentialFields?.length}</PlaceholderSpan>\n <PlaceholderSpan color=\"$negative500\">*</PlaceholderSpan> essential mappings\n </Text>\n )}\n\n <Flex flexDirection=\"column\" gap=\"$20\" css={{ marginTop: '$12' }}>\n {essentialFields?.map((field, idx) => (\n <Field\n hasDerivedQuestions={hasDerivedQuestions}\n hasSurveyProperties={hasSurveyProperties}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n key={field.id}\n field={field}\n integrationName={integrationName}\n handleFieldValue={(\n id: string | number,\n property: string,\n value: FormFieldValue\n ) => handleFieldValue(id, property, value)}\n hasCustomMenuProperty={hasCustomMenuProperty}\n integrationFields={integrationFields}\n isBtnDisabled={commonFields.length === 1}\n isFirstField={idx === 0}\n ssMappingData={ssMappingData}\n showCustomPropertyModal={() => setShowCustomPropertyModal(true)}\n />\n ))}\n </Flex>\n </Box>\n )}\n\n {/* Common Fields Section */}\n <Flex flexDirection=\"column\" gap=\"$16\" css={{ marginTop: '$16' }}>\n {commonFields?.map((field, idx) => (\n <Field\n hasDerivedQuestions={hasDerivedQuestions}\n hasSurveyProperties={hasSurveyProperties}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n key={field.id}\n field={field}\n integrationName={integrationName}\n removeField={() => handleRemoveField(field.id)}\n handleFieldValue={(id: string | number, property: string, value: FormFieldValue) =>\n handleFieldValue(id, property, value)\n }\n hasCustomMenuProperty={hasCustomMenuProperty}\n integrationFields={integrationFields}\n isBtnDisabled={essentialFields.length === 0 && commonFields.length === 1}\n isFirstField={idx === 0}\n ssMappingData={ssMappingData}\n showCustomPropertyModal={() => setShowCustomPropertyModal(true)}\n />\n ))}\n </Flex>\n\n {/* Add New Field Button */}\n <Button\n leftIcon={<PlusIcon />}\n color=\"default\"\n css={{ marginTop: '$16' }}\n onClick={handleAddField}\n size=\"md\"\n >\n New mapping field\n </Button>\n\n {/* Custom List Section */}\n {customList?.hasCustomList && (\n <Flex css={{ marginTop: '$40' }} flexDirection=\"column\" gap=\"$8\">\n <Flex flexDirection=\"column\" gap=\"$3\">\n <Heading size=\"h5\">Choose a List</Heading>\n <Text css={{ color: '$neutral500' }} size=\"sm\">\n Pick a list to save mapped fields; If not, they'll be saved under all profiles.\n </Text>\n </Flex>\n <Select\n css={{ maxWidth: 400, width: '100%' }}\n size=\"lg\"\n options={customList.options}\n value={customList.value}\n placeholder=\"\"\n onChange={(value: any) => customList.onChangeHandler(value)}\n />\n </Flex>\n )}\n\n {/* Old Response Checkbox */}\n {oldResponse?.hasOldResponse && (\n <Checkbox\n onChange={(value: any) => oldResponse.onChangeHandler(value)}\n css={{ marginBlock: '$8', cursor: 'pointer' }}\n checked={oldResponse.value as boolean}\n >\n <FormLabel size=\"sm\">Import Old Response</FormLabel>\n </Checkbox>\n )}\n\n {/* Custom Property Modal */}\n {showCustomPropertyModal && (\n <ImportModal\n onCloseHandler={() => setShowCustomPropertyModal(false)}\n onInputHandler={(value: any) => setCustomPropertyField(value)}\n onSaveHandler={handleCustomPropertySave}\n />\n )}\n </Box>\n </Flex>\n );\n};\n"],"names":["surveySparrowURL","useMappingState","useSurveyData","useFieldHandler","useCallback","_a","DEFAULT_FIELD_VALUE","uuid","useEffect","useMemo","hasValidConditionData","hasAnyMappingData","mappingPropertyValues","deriveConditionDataFromSurveyData","Flex","Heading","Spinner","Box","Text","MappingCondition","ConditionCard","PlaceholderSpan","field","Field","Button","PlusIcon","Select","Checkbox","FormLabel","ImportModal"],"mappings":"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"}
1
+ {"version":3,"file":"mapping.js","sources":["../../../../src/mapping/components/mapping.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useEffect, useCallback, useMemo } from 'react';\nimport {\n Box,\n Button,\n Checkbox,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from '@sparrowengg/twigs-react';\nimport { PlusIcon } from '@sparrowengg/twigs-react-icons';\nimport { v4 as uuid } from 'uuid';\nimport { surveySparrowURL, mappingPropertyValues } from '../../commons/constants';\nimport { DEFAULT_FIELD_VALUE } from '../constants';\nimport { MappingTypeProps, FieldType, IntegrationFieldType } from '../types';\nimport { FormFieldValue } from '../../commons/types/enhanced';\nimport ImportModal from '../../commons/components/import-modal';\nimport Spinner from '../../commons/components/spinner';\nimport Field from './field';\nimport PlaceholderSpan from './placeholder-span';\nimport MappingCondition from '../../commons/components/mapping-conditions';\nimport { ConditionCard } from '../utils/conditionDescriptionBuilder';\nimport { useMappingState, useSurveyData, useFieldHandler } from '../hooks';\nimport {\n deriveConditionDataFromSurveyData,\n hasValidConditionData,\n hasAnyMappingData,\n} from '../../dynamic-mapping/helpers';\n\n/* ----- Main Component ----- */\n\n/**\n * Mapping component for multi-field mapping configuration\n * \n * @param {MappingTypeProps} props - Component props\n * @returns {JSX.Element} Mapping component\n * \n * @example\n * <Mapping\n * surveyId={123}\n * token=\"token\"\n * fields={fields}\n * setFields={setFields}\n * integrationFields={integrationFields}\n * setIntegrationFields={setIntegrationFields}\n * />\n */\nexport const Mapping: React.FC<MappingTypeProps> = ({\n hasDerivedQuestions,\n hasConditions,\n mappingConditions,\n setMappingConditions,\n conditionData,\n havingTypeDropdown,\n integrationName,\n surveyId,\n surveyType,\n fields,\n setFields,\n integrationFields,\n hasCustomMenuProperty,\n setIntegrationFields,\n apiURL = surveySparrowURL,\n token,\n surveyDetails,\n customList,\n oldResponse,\n conditionDescription,\n excludeParentQuestionTypesInConditions,\n disabledMappingTypes,\n\n customTypeOptions,\n}) => {\n /* ----- Hooks ----- */\n\n const {\n showCustomPropertyModal,\n setShowCustomPropertyModal,\n customPropertyField,\n setCustomPropertyField,\n essentialFields,\n commonFields,\n } = useMappingState(fields);\n\n const { ssMappingData, loader, setLoader, fetchInitialMappingData } = useSurveyData({\n surveyId,\n apiURL,\n token,\n surveyDetails,\n });\n\n const { handleFieldValue } = useFieldHandler({ fields, setFields });\n\n /* ----- Helper Functions ----- */\n\n /**\n * Checks if all required props are provided\n * \n * @returns {boolean} True if all required props exist\n */\n const hasRequiredProps = useCallback(\n () =>\n !!fields &&\n !!setFields &&\n !!integrationFields &&\n !!setIntegrationFields &&\n (!!token || Object.keys(surveyDetails?.surveyProperties ?? {})?.length > 0),\n [fields, setFields, integrationFields, setIntegrationFields, token, surveyDetails]\n );\n\n /**\n * Converts number to word representation\n * \n * @param {number} length - Number to convert\n * @returns {string} Word representation or \"These\"\n */\n const getEssentialFieldsNumber = useCallback((length: number): string => {\n const numberMapping: Record<number, string> = {\n 1: 'one',\n 2: 'two',\n 3: 'three',\n 4: 'four',\n 5: 'five',\n 6: 'six',\n 7: 'seven',\n 8: 'eight',\n 9: 'nine',\n 10: 'ten',\n };\n return numberMapping[length] ?? 'These';\n }, []);\n\n /* ----- Event Handlers ----- */\n\n /**\n * Handles adding a new mapping field\n */\n const handleAddField = useCallback(() => {\n setFields([\n ...fields,\n {\n ...DEFAULT_FIELD_VALUE,\n id: uuid(),\n } as FieldType,\n ]);\n }, [fields, setFields]);\n\n /**\n * Handles removing a field\n * \n * @param {string | number} fieldId - ID of field to remove\n */\n const handleRemoveField = useCallback(\n (fieldId: string | number) => {\n setFields((prev) => prev.filter((currentField) => currentField.id !== fieldId));\n },\n [setFields]\n );\n\n /**\n * Handles custom property modal save\n */\n const handleCustomPropertySave = useCallback(() => {\n setIntegrationFields &&\n setIntegrationFields((prev) => [\n ...prev,\n {\n id: customPropertyField,\n label: customPropertyField,\n value: customPropertyField,\n type: 'string',\n } as unknown as IntegrationFieldType,\n ]);\n setShowCustomPropertyModal(false);\n }, [customPropertyField, setIntegrationFields, setShowCustomPropertyModal]);\n\n /**\n * Handles condition clear action\n */\n const handleConditionClear = useCallback(() => {\n setMappingConditions && setMappingConditions(undefined);\n }, [setMappingConditions]);\n\n /* ----- Effects ----- */\n\n useEffect(() => {\n setFields(\n fields?.length === 0\n ? [{ ...DEFAULT_FIELD_VALUE, id: uuid() } as FieldType]\n : fields?.map((field) => ({ ...field, id: uuid() })) as FieldType[]\n );\n if (!!surveyId) {\n fetchInitialMappingData();\n } else {\n setLoader(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [token, surveyId]);\n\n /* ----- Memoized Values ----- */\n\n const hasSurveyProperties = useMemo(\n () => Object.keys(surveyDetails?.surveyProperties ?? {})?.length > 0,\n [surveyDetails]\n );\n\n // Compute effective conditionData - use prop if provided, otherwise derive from survey data\n const effectiveConditionData = useMemo(() => {\n // If conditionData prop is provided and valid, use it directly\n if (hasValidConditionData(conditionData)) {\n return conditionData;\n }\n // The hook's ssMappingData carries API-enriched questions (with hierarchy) but\n // never includes the `property` (Submission properties) category, and its\n // contactProperties can be empty when the API fetch returns nothing. Submission\n // properties are a static list (mappingPropertyValues, minus RESPONSE_PDF which\n // is not a condition operand) - the same source SINGLE_MAPPING uses - and are\n // not present on surveyProperties in the API flow. Fill both categories as a\n // fallback so the condition builder lists Submission properties and the default\n // contact properties, matching SINGLE_MAPPING, without altering the already-working\n // questions, variables and expressions.\n const surveyProperties = surveyDetails?.surveyProperties;\n let sourceData: any = ssMappingData || surveyProperties;\n // Only enrich when the base source actually has some field data, so an empty\n // state does not surface a properties-only condition list.\n if (sourceData && hasAnyMappingData(sourceData as any)) {\n const defaultProperty = mappingPropertyValues.filter((p) => p.id !== 'RESPONSE_PDF');\n sourceData = {\n ...sourceData,\n property: (sourceData as any)?.property?.length\n ? (sourceData as any).property\n : (surveyProperties as any)?.property?.length\n ? (surveyProperties as any).property\n : defaultProperty,\n // The API fetch (/v3/contact_properties) returns both custom and default\n // contact properties, so prefer the fetched set; fall back to surveyProperties\n // when the fetch yielded nothing. (Default contacts arrive without an `id` -\n // deriveConditionData falls back to their `name` so they are still listed.)\n contactProperties: (sourceData as any)?.contactProperties?.length\n ? (sourceData as any).contactProperties\n : (surveyProperties as any)?.contactProperties,\n };\n return deriveConditionDataFromSurveyData(sourceData as any, {\n excludeParentQuestionTypes: excludeParentQuestionTypesInConditions,\n });\n }\n return [];\n }, [\n conditionData,\n surveyDetails?.surveyProperties,\n ssMappingData,\n excludeParentQuestionTypesInConditions,\n ]);\n\n /* ----- Render Functions ----- */\n\n if (!hasRequiredProps()) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\" css={{ height: '100%' }}>\n <Heading size=\"h4\" weight=\"bold\">\n Provide the needed props to import Mapping Template\n </Heading>\n </Flex>\n );\n }\n\n if (loader) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Flex alignItems=\"center\" justifyContent=\"center\" css={{ height: 'calc(100vh - 57px)' }}>\n <Spinner />\n </Flex>\n </Flex>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Box css={{ maxWidth: 1120, width: '100%', marginBlock: '$40' }}>\n {/* Header Section */}\n {hasConditions ? (\n <>\n <Flex gap=\"$2\" css={{ marginBlock: '$8' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n Survey Name:\n </Text>\n <Text size=\"sm\" weight={'medium'} css={{ color: '$neutral800' }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Heading size=\"h5\" css={{ color: '$neutral900' }}>{`Map to ${integrationName}`}</Heading>\n {mappingConditions?.filterGroups?.length ? (\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n hasDerivedQuestions={hasDerivedQuestions}\n conditionData={effectiveConditionData}\n renderTrigger={(onEditClick) => (\n <ConditionCard\n isEditable={true}\n conditionsData={mappingConditions}\n onEditClick={onEditClick}\n onClearClick={handleConditionClear}\n showMoreMenu={true}\n />\n )}\n />\n ) : (\n <Flex gap=\"$2\" css={{ marginTop: '$8' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n {conditionDescription}\n </Text>\n <MappingCondition\n existingContions={mappingConditions}\n setExistingCondtions={setMappingConditions}\n hasDerivedQuestions={hasDerivedQuestions}\n conditionData={effectiveConditionData}\n />\n </Flex>\n )}\n </>\n ) : (\n <>\n <Heading size=\"h5\" css={{ color: '$neutral900' }}>{`Map to ${integrationName}`}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: '$4' }}>\n <Text size=\"sm\" css={{ color: '$neutral500' }}>\n Survey Name:\n </Text>\n <Text size=\"sm\" weight={'medium'} css={{ color: '$neutral800' }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n </>\n )}\n\n {/* Essential Fields Section */}\n {!!essentialFields?.length && (\n <Box\n css={{\n width: '100%',\n paddingBlock: '$12 $16',\n ...(commonFields?.length\n ? { borderBottom: '$borderWidths$xs dashed $neutral200' }\n : {}),\n maxWidth: 1084,\n }}\n >\n {!hasConditions && (\n <Text\n size=\"md\"\n css={{\n color: '$neutral500',\n lineHeight: '$md',\n marginTop: '$4',\n }}\n >\n This connection requires{' '}\n <PlaceholderSpan color=\"$neutral600\">{essentialFields?.length}</PlaceholderSpan>\n <PlaceholderSpan color=\"$negative500\">*</PlaceholderSpan> essential mappings\n </Text>\n )}\n\n <Flex flexDirection=\"column\" gap=\"$20\" css={{ marginTop: '$12' }}>\n {essentialFields?.map((field, idx) => (\n <Field\n hasDerivedQuestions={hasDerivedQuestions}\n hasSurveyProperties={hasSurveyProperties}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n key={field.id}\n field={field}\n integrationName={integrationName}\n handleFieldValue={(\n id: string | number,\n property: string,\n value: FormFieldValue\n ) => handleFieldValue(id, property, value)}\n hasCustomMenuProperty={hasCustomMenuProperty}\n integrationFields={integrationFields}\n isBtnDisabled={commonFields.length === 1}\n isFirstField={idx === 0}\n ssMappingData={ssMappingData}\n showCustomPropertyModal={() => setShowCustomPropertyModal(true)}\n disabledMappingTypes={disabledMappingTypes}\n\n customTypeOptions={customTypeOptions}\n />\n ))}\n </Flex>\n </Box>\n )}\n\n {/* Common Fields Section */}\n <Flex flexDirection=\"column\" gap=\"$16\" css={{ marginTop: '$16' }}>\n {commonFields?.map((field, idx) => (\n <Field\n hasDerivedQuestions={hasDerivedQuestions}\n hasSurveyProperties={hasSurveyProperties}\n surveyType={surveyType}\n havingTypeDropdown={havingTypeDropdown}\n key={field.id}\n field={field}\n integrationName={integrationName}\n removeField={() => handleRemoveField(field.id)}\n handleFieldValue={(id: string | number, property: string, value: FormFieldValue) =>\n handleFieldValue(id, property, value)\n }\n hasCustomMenuProperty={hasCustomMenuProperty}\n integrationFields={integrationFields}\n isBtnDisabled={essentialFields.length === 0 && commonFields.length === 1}\n isFirstField={idx === 0}\n ssMappingData={ssMappingData}\n showCustomPropertyModal={() => setShowCustomPropertyModal(true)}\n disabledMappingTypes={disabledMappingTypes}\n customTypeOptions={customTypeOptions}\n />\n ))}\n </Flex>\n\n {/* Add New Field Button */}\n <Button\n leftIcon={<PlusIcon />}\n color=\"default\"\n css={{ marginTop: '$16' }}\n onClick={handleAddField}\n size=\"md\"\n >\n New mapping field\n </Button>\n\n {/* Custom List Section */}\n {customList?.hasCustomList && (\n <Flex css={{ marginTop: '$40' }} flexDirection=\"column\" gap=\"$8\">\n <Flex flexDirection=\"column\" gap=\"$3\">\n <Heading size=\"h5\">Choose a List</Heading>\n <Text css={{ color: '$neutral500' }} size=\"sm\">\n Pick a list to save mapped fields; If not, they'll be saved under all profiles.\n </Text>\n </Flex>\n <Select\n css={{ maxWidth: 400, width: '100%' }}\n size=\"lg\"\n options={customList.options}\n value={customList.value}\n placeholder=\"\"\n onChange={(value: any) => customList.onChangeHandler(value)}\n />\n </Flex>\n )}\n\n {/* Old Response Checkbox */}\n {oldResponse?.hasOldResponse && (\n <Checkbox\n onChange={(value: any) => oldResponse.onChangeHandler(value)}\n css={{ marginBlock: '$8', cursor: 'pointer' }}\n checked={oldResponse.value as boolean}\n >\n <FormLabel size=\"sm\">Import Old Response</FormLabel>\n </Checkbox>\n )}\n\n {/* Custom Property Modal */}\n {showCustomPropertyModal && (\n <ImportModal\n onCloseHandler={() => setShowCustomPropertyModal(false)}\n onInputHandler={(value: any) => setCustomPropertyField(value)}\n onSaveHandler={handleCustomPropertySave}\n />\n )}\n </Box>\n </Flex>\n );\n};\n"],"names":["surveySparrowURL","useMappingState","useSurveyData","useFieldHandler","useCallback","_a","DEFAULT_FIELD_VALUE","uuid","useEffect","useMemo","hasValidConditionData","hasAnyMappingData","mappingPropertyValues","deriveConditionDataFromSurveyData","Flex","Heading","Spinner","Box","Text","MappingCondition","ConditionCard","PlaceholderSpan","field","Field","Button","PlusIcon","Select","Checkbox","FormLabel","ImportModal"],"mappings":"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"}
@@ -36,7 +36,8 @@ const EventSetup = ({
36
36
  objects,
37
37
  actions,
38
38
  surveyDetails,
39
- navigateTriggerPage
39
+ navigateTriggerPage,
40
+ isLoadingEventSetup
40
41
  }) => {
41
42
  var _a, _b, _c;
42
43
  const { tid } = testId_context.useTestId();
@@ -212,12 +213,12 @@ const EventSetup = ({
212
213
  ))), /* @__PURE__ */ React.createElement(
213
214
  button.Button,
214
215
  {
215
- dataTestId: "continue-btn",
216
216
  "data-testid": tid("continue-btn"),
217
217
  size: "lg",
218
- rightIcon: /* @__PURE__ */ React.createElement(chevronRight.ChevronRightIcon, null),
218
+ loading: isLoadingEventSetup,
219
+ rightIcon: isLoadingEventSetup ? void 0 : /* @__PURE__ */ React.createElement(chevronRight.ChevronRightIcon, null),
219
220
  css: { marginTop: "$16" },
220
- disabled: isContinueDisabled || forceDisableEventSetupCTA,
221
+ disabled: isContinueDisabled || forceDisableEventSetupCTA || isLoadingEventSetup,
221
222
  onClick: handleContinueClick
222
223
  },
223
224
  uiStrings.TRIGGERS_UI_STRINGS.CONTINUE