@sparrowengg/integrations-templates-frontend 1.9.84-beta.1 → 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 (95) hide show
  1. package/dist/cjs/_virtual/index10.js +2 -2
  2. package/dist/cjs/_virtual/index9.js +2 -2
  3. package/dist/cjs/authentication/constants/index.js +115 -1
  4. package/dist/cjs/authentication/constants/index.js.map +1 -1
  5. package/dist/cjs/authentication/index.js +36 -32
  6. package/dist/cjs/authentication/index.js.map +1 -1
  7. package/dist/cjs/commons/components/NamingModal.js +82 -0
  8. package/dist/cjs/commons/components/NamingModal.js.map +1 -0
  9. package/dist/cjs/commons/constants/enhanced.js +12 -0
  10. package/dist/cjs/commons/constants/enhanced.js.map +1 -0
  11. package/dist/cjs/commons/constants/index.js +7 -1
  12. package/dist/cjs/commons/constants/index.js.map +1 -1
  13. package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -1
  14. package/dist/cjs/contact-import/components/contact-import-mapping.js +10 -7
  15. package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -1
  16. package/dist/cjs/contact-import/index.js +6 -9
  17. package/dist/cjs/contact-import/index.js.map +1 -1
  18. package/dist/cjs/integration-template/components/dashboard.js +68 -55
  19. package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
  20. package/dist/cjs/integration-template/index.js +4 -2
  21. package/dist/cjs/integration-template/index.js.map +1 -1
  22. package/dist/cjs/mapping/components/custom-date-menu.js +3 -2
  23. package/dist/cjs/mapping/components/custom-date-menu.js.map +1 -1
  24. package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
  25. package/dist/cjs/mapping/components/field.js +14 -6
  26. package/dist/cjs/mapping/components/field.js.map +1 -1
  27. package/dist/cjs/mapping/components/mapping.js +25 -17
  28. package/dist/cjs/mapping/components/mapping.js.map +1 -1
  29. package/dist/cjs/mapping/constants/index.js +32 -0
  30. package/dist/cjs/mapping/constants/index.js.map +1 -0
  31. package/dist/cjs/mapping/index.js +453 -23
  32. package/dist/cjs/mapping/index.js.map +1 -1
  33. package/dist/cjs/mapping/services/index.js.map +1 -1
  34. package/dist/cjs/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  35. package/dist/cjs/node_modules/html-dom-parser/node_modules/domutils/lib/index.js +1 -1
  36. package/dist/cjs/node_modules/html-dom-parser/node_modules/htmlparser2/lib/index.js +1 -1
  37. package/dist/cjs/single-mapping/components/mapping.js +28 -14
  38. package/dist/cjs/single-mapping/components/mapping.js.map +1 -1
  39. package/dist/cjs/single-mapping/index.js +22 -19
  40. package/dist/cjs/single-mapping/index.js.map +1 -1
  41. package/dist/cjs/triggers/components/trigger.js +14 -18
  42. package/dist/cjs/triggers/components/trigger.js.map +1 -1
  43. package/dist/cjs/triggers/constants/index.js +5 -11
  44. package/dist/cjs/triggers/constants/index.js.map +1 -1
  45. package/dist/cjs/triggers/index.js +16 -21
  46. package/dist/cjs/triggers/index.js.map +1 -1
  47. package/dist/es/_virtual/index10.js +2 -2
  48. package/dist/es/_virtual/index9.js +2 -2
  49. package/dist/es/authentication/constants/index.js +114 -2
  50. package/dist/es/authentication/constants/index.js.map +1 -1
  51. package/dist/es/authentication/index.js +35 -31
  52. package/dist/es/authentication/index.js.map +1 -1
  53. package/dist/es/commons/components/NamingModal.js +78 -0
  54. package/dist/es/commons/components/NamingModal.js.map +1 -0
  55. package/dist/es/commons/constants/enhanced.js +10 -0
  56. package/dist/es/commons/constants/enhanced.js.map +1 -0
  57. package/dist/es/commons/constants/index.js +5 -2
  58. package/dist/es/commons/constants/index.js.map +1 -1
  59. package/dist/es/contact-import/components/contact-import-configure.js.map +1 -1
  60. package/dist/es/contact-import/components/contact-import-mapping.js +10 -7
  61. package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -1
  62. package/dist/es/contact-import/index.js +4 -7
  63. package/dist/es/contact-import/index.js.map +1 -1
  64. package/dist/es/integration-template/components/dashboard.js +68 -55
  65. package/dist/es/integration-template/components/dashboard.js.map +1 -1
  66. package/dist/es/integration-template/index.js +4 -2
  67. package/dist/es/integration-template/index.js.map +1 -1
  68. package/dist/es/mapping/components/custom-date-menu.js +3 -2
  69. package/dist/es/mapping/components/custom-date-menu.js.map +1 -1
  70. package/dist/es/mapping/components/custom-menu.js.map +1 -1
  71. package/dist/es/mapping/components/field.js +14 -6
  72. package/dist/es/mapping/components/field.js.map +1 -1
  73. package/dist/es/mapping/components/mapping.js +26 -18
  74. package/dist/es/mapping/components/mapping.js.map +1 -1
  75. package/dist/es/mapping/constants/index.js +28 -0
  76. package/dist/es/mapping/constants/index.js.map +1 -0
  77. package/dist/es/mapping/index.js +453 -23
  78. package/dist/es/mapping/index.js.map +1 -1
  79. package/dist/es/mapping/services/index.js.map +1 -1
  80. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
  81. package/dist/es/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  82. package/dist/es/node_modules/html-dom-parser/node_modules/domutils/lib/index.js +1 -1
  83. package/dist/es/node_modules/html-dom-parser/node_modules/htmlparser2/lib/index.js +1 -1
  84. package/dist/es/single-mapping/components/mapping.js +28 -14
  85. package/dist/es/single-mapping/components/mapping.js.map +1 -1
  86. package/dist/es/single-mapping/index.js +22 -19
  87. package/dist/es/single-mapping/index.js.map +1 -1
  88. package/dist/es/triggers/components/trigger.js +14 -18
  89. package/dist/es/triggers/components/trigger.js.map +1 -1
  90. package/dist/es/triggers/constants/index.js +5 -11
  91. package/dist/es/triggers/constants/index.js.map +1 -1
  92. package/dist/es/triggers/index.js +16 -21
  93. package/dist/es/triggers/index.js.map +1 -1
  94. package/dist/index.d.ts +257 -86
  95. package/package.json +2 -1
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var enhanced = require('../../commons/constants/enhanced.js');
4
+
5
+ const DEFAULT_FIELD_VALUE = {
6
+ id: "",
7
+ surveySparrowField: null,
8
+ integrationField: null,
9
+ integrationFieldType: null,
10
+ isEssentialField: false,
11
+ mappedType: enhanced.MAPPING_TYPES[0],
12
+ defaultValue: null,
13
+ dependency: null
14
+ };
15
+ const FIELD_VALIDATION = {
16
+ REQUIRED_FIELDS: ["surveySparrowField", "integrationField"],
17
+ MAX_FIELD_COUNT: 50,
18
+ MIN_FIELD_COUNT: 1
19
+ };
20
+ const MAPPING_ERROR_MESSAGES = {
21
+ FIELD_REQUIRED: "This field is required",
22
+ INTEGRATION_FIELD_REQUIRED: "Integration field is required",
23
+ SURVEY_FIELD_REQUIRED: "Survey field is required",
24
+ DUPLICATE_MAPPING: "This mapping already exists",
25
+ MAX_FIELDS_REACHED: `Maximum ${FIELD_VALIDATION.MAX_FIELD_COUNT} fields allowed`,
26
+ FETCH_ERROR: "Failed to fetch mapping data"
27
+ };
28
+
29
+ exports.DEFAULT_FIELD_VALUE = DEFAULT_FIELD_VALUE;
30
+ exports.FIELD_VALIDATION = FIELD_VALIDATION;
31
+ exports.MAPPING_ERROR_MESSAGES = MAPPING_ERROR_MESSAGES;
32
+ //# sourceMappingURL=index.js.map
@@ -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":["MAPPING_TYPES"],"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,EAAYA,uBAAc,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;;;;;;"}
@@ -5,6 +5,8 @@ var arrow = require('../commons/icons/arrow.js');
5
5
  var mapping = require('./components/mapping.js');
6
6
  var index = require('../commons/constants/index.js');
7
7
  var draftModal = require('../commons/components/draftModal.js');
8
+ require('../node_modules/dayjs/dayjs.min.js');
9
+ var NamingModal = require('../commons/components/NamingModal.js');
8
10
  var themeProvider = require('../node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js');
9
11
  var box = require('../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js');
10
12
  var flex = require('../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js');
@@ -16,8 +18,36 @@ var button = require('../node_modules/@sparrowengg/twigs-react/dist/es/button/bu
16
18
  var chevronRight = require('../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/chevron-right.js');
17
19
  var iconButton = require('../node_modules/@sparrowengg/twigs-react/dist/es/button/icon-button.js');
18
20
  var arrowLeft = require('../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/arrow-left.js');
21
+ var tooltip = require('../node_modules/@sparrowengg/twigs-react/dist/es/tooltip/tooltip.js');
22
+ var formInput = require('../node_modules/@sparrowengg/twigs-react/dist/es/input/form-input.js');
23
+ var checkbox = require('../node_modules/@sparrowengg/twigs-react/dist/es/checkbox/checkbox.js');
24
+ var _switch = require('../node_modules/@sparrowengg/twigs-react/dist/es/switch/switch.js');
25
+ var indexA301f526_esm = require('../node_modules/react-select/dist/index-a301f526.esm.js');
26
+ var plus = require('../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/plus.js');
27
+ var chip = require('../node_modules/@sparrowengg/twigs-react/dist/es/chip/chip.js');
28
+ var tickCircleFill = require('../node_modules/@sparrowengg/twigs-react-icons/dist/es/icons/tick-circle-fill.js');
19
29
 
30
+ var __defProp = Object.defineProperty;
31
+ var __defProps = Object.defineProperties;
32
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
33
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
34
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
35
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
36
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
37
+ var __spreadValues = (a, b) => {
38
+ for (var prop in b || (b = {}))
39
+ if (__hasOwnProp.call(b, prop))
40
+ __defNormalProp(a, prop, b[prop]);
41
+ if (__getOwnPropSymbols)
42
+ for (var prop of __getOwnPropSymbols(b)) {
43
+ if (__propIsEnum.call(b, prop))
44
+ __defNormalProp(a, prop, b[prop]);
45
+ }
46
+ return a;
47
+ };
48
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
49
  const Mapping = ({
50
+ hasNamingModal,
21
51
  havingTypeDropdown,
22
52
  onSaveMappingLoader,
23
53
  surveyDetails,
@@ -40,9 +70,12 @@ const Mapping = ({
40
70
  onSaveHandler,
41
71
  editField,
42
72
  previousMappingHandler,
43
- draftHandler
73
+ draftHandler,
74
+ configuration
44
75
  }) => {
45
- const [previousMapping, setPreviousMapping] = React.useState(hasPreviousMapping != null ? hasPreviousMapping : false);
76
+ const [previousMapping, setPreviousMapping] = React.useState(
77
+ hasPreviousMapping != null ? hasPreviousMapping : false
78
+ );
46
79
  React.useEffect(() => {
47
80
  if (!!(editField == null ? void 0 : editField.id)) {
48
81
  setFields(editField.fieldValues);
@@ -75,7 +108,9 @@ const Mapping = ({
75
108
  onSaveHandler,
76
109
  navigateEventPage: () => navigateMappingPage(false),
77
110
  previousMappingHandler,
78
- draftHandler
111
+ draftHandler,
112
+ hasNamingModal,
113
+ configuration
79
114
  }
80
115
  ), !isMappingPage ? /* @__PURE__ */ React.createElement(
81
116
  EventSetup,
@@ -84,7 +119,9 @@ const Mapping = ({
84
119
  accounts,
85
120
  events,
86
121
  actions,
87
- navigateMappingPage
122
+ navigateMappingPage,
123
+ configuration,
124
+ editFieldId: editField == null ? void 0 : editField.id
88
125
  }
89
126
  ) : /* @__PURE__ */ React.createElement(
90
127
  mapping.Mapping,
@@ -111,7 +148,9 @@ const EventSetup = ({
111
148
  accounts,
112
149
  events,
113
150
  actions,
114
- navigateMappingPage
151
+ navigateMappingPage,
152
+ configuration,
153
+ editFieldId
115
154
  }) => {
116
155
  React.useEffect(() => {
117
156
  if (actions == null ? void 0 : actions.value) {
@@ -128,13 +167,22 @@ const EventSetup = ({
128
167
  alignItems: "center",
129
168
  justifyContent: "center"
130
169
  },
131
- /* @__PURE__ */ React.createElement(box.Box, { css: { width: 488 } }, /* @__PURE__ */ React.createElement(heading.Heading, { size: "h5" }, "Account Details"), /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React.createElement(text.Text, { size: "sm", css: { color: "$neutral500" } }, "Survey Name:"), /* @__PURE__ */ React.createElement(text.Text, { size: "sm", weight: "medium", css: { color: "$neutral800" } }, surveyDetails.surveyName)), /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$8", css: { marginTop: "$16" } }, (accounts == null ? void 0 : accounts.hasAccounts) && /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Account"), /* @__PURE__ */ React.createElement(
170
+ /* @__PURE__ */ React.createElement(box.Box, { css: { width: 488 } }, configuration.hasConfiguration ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
171
+ ConfigurationSetup,
172
+ {
173
+ configuration,
174
+ surveyName: surveyDetails.surveyName,
175
+ editField: editFieldId
176
+ }
177
+ )) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(heading.Heading, { size: "h5" }, configuration == null ? void 0 : configuration.title), /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React.createElement(text.Text, { size: "sm", css: { color: "$neutral500" } }, "Survey Name:"), /* @__PURE__ */ React.createElement(text.Text, { size: "sm", weight: "medium", css: { color: "$neutral800" } }, surveyDetails.surveyName)), /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$8", css: { marginTop: "$16" } }, (accounts == null ? void 0 : accounts.hasAccounts) && /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Account"), /* @__PURE__ */ React.createElement(
132
178
  select.Select,
133
179
  {
134
180
  value: accounts.value,
135
181
  options: accounts.options,
136
182
  placeholder: "",
137
- onChange: (value) => accounts.onChangeHandler(value),
183
+ onChange: (value) => accounts.onChangeHandler(
184
+ value
185
+ ),
138
186
  size: "lg"
139
187
  }
140
188
  )), (events == null ? void 0 : events.hasEvents) && /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Object"), /* @__PURE__ */ React.createElement(
@@ -143,7 +191,9 @@ const EventSetup = ({
143
191
  options: events.options,
144
192
  value: events == null ? void 0 : events.value,
145
193
  placeholder: "",
146
- onChange: (value) => events.onChangeHandler(value),
194
+ onChange: (value) => events.onChangeHandler(
195
+ value
196
+ ),
147
197
  size: "lg"
148
198
  }
149
199
  )), (actions == null ? void 0 : actions.hasActions) && /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Action"), /* @__PURE__ */ React.createElement(
@@ -153,13 +203,15 @@ const EventSetup = ({
153
203
  options: actions.options,
154
204
  value: actions == null ? void 0 : actions.value,
155
205
  placeholder: "",
156
- onChange: (value) => actions.onChangeHandler(value)
206
+ onChange: (value) => actions.onChangeHandler(
207
+ value
208
+ )
157
209
  }
158
- ))), /* @__PURE__ */ React.createElement(
210
+ )))), /* @__PURE__ */ React.createElement(
159
211
  button.Button,
160
212
  {
161
213
  size: "lg",
162
- disabled: !actions.value || !events.value,
214
+ disabled: configuration.hasConfiguration ? false : !(actions == null ? void 0 : actions.value) || !(events == null ? void 0 : events.value),
163
215
  rightIcon: /* @__PURE__ */ React.createElement(chevronRight.ChevronRightIcon, null),
164
216
  css: { marginTop: "$16" },
165
217
  onClick: () => navigateMappingPage()
@@ -169,6 +221,7 @@ const EventSetup = ({
169
221
  );
170
222
  };
171
223
  const MappingHeader = ({
224
+ hasNamingModal,
172
225
  navigateMappingPage,
173
226
  accounts,
174
227
  events,
@@ -182,10 +235,12 @@ const MappingHeader = ({
182
235
  onSaveHandler,
183
236
  previousMappingHandler,
184
237
  editFieldId,
185
- draftHandler
238
+ draftHandler,
239
+ configuration
186
240
  }) => {
187
- const isDisabled = !actions.value || !events.value;
241
+ const isDisabled = !(actions == null ? void 0 : actions.value) || !(events == null ? void 0 : events.value);
188
242
  const [isDraftModalOpen, setIsDraftModalOpen] = React.useState(false);
243
+ const [isNamingModalOpen, setIsNamingModalOpen] = React.useState(false);
189
244
  const isAllEssentialMapped = (fields2) => {
190
245
  let status = true;
191
246
  fields2 == null ? void 0 : fields2.map((field) => {
@@ -217,14 +272,21 @@ const MappingHeader = ({
217
272
  padding: "$8 $12"
218
273
  }
219
274
  },
220
- isDraftModalOpen && /* @__PURE__ */ React.createElement(draftModal.default, { onSaveHandler: async () => {
221
- await draftHandler("MAPPING", editFieldId == null ? void 0 : editFieldId.toString());
222
- setIsDraftModalOpen(false);
223
- await previousMappingHandler();
224
- }, onCloseHandler: () => setIsDraftModalOpen(false), onCancel: async () => {
225
- await previousMappingHandler();
226
- setIsDraftModalOpen(false);
227
- } }),
275
+ isDraftModalOpen && /* @__PURE__ */ React.createElement(
276
+ draftModal.default,
277
+ {
278
+ onSaveHandler: async () => {
279
+ await draftHandler("MAPPING", editFieldId == null ? void 0 : editFieldId.toString());
280
+ setIsDraftModalOpen(false);
281
+ await previousMappingHandler();
282
+ },
283
+ onCloseHandler: () => setIsDraftModalOpen(false),
284
+ onCancel: async () => {
285
+ await previousMappingHandler();
286
+ setIsDraftModalOpen(false);
287
+ }
288
+ }
289
+ ),
228
290
  /* @__PURE__ */ React.createElement(
229
291
  flex.Flex,
230
292
  {
@@ -232,7 +294,15 @@ const MappingHeader = ({
232
294
  alignItems: "center",
233
295
  css: { visibility: hasPreviousMapping ? "visible" : "hidden" }
234
296
  },
235
- /* @__PURE__ */ React.createElement(iconButton.IconButton, { onClick: () => setIsDraftModalOpen(true), color: "default", icon: /* @__PURE__ */ React.createElement(arrowLeft.ArrowLeftIcon, null), size: "lg" }),
297
+ /* @__PURE__ */ React.createElement(
298
+ iconButton.IconButton,
299
+ {
300
+ onClick: () => previousMappingHandler(),
301
+ color: "default",
302
+ icon: /* @__PURE__ */ React.createElement(arrowLeft.ArrowLeftIcon, null),
303
+ size: "lg"
304
+ }
305
+ ),
236
306
  /* @__PURE__ */ React.createElement(heading.Heading, { size: "h6" }, editFieldId ? "Edit Mapping" : "New Mapping")
237
307
  ),
238
308
  /* @__PURE__ */ React.createElement(
@@ -275,13 +345,373 @@ const MappingHeader = ({
275
345
  loading: onSaveMappingLoader,
276
346
  size: "lg",
277
347
  disabled: !isAllEssentialMapped(fields),
278
- onClick: () => onSaveHandler(editFieldId),
348
+ onClick: () => {
349
+ if (hasNamingModal) {
350
+ setIsNamingModalOpen(true);
351
+ } else {
352
+ onSaveHandler(editFieldId);
353
+ }
354
+ },
279
355
  css: { visibility: isMappingPage ? "visible" : "hidden" }
280
356
  },
281
357
  editFieldId ? "Update Mapping" : "Save Mapping"
358
+ ),
359
+ hasNamingModal && /* @__PURE__ */ React.createElement(
360
+ NamingModal.default,
361
+ {
362
+ editFieldId,
363
+ mappingLoader: onSaveMappingLoader,
364
+ saveHandler: () => onSaveHandler(editFieldId),
365
+ closeHandler: () => setIsNamingModalOpen(false),
366
+ value: (configuration == null ? void 0 : configuration.currentMappingName) || "",
367
+ setValue: (value) => {
368
+ var _a;
369
+ return (_a = configuration == null ? void 0 : configuration.setMappingName) == null ? void 0 : _a.call(configuration, value);
370
+ },
371
+ isOpen: isNamingModalOpen
372
+ }
282
373
  )
283
374
  );
284
375
  };
376
+ const ConfigurationSetup = ({
377
+ configuration,
378
+ surveyName,
379
+ editField
380
+ }) => {
381
+ var _a;
382
+ return /* @__PURE__ */ React.createElement(box.Box, { css: { maxWidth: 488, width: "100%" } }, /* @__PURE__ */ React.createElement(heading.Heading, { size: "h5" }, configuration == null ? void 0 : configuration.title), /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", css: { marginTop: "$4" } }, /* @__PURE__ */ React.createElement(text.Text, { size: "sm", css: { color: "$neutral500" } }, "Survey Name:"), /* @__PURE__ */ React.createElement(
383
+ tooltip.Tooltip,
384
+ {
385
+ content: (surveyName == null ? void 0 : surveyName.length) > 25 ? surveyName : "",
386
+ css: {
387
+ zIndex: "9999999 !important",
388
+ fontFamily: "DM Sans !important"
389
+ }
390
+ },
391
+ /* @__PURE__ */ React.createElement(box.Box, null, /* @__PURE__ */ React.createElement(
392
+ text.Text,
393
+ {
394
+ size: "sm",
395
+ weight: "medium",
396
+ truncate: true,
397
+ css: { color: "$neutral800", maxWidth: "270px" }
398
+ },
399
+ surveyName
400
+ ))
401
+ )), /* @__PURE__ */ React.createElement(
402
+ flex.Flex,
403
+ {
404
+ flexDirection: "column",
405
+ gap: "$8",
406
+ css: {
407
+ marginTop: "$12",
408
+ "& label": {
409
+ color: "$neutral800"
410
+ }
411
+ }
412
+ },
413
+ (_a = configuration.configurationFields) == null ? void 0 : _a.map((field) => {
414
+ return /* @__PURE__ */ React.createElement(
415
+ Configuration,
416
+ {
417
+ field,
418
+ configuredFields: configuration.configuredFields
419
+ }
420
+ );
421
+ })
422
+ ));
423
+ };
424
+ const Configuration = ({
425
+ field,
426
+ configuredFields,
427
+ responseImportType = null
428
+ }) => {
429
+ var _a, _b, _c, _d;
430
+ let fieldValue = null;
431
+ fieldValue = (_b = (_a = configuredFields == null ? void 0 : configuredFields[field.id]) == null ? void 0 : _a.value) != null ? _b : null;
432
+ const [error, setError] = React.useState({
433
+ errorMessage: "",
434
+ error: false,
435
+ id: null
436
+ });
437
+ switch (field.fieldType) {
438
+ case "switch":
439
+ return /* @__PURE__ */ React.createElement(
440
+ flex.Flex,
441
+ {
442
+ gap: "$4",
443
+ alignItems: "center",
444
+ css: {
445
+ marginBlockStart: "$12",
446
+ borderTop: "$borderWidths$xs solid $neutral200",
447
+ paddingTop: "$16"
448
+ }
449
+ },
450
+ /* @__PURE__ */ React.createElement(
451
+ _switch.Switch,
452
+ {
453
+ disabled: field == null ? void 0 : field.disabled,
454
+ size: "sm",
455
+ checked: field == null ? void 0 : field.value,
456
+ onChange: (value) => field.onChangeHandler({
457
+ id: field.id,
458
+ value
459
+ })
460
+ }
461
+ ),
462
+ /* @__PURE__ */ React.createElement(text.Text, { size: "md", weight: "regular", css: { color: "$neutral900" } }, field.label)
463
+ );
464
+ case "checkbox":
465
+ return /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", alignItems: "start", gap: "$4" }, /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$4", alignItems: "center" }, /* @__PURE__ */ React.createElement(
466
+ checkbox.Checkbox,
467
+ {
468
+ disabled: field == null ? void 0 : field.disabled,
469
+ checked: !!fieldValue,
470
+ onChange: (value) => field.onChangeHandler({
471
+ id: field.id,
472
+ value
473
+ })
474
+ }
475
+ ), /* @__PURE__ */ React.createElement(text.Text, { size: "sm", weight: "regular", css: { color: "$neutral900" } }, field.label)), /* @__PURE__ */ React.createElement(text.Text, { size: "sm", weight: "regular", css: { color: "$neutral500" } }, field.value ? field.ifChecked() : field.ifUnchecked(responseImportType)));
476
+ case "input":
477
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, (field == null ? void 0 : field.id) === "spreadsheet" ? /* @__PURE__ */ React.createElement(React.Fragment, null, ((_c = configuredFields == null ? void 0 : configuredFields.action) == null ? void 0 : _c.value) ? /* @__PURE__ */ React.createElement(
478
+ box.Box,
479
+ {
480
+ className: "dm-sans",
481
+ css: {
482
+ label: {
483
+ fontSize: "$xs !important"
484
+ }
485
+ }
486
+ },
487
+ /* @__PURE__ */ React.createElement(
488
+ formInput.FormInput,
489
+ __spreadProps(__spreadValues(__spreadProps(__spreadValues({
490
+ disabled: field == null ? void 0 : field.disabled
491
+ }, error.id === field.id && {
492
+ error: error.errorMessage,
493
+ errorBorder: error.error
494
+ }), {
495
+ label: field.label,
496
+ value: typeof fieldValue === "object" ? "" : fieldValue || "",
497
+ size: "lg"
498
+ }), field.pattern && {
499
+ pattern: field.pattern
500
+ }), {
501
+ onChange: (event) => {
502
+ if (field == null ? void 0 : field.pattern) {
503
+ const pattern = new RegExp(field.pattern);
504
+ if (!pattern.test(event.currentTarget.value) && event.currentTarget.value !== "") {
505
+ setError({
506
+ errorMessage: field.errorMessage,
507
+ error: true,
508
+ id: field.id
509
+ });
510
+ } else {
511
+ setError({
512
+ errorMessage: "",
513
+ error: false,
514
+ id: null
515
+ });
516
+ }
517
+ field.onChangeHandler({
518
+ id: field.id,
519
+ value: event.currentTarget.value
520
+ });
521
+ } else {
522
+ field.onChangeHandler({
523
+ id: field.id,
524
+ value: event.currentTarget.value
525
+ });
526
+ }
527
+ }
528
+ })
529
+ )
530
+ ) : null) : /* @__PURE__ */ React.createElement(
531
+ box.Box,
532
+ {
533
+ className: "dm-sans",
534
+ css: {
535
+ label: {
536
+ fontSize: "$xs !important"
537
+ }
538
+ }
539
+ },
540
+ /* @__PURE__ */ React.createElement(
541
+ formInput.FormInput,
542
+ __spreadProps(__spreadValues(__spreadProps(__spreadValues({
543
+ disabled: field == null ? void 0 : field.disabled
544
+ }, error.id === field.id && {
545
+ error: error.errorMessage,
546
+ errorBorder: error.error
547
+ }), {
548
+ label: field.label,
549
+ value: typeof fieldValue === "object" ? "" : fieldValue || "",
550
+ size: "lg"
551
+ }), field.pattern && {
552
+ pattern: field.pattern
553
+ }), {
554
+ onChange: (event) => {
555
+ if (field == null ? void 0 : field.pattern) {
556
+ const pattern = new RegExp(field.pattern);
557
+ if (!pattern.test(event.currentTarget.value) && event.currentTarget.value !== "") {
558
+ setError({
559
+ errorMessage: field.errorMessage,
560
+ error: true,
561
+ id: field.id
562
+ });
563
+ } else {
564
+ setError({
565
+ errorMessage: "",
566
+ error: false,
567
+ id: null
568
+ });
569
+ }
570
+ field.onChangeHandler({
571
+ id: field.id,
572
+ value: event.currentTarget.value
573
+ });
574
+ } else {
575
+ field.onChangeHandler({
576
+ id: field.id,
577
+ value: event.currentTarget.value
578
+ });
579
+ }
580
+ }
581
+ })
582
+ )
583
+ ));
584
+ default:
585
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, field.id === "spreadsheet" ? /* @__PURE__ */ React.createElement(React.Fragment, null, ((_d = configuredFields == null ? void 0 : configuredFields.action) == null ? void 0 : _d.value) ? /* @__PURE__ */ React.createElement(
586
+ flex.Flex,
587
+ {
588
+ gap: "$2",
589
+ flexDirection: "column",
590
+ css: {
591
+ cursor: "pointer !important",
592
+ ".twigs-select__indicator": {
593
+ width: "14px !important",
594
+ color: "#848484 !important"
595
+ }
596
+ }
597
+ },
598
+ /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, field.label),
599
+ /* @__PURE__ */ React.createElement(CustomAddNewSelect, { field })
600
+ ) : null) : /* @__PURE__ */ React.createElement(
601
+ flex.Flex,
602
+ {
603
+ gap: "$2",
604
+ flexDirection: "column",
605
+ css: {
606
+ cursor: "pointer !important",
607
+ ".twigs-select__indicator": {
608
+ width: "14px !important",
609
+ color: "#848484 !important"
610
+ }
611
+ }
612
+ },
613
+ /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, field.label),
614
+ /* @__PURE__ */ React.createElement(CustomAddNewSelect, { field })
615
+ ));
616
+ }
617
+ };
618
+ const CustomAddNewSelect = ({ field }) => {
619
+ return /* @__PURE__ */ React.createElement(
620
+ select.Select,
621
+ {
622
+ isDisabled: field == null ? void 0 : field.disabled,
623
+ placeholder: "",
624
+ size: "lg",
625
+ css: {
626
+ cursor: "pointer"
627
+ },
628
+ components: {
629
+ Option: CustomShareOption,
630
+ SingleValue: CustomSingleValue
631
+ },
632
+ styles: {
633
+ singleValue: (provided, state) => __spreadProps(__spreadValues({}, provided), {
634
+ display: "flex",
635
+ alignItems: "center",
636
+ cursor: "pointer"
637
+ })
638
+ },
639
+ value: field.value,
640
+ onChange: (value) => {
641
+ var _a;
642
+ field.onChangeHandler({
643
+ id: (_a = field == null ? void 0 : field.id) != null ? _a : field == null ? void 0 : field.label,
644
+ value
645
+ });
646
+ },
647
+ options: field.options
648
+ }
649
+ );
650
+ };
651
+ const CustomShareOption = (props) => {
652
+ if (props.data.value === "ADD_NEW") {
653
+ return /* @__PURE__ */ React.createElement(
654
+ tooltip.Tooltip,
655
+ {
656
+ content: props.data.tooltip || "",
657
+ css: {
658
+ zIndex: 999999999,
659
+ fontFamily: "DM Sans !important"
660
+ }
661
+ },
662
+ /* @__PURE__ */ React.createElement(box.Box, null, /* @__PURE__ */ React.createElement(indexA301f526_esm.c.Option, __spreadValues({}, props), /* @__PURE__ */ React.createElement(
663
+ flex.Flex,
664
+ {
665
+ justifyContent: "center",
666
+ alignItems: "center",
667
+ css: { cursor: "pointer", zIndex: 999999999 }
668
+ },
669
+ /* @__PURE__ */ React.createElement(
670
+ flex.Flex,
671
+ {
672
+ gap: "$2",
673
+ alignItems: "center",
674
+ css: {
675
+ color: "$primary500",
676
+ fontSize: "$sm",
677
+ fontWeight: "$7"
678
+ }
679
+ },
680
+ /* @__PURE__ */ React.createElement(plus.PlusIcon, { size: 16, color: "#4A9CA6" }),
681
+ "Add Account"
682
+ )
683
+ )))
684
+ );
685
+ } else {
686
+ return /* @__PURE__ */ React.createElement(indexA301f526_esm.c.Option, __spreadValues({}, props), /* @__PURE__ */ React.createElement(
687
+ flex.Flex,
688
+ {
689
+ css: { cursor: "pointer", zIndex: 999999999 },
690
+ alignItems: "center",
691
+ justifyContent: "space-between",
692
+ gap: "$2"
693
+ },
694
+ /* @__PURE__ */ React.createElement(text.Text, { size: "sm" }, props.label),
695
+ " ",
696
+ props.data.isAddonAccount && /* @__PURE__ */ React.createElement(
697
+ chip.Chip,
698
+ {
699
+ color: "primary",
700
+ size: "sm",
701
+ leftElement: /* @__PURE__ */ React.createElement(tickCircleFill.TickCircleFillIcon, null)
702
+ },
703
+ "In Use (Add-on)"
704
+ )
705
+ ));
706
+ }
707
+ };
708
+ const CustomSingleValue = (props) => {
709
+ if (props.data.value === "ADD_NEW") {
710
+ return /* @__PURE__ */ React.createElement(indexA301f526_esm.c.SingleValue, __spreadValues({}, props), /* @__PURE__ */ React.createElement(flex.Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, /* @__PURE__ */ React.createElement(plus.PlusIcon, { size: 16 }), /* @__PURE__ */ React.createElement(text.Text, { size: "sm" }, props.data.label)));
711
+ } else {
712
+ return /* @__PURE__ */ React.createElement(indexA301f526_esm.c.SingleValue, __spreadValues({}, props), /* @__PURE__ */ React.createElement(flex.Flex, { css: { cursor: "pointer" }, alignItems: "center", gap: "$2" }, /* @__PURE__ */ React.createElement(text.Text, { size: "sm" }, props.data.label)));
713
+ }
714
+ };
285
715
 
286
716
  exports.Mapping = Mapping;
287
717
  //# sourceMappingURL=index.js.map