@sparrowengg/integrations-templates-frontend 1.9.84-beta.0 → 1.9.84-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/cjs/authentication/constants/index.js +115 -1
  2. package/dist/cjs/authentication/constants/index.js.map +1 -1
  3. package/dist/cjs/authentication/index.js +36 -32
  4. package/dist/cjs/authentication/index.js.map +1 -1
  5. package/dist/cjs/commons/components/NamingModal.js +82 -0
  6. package/dist/cjs/commons/components/NamingModal.js.map +1 -0
  7. package/dist/cjs/commons/constants/enhanced.js +12 -0
  8. package/dist/cjs/commons/constants/enhanced.js.map +1 -0
  9. package/dist/cjs/commons/constants/index.js +7 -0
  10. package/dist/cjs/commons/constants/index.js.map +1 -1
  11. package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -1
  12. package/dist/cjs/contact-import/components/contact-import-mapping.js +10 -7
  13. package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -1
  14. package/dist/cjs/contact-import/index.js +6 -9
  15. package/dist/cjs/contact-import/index.js.map +1 -1
  16. package/dist/cjs/integration-template/components/dashboard.js +76 -51
  17. package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
  18. package/dist/cjs/integration-template/index.js +4 -2
  19. package/dist/cjs/integration-template/index.js.map +1 -1
  20. package/dist/cjs/mapping/components/custom-date-menu.js +3 -2
  21. package/dist/cjs/mapping/components/custom-date-menu.js.map +1 -1
  22. package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
  23. package/dist/cjs/mapping/components/field.js +14 -6
  24. package/dist/cjs/mapping/components/field.js.map +1 -1
  25. package/dist/cjs/mapping/components/mapping.js +25 -17
  26. package/dist/cjs/mapping/components/mapping.js.map +1 -1
  27. package/dist/cjs/mapping/constants/index.js +32 -0
  28. package/dist/cjs/mapping/constants/index.js.map +1 -0
  29. package/dist/cjs/mapping/index.js +453 -23
  30. package/dist/cjs/mapping/index.js.map +1 -1
  31. package/dist/cjs/mapping/services/index.js.map +1 -1
  32. package/dist/cjs/single-mapping/components/mapping.js +47 -17
  33. package/dist/cjs/single-mapping/components/mapping.js.map +1 -1
  34. package/dist/cjs/single-mapping/index.js +22 -19
  35. package/dist/cjs/single-mapping/index.js.map +1 -1
  36. package/dist/cjs/triggers/components/trigger.js +14 -18
  37. package/dist/cjs/triggers/components/trigger.js.map +1 -1
  38. package/dist/cjs/triggers/constants/index.js +5 -11
  39. package/dist/cjs/triggers/constants/index.js.map +1 -1
  40. package/dist/cjs/triggers/index.js +16 -21
  41. package/dist/cjs/triggers/index.js.map +1 -1
  42. package/dist/es/authentication/constants/index.js +114 -2
  43. package/dist/es/authentication/constants/index.js.map +1 -1
  44. package/dist/es/authentication/index.js +35 -31
  45. package/dist/es/authentication/index.js.map +1 -1
  46. package/dist/es/commons/components/NamingModal.js +78 -0
  47. package/dist/es/commons/components/NamingModal.js.map +1 -0
  48. package/dist/es/commons/constants/enhanced.js +10 -0
  49. package/dist/es/commons/constants/enhanced.js.map +1 -0
  50. package/dist/es/commons/constants/index.js +5 -1
  51. package/dist/es/commons/constants/index.js.map +1 -1
  52. package/dist/es/contact-import/components/contact-import-configure.js.map +1 -1
  53. package/dist/es/contact-import/components/contact-import-mapping.js +10 -7
  54. package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -1
  55. package/dist/es/contact-import/index.js +4 -7
  56. package/dist/es/contact-import/index.js.map +1 -1
  57. package/dist/es/integration-template/components/dashboard.js +76 -51
  58. package/dist/es/integration-template/components/dashboard.js.map +1 -1
  59. package/dist/es/integration-template/index.js +4 -2
  60. package/dist/es/integration-template/index.js.map +1 -1
  61. package/dist/es/mapping/components/custom-date-menu.js +3 -2
  62. package/dist/es/mapping/components/custom-date-menu.js.map +1 -1
  63. package/dist/es/mapping/components/custom-menu.js.map +1 -1
  64. package/dist/es/mapping/components/field.js +14 -6
  65. package/dist/es/mapping/components/field.js.map +1 -1
  66. package/dist/es/mapping/components/mapping.js +26 -18
  67. package/dist/es/mapping/components/mapping.js.map +1 -1
  68. package/dist/es/mapping/constants/index.js +28 -0
  69. package/dist/es/mapping/constants/index.js.map +1 -0
  70. package/dist/es/mapping/index.js +453 -23
  71. package/dist/es/mapping/index.js.map +1 -1
  72. package/dist/es/mapping/services/index.js.map +1 -1
  73. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
  74. package/dist/es/single-mapping/components/mapping.js +47 -17
  75. package/dist/es/single-mapping/components/mapping.js.map +1 -1
  76. package/dist/es/single-mapping/index.js +22 -19
  77. package/dist/es/single-mapping/index.js.map +1 -1
  78. package/dist/es/triggers/components/trigger.js +14 -18
  79. package/dist/es/triggers/components/trigger.js.map +1 -1
  80. package/dist/es/triggers/constants/index.js +5 -11
  81. package/dist/es/triggers/constants/index.js.map +1 -1
  82. package/dist/es/triggers/index.js +16 -21
  83. package/dist/es/triggers/index.js.map +1 -1
  84. package/dist/index.d.ts +257 -86
  85. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/mapping/constants/index.ts"],"sourcesContent":["import { SelectOption } from '../../commons/types/enhanced';\nimport { MAPPING_TYPES, DATA_TYPE_OPTIONS } from '../../commons/constants/enhanced';\n\n// Mapping specific constants\nexport const MAPPING_TAB_VALUES: Array<{\n id: number;\n name: string;\n value: string;\n placeholder: string;\n}> = [\n { id: 1, name: 'Questions', value: 'QUESTIONS', placeholder: 'questions' },\n { id: 6, name: 'Enriched Columns', value: 'DERIVED_QUESTIONS', placeholder: 'derivedQuestions' },\n { id: 2, name: 'Variable', value: 'VARIABLE', placeholder: 'variables' },\n { id: 3, name: 'Contact', value: 'CONTACT', placeholder: 'contactProperties' },\n { id: 4, name: 'Expression', value: 'EXPRESSION', placeholder: 'expressions' },\n { id: 5, name: 'Property', value: 'PROPERTY', placeholder: 'property' },\n];\n\nexport const MAPPING_PROPERTY_VALUES: Array<{\n name: string;\n id: string;\n isEnabled: boolean;\n}> = [\n { name: 'Select all Properties', id: 'ALL', isEnabled: false },\n { name: 'Started Time', id: 'STARTED_TIME', isEnabled: false },\n { name: 'Submitted Time', id: 'SUBMITTED_TIME', isEnabled: false },\n { name: 'CompletionStatus', id: 'COMPLETION_STATUS', isEnabled: false },\n { name: 'IP Address', id: 'IP_ADDRESS', isEnabled: false },\n { name: 'Location', id: 'LOCATION', isEnabled: false },\n { name: 'DMS (Lat, Long)', id: 'DMS', isEnabled: false },\n { name: 'Channel Type', id: 'CHANNEL_TYPE', isEnabled: false },\n { name: 'Channel Name', id: 'CHANNEL_NAME', isEnabled: false },\n { name: 'Device ID', id: 'DEVICE_ID', isEnabled: false },\n { name: 'Device Name', id: 'DEVICE_NAME', isEnabled: false },\n { name: 'Browser', id: 'BROWSER', isEnabled: false },\n { name: 'OS', id: 'OS', isEnabled: false },\n { name: 'Submission Id', id: 'SUBMISSION_ID', isEnabled: false },\n { name: 'Time Zone', id: 'TIME_ZONE', isEnabled: false },\n { name: 'Device Type', id: 'DEVICE_TYPE', isEnabled: false },\n { name: 'Browser Language', id: 'BROWSER_LANGUAGE', isEnabled: false },\n { name: 'Tags', id: 'TAGS', isEnabled: false },\n { name: 'Language Name', id: 'LANGUAGE_NAME', isEnabled: false },\n];\n\nexport const DEFAULT_FIELD_VALUE = {\n id: '',\n surveySparrowField: null,\n integrationField: null,\n integrationFieldType: null,\n isEssentialField: false,\n mappedType: MAPPING_TYPES[0],\n defaultValue: null,\n dependency: null,\n};\n\nexport const SAMPLE_INTEGRATION_FIELDS: Array<{\n id: number;\n label: string;\n value: string;\n type: string;\n}> = [\n { id: 1, label: 'Email', value: 'email', type: 'EMAIL' },\n { id: 2, label: 'Phone Number', value: 'phone_number', type: 'PHONE' },\n { id: 3, label: 'First Name', value: 'first_name', type: 'STRING' },\n { id: 4, label: 'Last Name', value: 'last_name', type: 'STRING' },\n { id: 5, label: 'Organization', value: 'organization', type: 'STRING' },\n { id: 6, label: 'Title', value: 'title', type: 'STRING' },\n { id: 7, label: 'Address', value: 'address', type: 'STRING' },\n { id: 8, label: 'City', value: 'city', type: 'STRING' },\n { id: 9, label: 'Country', value: 'country', type: 'STRING' },\n { id: 10, label: 'Zip Code', value: 'zip_code', type: 'STRING' },\n];\n\n// CSS Custom Styles for Select Components\nexport const CUSTOM_SELECT_STYLES = {\n menuList: (prevStyles: Record<string, unknown>) => ({\n ...prevStyles,\n maxHeight: 176,\n }),\n menu: (prevStyles: Record<string, unknown>) => ({\n ...prevStyles,\n zIndex: 9999,\n }),\n control: (prevStyles: Record<string, unknown>) => ({\n ...prevStyles,\n minHeight: '40px',\n }),\n};\n\nexport const SUB_MENU_CUSTOM_STYLES = {\n menuList: (prevStyles: Record<string, unknown>) => ({\n ...prevStyles,\n maxHeight: 200,\n }),\n menu: (prevStyles: Record<string, unknown>) => ({\n ...prevStyles,\n zIndex: 9998,\n }),\n};\n\n// Field validation rules\nexport const FIELD_VALIDATION = {\n REQUIRED_FIELDS: ['surveySparrowField', 'integrationField'],\n MAX_FIELD_COUNT: 50,\n MIN_FIELD_COUNT: 1,\n} as const;\n\n// Error messages for mapping\nexport const MAPPING_ERROR_MESSAGES = {\n FIELD_REQUIRED: 'This field is required',\n INTEGRATION_FIELD_REQUIRED: 'Integration field is required',\n SURVEY_FIELD_REQUIRED: 'Survey field is required',\n DUPLICATE_MAPPING: 'This mapping already exists',\n MAX_FIELDS_REACHED: `Maximum ${FIELD_VALIDATION.MAX_FIELD_COUNT} fields allowed`,\n FETCH_ERROR: 'Failed to fetch mapping data',\n} as const;\n"],"names":[],"mappings":";;AA4CO,MAAM,mBAAsB,GAAA;AAAA,EACjC,EAAI,EAAA,EAAA;AAAA,EACJ,kBAAoB,EAAA,IAAA;AAAA,EACpB,gBAAkB,EAAA,IAAA;AAAA,EAClB,oBAAsB,EAAA,IAAA;AAAA,EACtB,gBAAkB,EAAA,KAAA;AAAA,EAClB,UAAA,EAAY,cAAc,CAAC,CAAA;AAAA,EAC3B,YAAc,EAAA,IAAA;AAAA,EACd,UAAY,EAAA,IAAA;AACd,EAAA;AAgDO,MAAM,gBAAmB,GAAA;AAAA,EAC9B,eAAA,EAAiB,CAAC,oBAAA,EAAsB,kBAAkB,CAAA;AAAA,EAC1D,eAAiB,EAAA,EAAA;AAAA,EACjB,eAAiB,EAAA,CAAA;AACnB,EAAA;AAGO,MAAM,sBAAyB,GAAA;AAAA,EACpC,cAAgB,EAAA,wBAAA;AAAA,EAChB,0BAA4B,EAAA,+BAAA;AAAA,EAC5B,qBAAuB,EAAA,0BAAA;AAAA,EACvB,iBAAmB,EAAA,6BAAA;AAAA,EACnB,kBAAA,EAAoB,CAAW,QAAA,EAAA,gBAAA,CAAiB,eAAe,CAAA,eAAA,CAAA;AAAA,EAC/D,WAAa,EAAA,8BAAA;AACf;;;;"}
@@ -3,6 +3,8 @@ import Arrow from '../commons/icons/arrow.js';
3
3
  import { Mapping as Mapping$1 } from './components/mapping.js';
4
4
  import { surveySparrowURL } from '../commons/constants/index.js';
5
5
  import DraftModal from '../commons/components/draftModal.js';
6
+ import '../node_modules/dayjs/dayjs.min.js';
7
+ import NamingModal from '../commons/components/NamingModal.js';
6
8
  import { ThemeProvider } from '../node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js';
7
9
  import { Box } from '../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js';
8
10
  import { Flex } from '../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js';
@@ -14,8 +16,36 @@ import { Button } from '../node_modules/@sparrowengg/twigs-react/dist/es/button/
14
16
  import { ChevronRightIcon } from '../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/chevron-right.js';
15
17
  import { IconButton } from '../node_modules/@sparrowengg/twigs-react/dist/es/button/icon-button.js';
16
18
  import { ArrowLeftIcon } from '../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/arrow-left.js';
19
+ import { Tooltip } from '../node_modules/@sparrowengg/twigs-react/dist/es/tooltip/tooltip.js';
20
+ import { FormInput } from '../node_modules/@sparrowengg/twigs-react/dist/es/input/form-input.js';
21
+ import { Checkbox } from '../node_modules/@sparrowengg/twigs-react/dist/es/checkbox/checkbox.js';
22
+ import { Switch } from '../node_modules/@sparrowengg/twigs-react/dist/es/switch/switch.js';
23
+ import { c as components } from '../node_modules/react-select/dist/index-a301f526.esm.js';
24
+ import { PlusIcon } from '../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/plus.js';
25
+ import { Chip } from '../node_modules/@sparrowengg/twigs-react/dist/es/chip/chip.js';
26
+ import { TickCircleFillIcon } from '../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/tick-circle-fill.js';
17
27
 
28
+ var __defProp = Object.defineProperty;
29
+ var __defProps = Object.defineProperties;
30
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
31
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
32
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
33
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
34
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
35
+ var __spreadValues = (a, b) => {
36
+ for (var prop in b || (b = {}))
37
+ if (__hasOwnProp.call(b, prop))
38
+ __defNormalProp(a, prop, b[prop]);
39
+ if (__getOwnPropSymbols)
40
+ for (var prop of __getOwnPropSymbols(b)) {
41
+ if (__propIsEnum.call(b, prop))
42
+ __defNormalProp(a, prop, b[prop]);
43
+ }
44
+ return a;
45
+ };
46
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
18
47
  const Mapping = ({
48
+ hasNamingModal,
19
49
  havingTypeDropdown,
20
50
  onSaveMappingLoader,
21
51
  surveyDetails,
@@ -38,9 +68,12 @@ const Mapping = ({
38
68
  onSaveHandler,
39
69
  editField,
40
70
  previousMappingHandler,
41
- draftHandler
71
+ draftHandler,
72
+ configuration
42
73
  }) => {
43
- const [previousMapping, setPreviousMapping] = useState(hasPreviousMapping != null ? hasPreviousMapping : false);
74
+ const [previousMapping, setPreviousMapping] = useState(
75
+ hasPreviousMapping != null ? hasPreviousMapping : false
76
+ );
44
77
  useEffect(() => {
45
78
  if (!!(editField == null ? void 0 : editField.id)) {
46
79
  setFields(editField.fieldValues);
@@ -73,7 +106,9 @@ const Mapping = ({
73
106
  onSaveHandler,
74
107
  navigateEventPage: () => navigateMappingPage(false),
75
108
  previousMappingHandler,
76
- draftHandler
109
+ draftHandler,
110
+ hasNamingModal,
111
+ configuration
77
112
  }
78
113
  ), !isMappingPage ? /* @__PURE__ */ React__default.createElement(
79
114
  EventSetup,
@@ -82,7 +117,9 @@ const Mapping = ({
82
117
  accounts,
83
118
  events,
84
119
  actions,
85
- navigateMappingPage
120
+ navigateMappingPage,
121
+ configuration,
122
+ editFieldId: editField == null ? void 0 : editField.id
86
123
  }
87
124
  ) : /* @__PURE__ */ React__default.createElement(
88
125
  Mapping$1,
@@ -109,7 +146,9 @@ const EventSetup = ({
109
146
  accounts,
110
147
  events,
111
148
  actions,
112
- navigateMappingPage
149
+ navigateMappingPage,
150
+ configuration,
151
+ editFieldId
113
152
  }) => {
114
153
  useEffect(() => {
115
154
  if (actions == null ? void 0 : actions.value) {
@@ -126,13 +165,22 @@ const EventSetup = ({
126
165
  alignItems: "center",
127
166
  justifyContent: "center"
128
167
  },
129
- /* @__PURE__ */ React__default.createElement(Box, { css: { width: 488 } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, "Account Details"), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React__default.createElement(Text, { size: "sm", css: { color: "$neutral500" } }, "Survey Name:"), /* @__PURE__ */ React__default.createElement(Text, { size: "sm", weight: "medium", css: { color: "$neutral800" } }, surveyDetails.surveyName)), /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$8", css: { marginTop: "$16" } }, (accounts == null ? void 0 : accounts.hasAccounts) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Account"), /* @__PURE__ */ React__default.createElement(
168
+ /* @__PURE__ */ React__default.createElement(Box, { css: { width: 488 } }, configuration.hasConfiguration ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
169
+ ConfigurationSetup,
170
+ {
171
+ configuration,
172
+ surveyName: surveyDetails.surveyName,
173
+ editField: editFieldId
174
+ }
175
+ )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, configuration == null ? void 0 : configuration.title), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React__default.createElement(Text, { size: "sm", css: { color: "$neutral500" } }, "Survey Name:"), /* @__PURE__ */ React__default.createElement(Text, { size: "sm", weight: "medium", css: { color: "$neutral800" } }, surveyDetails.surveyName)), /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$8", css: { marginTop: "$16" } }, (accounts == null ? void 0 : accounts.hasAccounts) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Account"), /* @__PURE__ */ React__default.createElement(
130
176
  Select,
131
177
  {
132
178
  value: accounts.value,
133
179
  options: accounts.options,
134
180
  placeholder: "",
135
- onChange: (value) => accounts.onChangeHandler(value),
181
+ onChange: (value) => accounts.onChangeHandler(
182
+ value
183
+ ),
136
184
  size: "lg"
137
185
  }
138
186
  )), (events == null ? void 0 : events.hasEvents) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Object"), /* @__PURE__ */ React__default.createElement(
@@ -141,7 +189,9 @@ const EventSetup = ({
141
189
  options: events.options,
142
190
  value: events == null ? void 0 : events.value,
143
191
  placeholder: "",
144
- onChange: (value) => events.onChangeHandler(value),
192
+ onChange: (value) => events.onChangeHandler(
193
+ value
194
+ ),
145
195
  size: "lg"
146
196
  }
147
197
  )), (actions == null ? void 0 : actions.hasActions) && /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Action"), /* @__PURE__ */ React__default.createElement(
@@ -151,13 +201,15 @@ const EventSetup = ({
151
201
  options: actions.options,
152
202
  value: actions == null ? void 0 : actions.value,
153
203
  placeholder: "",
154
- onChange: (value) => actions.onChangeHandler(value)
204
+ onChange: (value) => actions.onChangeHandler(
205
+ value
206
+ )
155
207
  }
156
- ))), /* @__PURE__ */ React__default.createElement(
208
+ )))), /* @__PURE__ */ React__default.createElement(
157
209
  Button,
158
210
  {
159
211
  size: "lg",
160
- disabled: !actions.value || !events.value,
212
+ disabled: configuration.hasConfiguration ? false : !(actions == null ? void 0 : actions.value) || !(events == null ? void 0 : events.value),
161
213
  rightIcon: /* @__PURE__ */ React__default.createElement(ChevronRightIcon, null),
162
214
  css: { marginTop: "$16" },
163
215
  onClick: () => navigateMappingPage()
@@ -167,6 +219,7 @@ const EventSetup = ({
167
219
  );
168
220
  };
169
221
  const MappingHeader = ({
222
+ hasNamingModal,
170
223
  navigateMappingPage,
171
224
  accounts,
172
225
  events,
@@ -180,10 +233,12 @@ const MappingHeader = ({
180
233
  onSaveHandler,
181
234
  previousMappingHandler,
182
235
  editFieldId,
183
- draftHandler
236
+ draftHandler,
237
+ configuration
184
238
  }) => {
185
- const isDisabled = !actions.value || !events.value;
239
+ const isDisabled = !(actions == null ? void 0 : actions.value) || !(events == null ? void 0 : events.value);
186
240
  const [isDraftModalOpen, setIsDraftModalOpen] = useState(false);
241
+ const [isNamingModalOpen, setIsNamingModalOpen] = useState(false);
187
242
  const isAllEssentialMapped = (fields2) => {
188
243
  let status = true;
189
244
  fields2 == null ? void 0 : fields2.map((field) => {
@@ -215,14 +270,21 @@ const MappingHeader = ({
215
270
  padding: "$8 $12"
216
271
  }
217
272
  },
218
- isDraftModalOpen && /* @__PURE__ */ React__default.createElement(DraftModal, { onSaveHandler: async () => {
219
- await draftHandler("MAPPING", editFieldId == null ? void 0 : editFieldId.toString());
220
- setIsDraftModalOpen(false);
221
- await previousMappingHandler();
222
- }, onCloseHandler: () => setIsDraftModalOpen(false), onCancel: async () => {
223
- await previousMappingHandler();
224
- setIsDraftModalOpen(false);
225
- } }),
273
+ isDraftModalOpen && /* @__PURE__ */ React__default.createElement(
274
+ DraftModal,
275
+ {
276
+ onSaveHandler: async () => {
277
+ await draftHandler("MAPPING", editFieldId == null ? void 0 : editFieldId.toString());
278
+ setIsDraftModalOpen(false);
279
+ await previousMappingHandler();
280
+ },
281
+ onCloseHandler: () => setIsDraftModalOpen(false),
282
+ onCancel: async () => {
283
+ await previousMappingHandler();
284
+ setIsDraftModalOpen(false);
285
+ }
286
+ }
287
+ ),
226
288
  /* @__PURE__ */ React__default.createElement(
227
289
  Flex,
228
290
  {
@@ -230,7 +292,15 @@ const MappingHeader = ({
230
292
  alignItems: "center",
231
293
  css: { visibility: hasPreviousMapping ? "visible" : "hidden" }
232
294
  },
233
- /* @__PURE__ */ React__default.createElement(IconButton, { onClick: () => setIsDraftModalOpen(true), color: "default", icon: /* @__PURE__ */ React__default.createElement(ArrowLeftIcon, null), size: "lg" }),
295
+ /* @__PURE__ */ React__default.createElement(
296
+ IconButton,
297
+ {
298
+ onClick: () => previousMappingHandler(),
299
+ color: "default",
300
+ icon: /* @__PURE__ */ React__default.createElement(ArrowLeftIcon, null),
301
+ size: "lg"
302
+ }
303
+ ),
234
304
  /* @__PURE__ */ React__default.createElement(Heading, { size: "h6" }, editFieldId ? "Edit Mapping" : "New Mapping")
235
305
  ),
236
306
  /* @__PURE__ */ React__default.createElement(
@@ -273,13 +343,373 @@ const MappingHeader = ({
273
343
  loading: onSaveMappingLoader,
274
344
  size: "lg",
275
345
  disabled: !isAllEssentialMapped(fields),
276
- onClick: () => onSaveHandler(editFieldId),
346
+ onClick: () => {
347
+ if (hasNamingModal) {
348
+ setIsNamingModalOpen(true);
349
+ } else {
350
+ onSaveHandler(editFieldId);
351
+ }
352
+ },
277
353
  css: { visibility: isMappingPage ? "visible" : "hidden" }
278
354
  },
279
355
  editFieldId ? "Update Mapping" : "Save Mapping"
356
+ ),
357
+ hasNamingModal && /* @__PURE__ */ React__default.createElement(
358
+ NamingModal,
359
+ {
360
+ editFieldId,
361
+ mappingLoader: onSaveMappingLoader,
362
+ saveHandler: () => onSaveHandler(editFieldId),
363
+ closeHandler: () => setIsNamingModalOpen(false),
364
+ value: (configuration == null ? void 0 : configuration.currentMappingName) || "",
365
+ setValue: (value) => {
366
+ var _a;
367
+ return (_a = configuration == null ? void 0 : configuration.setMappingName) == null ? void 0 : _a.call(configuration, value);
368
+ },
369
+ isOpen: isNamingModalOpen
370
+ }
280
371
  )
281
372
  );
282
373
  };
374
+ const ConfigurationSetup = ({
375
+ configuration,
376
+ surveyName,
377
+ editField
378
+ }) => {
379
+ var _a;
380
+ return /* @__PURE__ */ React__default.createElement(Box, { css: { maxWidth: 488, width: "100%" } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, configuration == null ? void 0 : configuration.title), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React__default.createElement(Text, { size: "sm", css: { color: "$neutral500" } }, "Survey Name:"), /* @__PURE__ */ React__default.createElement(
381
+ Tooltip,
382
+ {
383
+ content: (surveyName == null ? void 0 : surveyName.length) > 25 ? surveyName : "",
384
+ css: {
385
+ zIndex: "9999999 !important",
386
+ fontFamily: "DM Sans !important"
387
+ }
388
+ },
389
+ /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(
390
+ Text,
391
+ {
392
+ size: "sm",
393
+ weight: "medium",
394
+ truncate: true,
395
+ css: { color: "$neutral800", maxWidth: "270px" }
396
+ },
397
+ surveyName
398
+ ))
399
+ )), /* @__PURE__ */ React__default.createElement(
400
+ Flex,
401
+ {
402
+ flexDirection: "column",
403
+ gap: "$8",
404
+ css: {
405
+ marginTop: "$12",
406
+ "& label": {
407
+ color: "$neutral800"
408
+ }
409
+ }
410
+ },
411
+ (_a = configuration.configurationFields) == null ? void 0 : _a.map((field) => {
412
+ return /* @__PURE__ */ React__default.createElement(
413
+ Configuration,
414
+ {
415
+ field,
416
+ configuredFields: configuration.configuredFields
417
+ }
418
+ );
419
+ })
420
+ ));
421
+ };
422
+ const Configuration = ({
423
+ field,
424
+ configuredFields,
425
+ responseImportType = null
426
+ }) => {
427
+ var _a, _b, _c, _d;
428
+ let fieldValue = null;
429
+ fieldValue = (_b = (_a = configuredFields == null ? void 0 : configuredFields[field.id]) == null ? void 0 : _a.value) != null ? _b : null;
430
+ const [error, setError] = useState({
431
+ errorMessage: "",
432
+ error: false,
433
+ id: null
434
+ });
435
+ switch (field.fieldType) {
436
+ case "switch":
437
+ return /* @__PURE__ */ React__default.createElement(
438
+ Flex,
439
+ {
440
+ gap: "$4",
441
+ alignItems: "center",
442
+ css: {
443
+ marginBlockStart: "$12",
444
+ borderTop: "$borderWidths$xs solid $neutral200",
445
+ paddingTop: "$16"
446
+ }
447
+ },
448
+ /* @__PURE__ */ React__default.createElement(
449
+ Switch,
450
+ {
451
+ disabled: field == null ? void 0 : field.disabled,
452
+ size: "sm",
453
+ checked: field == null ? void 0 : field.value,
454
+ onChange: (value) => field.onChangeHandler({
455
+ id: field.id,
456
+ value
457
+ })
458
+ }
459
+ ),
460
+ /* @__PURE__ */ React__default.createElement(Text, { size: "md", weight: "regular", css: { color: "$neutral900" } }, field.label)
461
+ );
462
+ case "checkbox":
463
+ return /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", alignItems: "start", gap: "$4" }, /* @__PURE__ */ React__default.createElement(Flex, { gap: "$4", alignItems: "center" }, /* @__PURE__ */ React__default.createElement(
464
+ Checkbox,
465
+ {
466
+ disabled: field == null ? void 0 : field.disabled,
467
+ checked: !!fieldValue,
468
+ onChange: (value) => field.onChangeHandler({
469
+ id: field.id,
470
+ value
471
+ })
472
+ }
473
+ ), /* @__PURE__ */ React__default.createElement(Text, { size: "sm", weight: "regular", css: { color: "$neutral900" } }, field.label)), /* @__PURE__ */ React__default.createElement(Text, { size: "sm", weight: "regular", css: { color: "$neutral500" } }, field.value ? field.ifChecked() : field.ifUnchecked(responseImportType)));
474
+ case "input":
475
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, (field == null ? void 0 : field.id) === "spreadsheet" ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, ((_c = configuredFields == null ? void 0 : configuredFields.action) == null ? void 0 : _c.value) ? /* @__PURE__ */ React__default.createElement(
476
+ Box,
477
+ {
478
+ className: "dm-sans",
479
+ css: {
480
+ label: {
481
+ fontSize: "$xs !important"
482
+ }
483
+ }
484
+ },
485
+ /* @__PURE__ */ React__default.createElement(
486
+ FormInput,
487
+ __spreadProps(__spreadValues(__spreadProps(__spreadValues({
488
+ disabled: field == null ? void 0 : field.disabled
489
+ }, error.id === field.id && {
490
+ error: error.errorMessage,
491
+ errorBorder: error.error
492
+ }), {
493
+ label: field.label,
494
+ value: typeof fieldValue === "object" ? "" : fieldValue || "",
495
+ size: "lg"
496
+ }), field.pattern && {
497
+ pattern: field.pattern
498
+ }), {
499
+ onChange: (event) => {
500
+ if (field == null ? void 0 : field.pattern) {
501
+ const pattern = new RegExp(field.pattern);
502
+ if (!pattern.test(event.currentTarget.value) && event.currentTarget.value !== "") {
503
+ setError({
504
+ errorMessage: field.errorMessage,
505
+ error: true,
506
+ id: field.id
507
+ });
508
+ } else {
509
+ setError({
510
+ errorMessage: "",
511
+ error: false,
512
+ id: null
513
+ });
514
+ }
515
+ field.onChangeHandler({
516
+ id: field.id,
517
+ value: event.currentTarget.value
518
+ });
519
+ } else {
520
+ field.onChangeHandler({
521
+ id: field.id,
522
+ value: event.currentTarget.value
523
+ });
524
+ }
525
+ }
526
+ })
527
+ )
528
+ ) : null) : /* @__PURE__ */ React__default.createElement(
529
+ Box,
530
+ {
531
+ className: "dm-sans",
532
+ css: {
533
+ label: {
534
+ fontSize: "$xs !important"
535
+ }
536
+ }
537
+ },
538
+ /* @__PURE__ */ React__default.createElement(
539
+ FormInput,
540
+ __spreadProps(__spreadValues(__spreadProps(__spreadValues({
541
+ disabled: field == null ? void 0 : field.disabled
542
+ }, error.id === field.id && {
543
+ error: error.errorMessage,
544
+ errorBorder: error.error
545
+ }), {
546
+ label: field.label,
547
+ value: typeof fieldValue === "object" ? "" : fieldValue || "",
548
+ size: "lg"
549
+ }), field.pattern && {
550
+ pattern: field.pattern
551
+ }), {
552
+ onChange: (event) => {
553
+ if (field == null ? void 0 : field.pattern) {
554
+ const pattern = new RegExp(field.pattern);
555
+ if (!pattern.test(event.currentTarget.value) && event.currentTarget.value !== "") {
556
+ setError({
557
+ errorMessage: field.errorMessage,
558
+ error: true,
559
+ id: field.id
560
+ });
561
+ } else {
562
+ setError({
563
+ errorMessage: "",
564
+ error: false,
565
+ id: null
566
+ });
567
+ }
568
+ field.onChangeHandler({
569
+ id: field.id,
570
+ value: event.currentTarget.value
571
+ });
572
+ } else {
573
+ field.onChangeHandler({
574
+ id: field.id,
575
+ value: event.currentTarget.value
576
+ });
577
+ }
578
+ }
579
+ })
580
+ )
581
+ ));
582
+ default:
583
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, field.id === "spreadsheet" ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, ((_d = configuredFields == null ? void 0 : configuredFields.action) == null ? void 0 : _d.value) ? /* @__PURE__ */ React__default.createElement(
584
+ Flex,
585
+ {
586
+ gap: "$2",
587
+ flexDirection: "column",
588
+ css: {
589
+ cursor: "pointer !important",
590
+ ".twigs-select__indicator": {
591
+ width: "14px !important",
592
+ color: "#848484 !important"
593
+ }
594
+ }
595
+ },
596
+ /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, field.label),
597
+ /* @__PURE__ */ React__default.createElement(CustomAddNewSelect, { field })
598
+ ) : null) : /* @__PURE__ */ React__default.createElement(
599
+ Flex,
600
+ {
601
+ gap: "$2",
602
+ flexDirection: "column",
603
+ css: {
604
+ cursor: "pointer !important",
605
+ ".twigs-select__indicator": {
606
+ width: "14px !important",
607
+ color: "#848484 !important"
608
+ }
609
+ }
610
+ },
611
+ /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, field.label),
612
+ /* @__PURE__ */ React__default.createElement(CustomAddNewSelect, { field })
613
+ ));
614
+ }
615
+ };
616
+ const CustomAddNewSelect = ({ field }) => {
617
+ return /* @__PURE__ */ React__default.createElement(
618
+ Select,
619
+ {
620
+ isDisabled: field == null ? void 0 : field.disabled,
621
+ placeholder: "",
622
+ size: "lg",
623
+ css: {
624
+ cursor: "pointer"
625
+ },
626
+ components: {
627
+ Option: CustomShareOption,
628
+ SingleValue: CustomSingleValue
629
+ },
630
+ styles: {
631
+ singleValue: (provided, state) => __spreadProps(__spreadValues({}, provided), {
632
+ display: "flex",
633
+ alignItems: "center",
634
+ cursor: "pointer"
635
+ })
636
+ },
637
+ value: field.value,
638
+ onChange: (value) => {
639
+ var _a;
640
+ field.onChangeHandler({
641
+ id: (_a = field == null ? void 0 : field.id) != null ? _a : field == null ? void 0 : field.label,
642
+ value
643
+ });
644
+ },
645
+ options: field.options
646
+ }
647
+ );
648
+ };
649
+ const CustomShareOption = (props) => {
650
+ if (props.data.value === "ADD_NEW") {
651
+ return /* @__PURE__ */ React__default.createElement(
652
+ Tooltip,
653
+ {
654
+ content: props.data.tooltip || "",
655
+ css: {
656
+ zIndex: 999999999,
657
+ fontFamily: "DM Sans !important"
658
+ }
659
+ },
660
+ /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(components.Option, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(
661
+ Flex,
662
+ {
663
+ justifyContent: "center",
664
+ alignItems: "center",
665
+ css: { cursor: "pointer", zIndex: 999999999 }
666
+ },
667
+ /* @__PURE__ */ React__default.createElement(
668
+ Flex,
669
+ {
670
+ gap: "$2",
671
+ alignItems: "center",
672
+ css: {
673
+ color: "$primary500",
674
+ fontSize: "$sm",
675
+ fontWeight: "$7"
676
+ }
677
+ },
678
+ /* @__PURE__ */ React__default.createElement(PlusIcon, { size: 16, color: "#4A9CA6" }),
679
+ "Add Account"
680
+ )
681
+ )))
682
+ );
683
+ } else {
684
+ return /* @__PURE__ */ React__default.createElement(components.Option, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(
685
+ Flex,
686
+ {
687
+ css: { cursor: "pointer", zIndex: 999999999 },
688
+ alignItems: "center",
689
+ justifyContent: "space-between",
690
+ gap: "$2"
691
+ },
692
+ /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.label),
693
+ " ",
694
+ props.data.isAddonAccount && /* @__PURE__ */ React__default.createElement(
695
+ Chip,
696
+ {
697
+ color: "primary",
698
+ size: "sm",
699
+ leftElement: /* @__PURE__ */ React__default.createElement(TickCircleFillIcon, null)
700
+ },
701
+ "In Use (Add-on)"
702
+ )
703
+ ));
704
+ }
705
+ };
706
+ const CustomSingleValue = (props) => {
707
+ if (props.data.value === "ADD_NEW") {
708
+ return /* @__PURE__ */ React__default.createElement(components.SingleValue, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, /* @__PURE__ */ React__default.createElement(PlusIcon, { size: 16 }), /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.data.label)));
709
+ } else {
710
+ return /* @__PURE__ */ React__default.createElement(components.SingleValue, __spreadValues({}, props), /* @__PURE__ */ React__default.createElement(Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, /* @__PURE__ */ React__default.createElement(Text, { size: "sm" }, props.data.label)));
711
+ }
712
+ };
283
713
 
284
714
  export { Mapping };
285
715
  //# sourceMappingURL=index.js.map