@sparrowengg/integrations-templates-frontend 2.1.0-beta.1 → 2.1.0-beta.3

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 (212) hide show
  1. package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js +1 -1
  2. package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
  3. package/dist/cjs/commons/components/NamingModal.js +34 -62
  4. package/dist/cjs/commons/components/NamingModal.js.map +1 -1
  5. package/dist/cjs/commons/components/confirmation-modal.js +12 -24
  6. package/dist/cjs/commons/components/confirmation-modal.js.map +1 -1
  7. package/dist/cjs/commons/components/custom-pill.js +12 -30
  8. package/dist/cjs/commons/components/custom-pill.js.map +1 -1
  9. package/dist/cjs/commons/components/draftModal.js +31 -45
  10. package/dist/cjs/commons/components/draftModal.js.map +1 -1
  11. package/dist/cjs/commons/components/edit-confirmation.js +17 -34
  12. package/dist/cjs/commons/components/edit-confirmation.js.map +1 -1
  13. package/dist/cjs/commons/components/import-modal.js +18 -49
  14. package/dist/cjs/commons/components/import-modal.js.map +1 -1
  15. package/dist/cjs/commons/components/spinner.js +2 -16
  16. package/dist/cjs/commons/components/spinner.js.map +1 -1
  17. package/dist/cjs/commons/components/theme-wrapper.js +12 -9
  18. package/dist/cjs/commons/components/theme-wrapper.js.map +1 -1
  19. package/dist/cjs/commons/constants/enhanced.js.map +1 -1
  20. package/dist/cjs/commons/helpers/index.js +52 -93
  21. package/dist/cjs/commons/helpers/index.js.map +1 -1
  22. package/dist/cjs/commons/icons/arrow.js +3 -38
  23. package/dist/cjs/commons/icons/arrow.js.map +1 -1
  24. package/dist/cjs/commons/icons/cursor.js +8 -21
  25. package/dist/cjs/commons/icons/cursor.js.map +1 -1
  26. package/dist/cjs/commons/icons/email-letter.js +12 -30
  27. package/dist/cjs/commons/icons/email-letter.js.map +1 -1
  28. package/dist/cjs/commons/icons/mapping.js +10 -23
  29. package/dist/cjs/commons/icons/mapping.js.map +1 -1
  30. package/dist/cjs/commons/icons/nested-add.js +14 -32
  31. package/dist/cjs/commons/icons/nested-add.js.map +1 -1
  32. package/dist/cjs/commons/icons/sms.js +18 -36
  33. package/dist/cjs/commons/icons/sms.js.map +1 -1
  34. package/dist/cjs/commons/icons/sync.js +3 -110
  35. package/dist/cjs/commons/icons/sync.js.map +1 -1
  36. package/dist/cjs/commons/icons/trash.js +15 -33
  37. package/dist/cjs/commons/icons/trash.js.map +1 -1
  38. package/dist/cjs/commons/icons/whatsapp.js +31 -49
  39. package/dist/cjs/commons/icons/whatsapp.js.map +1 -1
  40. package/dist/cjs/contact-import/components/ManageImport/Completed.js +41 -27
  41. package/dist/cjs/contact-import/components/ManageImport/Completed.js.map +1 -1
  42. package/dist/cjs/contact-import/components/ManageImport/Dashboard.js +43 -23
  43. package/dist/cjs/contact-import/components/ManageImport/Dashboard.js.map +1 -1
  44. package/dist/cjs/contact-import/components/ManageImport/NoDataState.js +6 -7
  45. package/dist/cjs/contact-import/components/ManageImport/NoDataState.js.map +1 -1
  46. package/dist/cjs/contact-import/components/ManageImport/Scheduled.js +46 -30
  47. package/dist/cjs/contact-import/components/ManageImport/Scheduled.js.map +1 -1
  48. package/dist/cjs/contact-import/components/ManageImport/icon.js +85 -0
  49. package/dist/cjs/contact-import/components/ManageImport/icon.js.map +1 -0
  50. package/dist/cjs/contact-import/components/Scheduling.js +27 -39
  51. package/dist/cjs/contact-import/components/Scheduling.js.map +1 -1
  52. package/dist/cjs/contact-import/components/TimePicker.js +102 -129
  53. package/dist/cjs/contact-import/components/TimePicker.js.map +1 -1
  54. package/dist/cjs/contact-import/components/conact-import-schedule.js +64 -0
  55. package/dist/cjs/contact-import/components/conact-import-schedule.js.map +1 -0
  56. package/dist/cjs/contact-import/components/contact-import-configure.js +75 -0
  57. package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -0
  58. package/dist/cjs/contact-import/components/contact-import-mapping.js +224 -0
  59. package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -0
  60. package/dist/cjs/contact-import/constants.js +21 -0
  61. package/dist/cjs/contact-import/constants.js.map +1 -0
  62. package/dist/cjs/contact-import/index.js +242 -32
  63. package/dist/cjs/contact-import/index.js.map +1 -1
  64. package/dist/cjs/dynamic-mapping/components/Mapping.js +321 -203
  65. package/dist/cjs/dynamic-mapping/components/Mapping.js.map +1 -1
  66. package/dist/cjs/dynamic-mapping/index.js +972 -34
  67. package/dist/cjs/dynamic-mapping/index.js.map +1 -1
  68. package/dist/cjs/filter/filter-pill-value-selector.js +1 -1
  69. package/dist/cjs/filter/filter-pill-value-selector.js.map +1 -1
  70. package/dist/cjs/index.js +12 -159
  71. package/dist/cjs/index.js.map +1 -1
  72. package/dist/cjs/integration-template/components/dashboard.js +137 -130
  73. package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
  74. package/dist/cjs/integration-template/index.js +343 -0
  75. package/dist/cjs/integration-template/index.js.map +1 -0
  76. package/dist/cjs/mapping/components/custom-menu.js +3 -4
  77. package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
  78. package/dist/cjs/mapping/components/field.js +103 -121
  79. package/dist/cjs/mapping/components/field.js.map +1 -1
  80. package/dist/cjs/mapping/components/mapping.js +195 -106
  81. package/dist/cjs/mapping/components/mapping.js.map +1 -1
  82. package/dist/cjs/mapping/constants/index.js +2 -259
  83. package/dist/cjs/mapping/constants/index.js.map +1 -1
  84. package/dist/cjs/mapping/index.js +618 -38
  85. package/dist/cjs/mapping/index.js.map +1 -1
  86. package/dist/cjs/mapping/services/index.js +58 -96
  87. package/dist/cjs/mapping/services/index.js.map +1 -1
  88. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +7 -7
  89. package/dist/cjs/single-mapping/components/mapping.js +490 -0
  90. package/dist/cjs/single-mapping/components/mapping.js.map +1 -0
  91. package/dist/cjs/single-mapping/index.js +986 -58
  92. package/dist/cjs/single-mapping/index.js.map +1 -1
  93. package/dist/cjs/triggers/components/subcomponents.js +1140 -0
  94. package/dist/cjs/triggers/components/subcomponents.js.map +1 -0
  95. package/dist/cjs/triggers/components/trigger.js +491 -0
  96. package/dist/cjs/triggers/components/trigger.js.map +1 -0
  97. package/dist/cjs/triggers/constants/index.js +0 -253
  98. package/dist/cjs/triggers/constants/index.js.map +1 -1
  99. package/dist/cjs/triggers/index.js +333 -0
  100. package/dist/cjs/triggers/index.js.map +1 -0
  101. package/dist/cjs/triggers/services/index.js +30 -0
  102. package/dist/cjs/triggers/services/index.js.map +1 -0
  103. package/dist/es/cascader-dropdown/cascader-dropdown-content.js +1 -1
  104. package/dist/es/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
  105. package/dist/es/commons/components/NamingModal.js +35 -63
  106. package/dist/es/commons/components/NamingModal.js.map +1 -1
  107. package/dist/es/commons/components/confirmation-modal.js +13 -25
  108. package/dist/es/commons/components/confirmation-modal.js.map +1 -1
  109. package/dist/es/commons/components/custom-pill.js +13 -31
  110. package/dist/es/commons/components/custom-pill.js.map +1 -1
  111. package/dist/es/commons/components/draftModal.js +32 -46
  112. package/dist/es/commons/components/draftModal.js.map +1 -1
  113. package/dist/es/commons/components/edit-confirmation.js +18 -35
  114. package/dist/es/commons/components/edit-confirmation.js.map +1 -1
  115. package/dist/es/commons/components/import-modal.js +19 -50
  116. package/dist/es/commons/components/import-modal.js.map +1 -1
  117. package/dist/es/commons/components/spinner.js +2 -16
  118. package/dist/es/commons/components/spinner.js.map +1 -1
  119. package/dist/es/commons/components/theme-wrapper.js +12 -9
  120. package/dist/es/commons/components/theme-wrapper.js.map +1 -1
  121. package/dist/es/commons/constants/enhanced.js.map +1 -1
  122. package/dist/es/commons/helpers/index.js +52 -93
  123. package/dist/es/commons/helpers/index.js.map +1 -1
  124. package/dist/es/commons/icons/arrow.js +3 -38
  125. package/dist/es/commons/icons/arrow.js.map +1 -1
  126. package/dist/es/commons/icons/cursor.js +8 -21
  127. package/dist/es/commons/icons/cursor.js.map +1 -1
  128. package/dist/es/commons/icons/email-letter.js +12 -30
  129. package/dist/es/commons/icons/email-letter.js.map +1 -1
  130. package/dist/es/commons/icons/mapping.js +10 -23
  131. package/dist/es/commons/icons/mapping.js.map +1 -1
  132. package/dist/es/commons/icons/nested-add.js +14 -32
  133. package/dist/es/commons/icons/nested-add.js.map +1 -1
  134. package/dist/es/commons/icons/sms.js +18 -36
  135. package/dist/es/commons/icons/sms.js.map +1 -1
  136. package/dist/es/commons/icons/sync.js +3 -110
  137. package/dist/es/commons/icons/sync.js.map +1 -1
  138. package/dist/es/commons/icons/trash.js +15 -33
  139. package/dist/es/commons/icons/trash.js.map +1 -1
  140. package/dist/es/commons/icons/whatsapp.js +31 -49
  141. package/dist/es/commons/icons/whatsapp.js.map +1 -1
  142. package/dist/es/contact-import/components/ManageImport/Completed.js +41 -27
  143. package/dist/es/contact-import/components/ManageImport/Completed.js.map +1 -1
  144. package/dist/es/contact-import/components/ManageImport/Dashboard.js +45 -25
  145. package/dist/es/contact-import/components/ManageImport/Dashboard.js.map +1 -1
  146. package/dist/es/contact-import/components/ManageImport/NoDataState.js +4 -5
  147. package/dist/es/contact-import/components/ManageImport/NoDataState.js.map +1 -1
  148. package/dist/es/contact-import/components/ManageImport/Scheduled.js +46 -30
  149. package/dist/es/contact-import/components/ManageImport/Scheduled.js.map +1 -1
  150. package/dist/es/contact-import/components/ManageImport/icon.js +82 -0
  151. package/dist/es/contact-import/components/ManageImport/icon.js.map +1 -0
  152. package/dist/es/contact-import/components/Scheduling.js +27 -39
  153. package/dist/es/contact-import/components/Scheduling.js.map +1 -1
  154. package/dist/es/contact-import/components/TimePicker.js +103 -130
  155. package/dist/es/contact-import/components/TimePicker.js.map +1 -1
  156. package/dist/es/contact-import/components/conact-import-schedule.js +60 -0
  157. package/dist/es/contact-import/components/conact-import-schedule.js.map +1 -0
  158. package/dist/es/contact-import/components/contact-import-configure.js +71 -0
  159. package/dist/es/contact-import/components/contact-import-configure.js.map +1 -0
  160. package/dist/es/contact-import/components/contact-import-mapping.js +220 -0
  161. package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -0
  162. package/dist/es/contact-import/constants.js +18 -0
  163. package/dist/es/contact-import/constants.js.map +1 -0
  164. package/dist/es/contact-import/index.js +240 -27
  165. package/dist/es/contact-import/index.js.map +1 -1
  166. package/dist/es/dynamic-mapping/components/Mapping.js +321 -203
  167. package/dist/es/dynamic-mapping/components/Mapping.js.map +1 -1
  168. package/dist/es/dynamic-mapping/index.js +972 -34
  169. package/dist/es/dynamic-mapping/index.js.map +1 -1
  170. package/dist/es/filter/filter-pill-value-selector.js +1 -1
  171. package/dist/es/filter/filter-pill-value-selector.js.map +1 -1
  172. package/dist/es/index.js +2 -23
  173. package/dist/es/index.js.map +1 -1
  174. package/dist/es/integration-template/components/dashboard.js +139 -132
  175. package/dist/es/integration-template/components/dashboard.js.map +1 -1
  176. package/dist/es/integration-template/index.js +341 -0
  177. package/dist/es/integration-template/index.js.map +1 -0
  178. package/dist/es/mapping/components/custom-menu.js +3 -4
  179. package/dist/es/mapping/components/custom-menu.js.map +1 -1
  180. package/dist/es/mapping/components/field.js +100 -118
  181. package/dist/es/mapping/components/field.js.map +1 -1
  182. package/dist/es/mapping/components/mapping.js +194 -105
  183. package/dist/es/mapping/components/mapping.js.map +1 -1
  184. package/dist/es/mapping/constants/index.js +3 -239
  185. package/dist/es/mapping/constants/index.js.map +1 -1
  186. package/dist/es/mapping/index.js +617 -12
  187. package/dist/es/mapping/index.js.map +1 -1
  188. package/dist/es/mapping/services/index.js +59 -96
  189. package/dist/es/mapping/services/index.js.map +1 -1
  190. package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js +3 -3
  191. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
  192. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +2 -2
  193. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +1 -1
  194. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/calendar/dist/import.js +2 -2
  195. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/utils/dist/import.js +1 -1
  196. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-stately/calendar/dist/import.js +1 -1
  197. package/dist/es/single-mapping/components/mapping.js +486 -0
  198. package/dist/es/single-mapping/components/mapping.js.map +1 -0
  199. package/dist/es/single-mapping/index.js +987 -59
  200. package/dist/es/single-mapping/index.js.map +1 -1
  201. package/dist/es/triggers/components/subcomponents.js +1134 -0
  202. package/dist/es/triggers/components/subcomponents.js.map +1 -0
  203. package/dist/es/triggers/components/trigger.js +487 -0
  204. package/dist/es/triggers/components/trigger.js.map +1 -0
  205. package/dist/es/triggers/constants/index.js +1 -228
  206. package/dist/es/triggers/constants/index.js.map +1 -1
  207. package/dist/es/triggers/index.js +331 -0
  208. package/dist/es/triggers/index.js.map +1 -0
  209. package/dist/es/triggers/services/index.js +28 -0
  210. package/dist/es/triggers/services/index.js.map +1 -0
  211. package/dist/index.d.ts +448 -2161
  212. package/package.json +1 -1
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var TimePicker = require('./TimePicker.js');
6
7
  var dayjs_min = require('../../node_modules/dayjs/dayjs.min.js');
7
8
  var utc = require('../../node_modules/dayjs/plugin/utc.js');
8
9
  var timezone = require('../../node_modules/dayjs/plugin/timezone.js');
9
- var index$1 = require('../../node_modules/timezone-support/dist/index.js');
10
- var TimePicker = require('./TimePicker.js');
11
- var index = require('../constants/index.js');
10
+ var index = require('../../node_modules/timezone-support/dist/index.js');
11
+ var constants = require('../constants.js');
12
12
  var flex = require('../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js');
13
13
  var dropdown = require('../../node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js');
14
14
  var button = require('../../node_modules/@sparrowengg/twigs-react/dist/es/button/button.js');
@@ -35,61 +35,49 @@ var __spreadValues = (a, b) => {
35
35
  return a;
36
36
  };
37
37
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
38
- dayjs_min.default.extend(utc.default);
39
- dayjs_min.default.extend(timezone.default);
40
- const getAllTimezones = () => {
41
- return index$1.listTimeZones().map((tz) => {
42
- const offset = dayjs_min.default().tz(tz).format("Z");
43
- return `${tz} (GMT${offset})`;
44
- });
45
- };
46
38
  const Scheduling = ({
47
39
  globalStorage,
48
40
  setGlobalStorage
49
41
  }) => {
42
+ dayjs_min.default.extend(utc.default);
43
+ dayjs_min.default.extend(timezone.default);
44
+ const getAllTimezones = () => index.listTimeZones().map((tz) => {
45
+ const offset = dayjs_min.default().tz(tz).format("Z");
46
+ return `${tz} (GMT${offset})`;
47
+ });
50
48
  const timeZones = getAllTimezones();
51
49
  const [openTimePicker, setOpenTimePicker] = React.useState(false);
52
- const [scheduleTime, setScheduleTime] = React.useState(
53
- globalStorage.scheduleData || index.DEFAULT_SCHEDULE_TIME
54
- );
50
+ const [scheduleTime, setScheduleTime] = React.useState({
51
+ period: "Daily",
52
+ time: { hours: 12, mins: "00", noon: "am" },
53
+ timeZone: "Asia/Kolkata (GMT+05:30)"
54
+ });
55
55
  React.useEffect(() => {
56
- setGlobalStorage((prev) => __spreadProps(__spreadValues({}, prev), {
56
+ setGlobalStorage((prevGlobalStorage) => __spreadProps(__spreadValues({}, prevGlobalStorage), {
57
57
  scheduleData: scheduleTime
58
58
  }));
59
- }, [scheduleTime, setGlobalStorage]);
59
+ }, [scheduleTime]);
60
60
  React.useEffect(() => {
61
61
  if (globalStorage.scheduleData) {
62
62
  setScheduleTime(globalStorage.scheduleData);
63
63
  }
64
- }, [globalStorage.scheduleData]);
65
- const handlePeriodChange = React.useCallback((period) => {
66
- setScheduleTime((prev) => __spreadProps(__spreadValues({}, prev), { period }));
67
- }, []);
68
- const handleTimeZoneChange = React.useCallback((timeZone) => {
69
- setScheduleTime((prev) => __spreadProps(__spreadValues({}, prev), { timeZone }));
70
- }, []);
71
- const closeTimePicker = React.useCallback(() => {
72
- setOpenTimePicker(false);
73
- }, []);
74
- const toggleTimePicker = React.useCallback(() => {
75
- setOpenTimePicker((prev) => !prev);
76
- }, []);
64
+ }, [globalStorage]);
77
65
  return /* @__PURE__ */ React.createElement(flex.Flex, { alignItems: "center", gap: "$2" }, /* @__PURE__ */ React.createElement(dropdown.DropdownMenu, { modal: false }, /* @__PURE__ */ React.createElement(dropdown.DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
78
66
  button.Button,
79
67
  {
80
68
  rightIcon: /* @__PURE__ */ React.createElement(chevronDown.ChevronDownIcon, null),
81
69
  variant: "ghost",
82
70
  size: "lg",
83
- "aria-label": LABELS.SELECT_SCHEDULE_PERIOD,
71
+ "aria-label": "Select Schedule Period",
84
72
  css: {
85
73
  padding: "$1 $2",
86
74
  borderRadius: "$md",
87
75
  svg: { path: { strokeWidth: "2" } }
88
76
  },
89
- onClick: closeTimePicker
77
+ onClick: () => setOpenTimePicker(false)
90
78
  },
91
79
  scheduleTime.period
92
- )), /* @__PURE__ */ React.createElement(dropdown.DropdownMenuContent, { align: "start", css: { minWidth: "168px" } }, index.SCHEDULE_PERIODS.map((option) => /* @__PURE__ */ React.createElement(
80
+ )), /* @__PURE__ */ React.createElement(dropdown.DropdownMenuContent, { align: "start", css: { minWidth: "168px" } }, constants.scheduleOptions.map((option) => /* @__PURE__ */ React.createElement(
93
81
  dropdown.DropdownMenuItem,
94
82
  {
95
83
  key: option.id,
@@ -97,16 +85,16 @@ const Scheduling = ({
97
85
  cursor: "pointer",
98
86
  background: scheduleTime.period === option.label ? "#4A9CA60F" : "none"
99
87
  },
100
- onClick: () => handlePeriodChange(option.label)
88
+ onClick: () => setScheduleTime((prev) => __spreadProps(__spreadValues({}, prev), { period: option.label }))
101
89
  },
102
90
  option.label
103
- )))), /* @__PURE__ */ React.createElement(text.Text, { css: { color: "$neutral600" }, size: "md" }, LABELS.AT), /* @__PURE__ */ React.createElement(box.Box, { css: { position: "relative" } }, /* @__PURE__ */ React.createElement(
91
+ )))), /* @__PURE__ */ React.createElement(text.Text, { css: { color: "$neutral600" }, size: "md" }, "at"), /* @__PURE__ */ React.createElement(box.Box, { css: { position: "relative" } }, /* @__PURE__ */ React.createElement(
104
92
  button.Button,
105
93
  {
106
94
  rightIcon: /* @__PURE__ */ React.createElement(chevronDown.ChevronDownIcon, null),
107
95
  variant: "ghost",
108
96
  size: "lg",
109
- onClick: toggleTimePicker,
97
+ onClick: () => setOpenTimePicker((prev) => !prev),
110
98
  css: {
111
99
  padding: "$1 $2",
112
100
  borderRadius: "$md",
@@ -128,13 +116,13 @@ const Scheduling = ({
128
116
  rightIcon: /* @__PURE__ */ React.createElement(chevronDown.ChevronDownIcon, null),
129
117
  variant: "ghost",
130
118
  size: "lg",
131
- "aria-label": LABELS.SELECT_TIME_ZONE,
119
+ "aria-label": "Select Time Zone",
132
120
  css: {
133
121
  padding: "$1 $2",
134
122
  borderRadius: "$md",
135
123
  svg: { path: { strokeWidth: "2" } }
136
124
  },
137
- onClick: closeTimePicker
125
+ onClick: () => setOpenTimePicker(false)
138
126
  },
139
127
  scheduleTime.timeZone
140
128
  )), /* @__PURE__ */ React.createElement(
@@ -151,7 +139,7 @@ const Scheduling = ({
151
139
  cursor: "pointer",
152
140
  background: scheduleTime.timeZone === tz ? "#4A9CA60F" : "none"
153
141
  },
154
- onClick: () => handleTimeZoneChange(tz)
142
+ onClick: () => setScheduleTime((prev) => __spreadProps(__spreadValues({}, prev), { timeZone: tz }))
155
143
  },
156
144
  tz
157
145
  ))
@@ -159,4 +147,4 @@ const Scheduling = ({
159
147
  };
160
148
 
161
149
  exports.default = Scheduling;
162
- //# sourceMappingURL=Scheduling.js.map
150
+ //# sourceMappingURL=scheduling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scheduling.js","sources":["../../../../src/contact-import/components/Scheduling.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from 'react';\nimport {\n Box,\n Flex,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Text,\n} from '@sparrowengg/twigs-react';\nimport { ChevronDownIcon } from '@sparrowengg/twigs-react-icons';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport { listTimeZones } from 'timezone-support';\nimport TimePicker from './TimePicker';\nimport { SchedulingProps, ScheduleTime } from '../types';\nimport { SCHEDULE_PERIODS, DEFAULT_SCHEDULE_TIME } from '../constants';\n\n// Initialize dayjs plugins\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\n/**\n * Gets all available timezones with GMT offset\n */\nconst getAllTimezones = (): string[] => {\n return listTimeZones().map((tz) => {\n const offset = dayjs().tz(tz).format('Z');\n return `${tz} (GMT${offset})`;\n });\n};\n\n/**\n * Component for scheduling recurring imports\n * Manages period, time, and timezone selection\n */\nconst Scheduling: React.FC<SchedulingProps> = ({\n globalStorage,\n setGlobalStorage,\n}) => {\n const timeZones = getAllTimezones();\n const [openTimePicker, setOpenTimePicker] = useState<boolean>(false);\n const [scheduleTime, setScheduleTime] = useState<ScheduleTime>(\n (globalStorage.scheduleData as ScheduleTime) || DEFAULT_SCHEDULE_TIME\n );\n\n // Sync schedule time with global storage\n useEffect(() => {\n setGlobalStorage((prev) => ({\n ...prev,\n scheduleData: scheduleTime,\n }));\n }, [scheduleTime, setGlobalStorage]);\n\n // Load schedule data from global storage\n useEffect(() => {\n if (globalStorage.scheduleData) {\n setScheduleTime(globalStorage.scheduleData as ScheduleTime);\n }\n }, [globalStorage.scheduleData]);\n\n const handlePeriodChange = useCallback((period: string) => {\n setScheduleTime((prev) => ({ ...prev, period }));\n }, []);\n\n const handleTimeZoneChange = useCallback((timeZone: string) => {\n setScheduleTime((prev) => ({ ...prev, timeZone }));\n }, []);\n\n const closeTimePicker = useCallback(() => {\n setOpenTimePicker(false);\n }, []);\n\n const toggleTimePicker = useCallback(() => {\n setOpenTimePicker((prev) => !prev);\n }, []);\n\n return (\n <Flex alignItems=\"center\" gap=\"$2\">\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button\n rightIcon={<ChevronDownIcon />}\n variant=\"ghost\"\n size=\"lg\"\n aria-label={LABELS.SELECT_SCHEDULE_PERIOD}\n css={{\n padding: '$1 $2',\n borderRadius: '$md',\n svg: { path: { strokeWidth: '2' } },\n }}\n onClick={closeTimePicker}\n >\n {scheduleTime.period}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" css={{ minWidth: '168px' }}>\n {SCHEDULE_PERIODS.map((option) => (\n <DropdownMenuItem\n key={option.id}\n css={{\n cursor: 'pointer',\n background:\n scheduleTime.period === option.label ? '#4A9CA60F' : 'none',\n }}\n onClick={() => handlePeriodChange(option.label)}\n >\n {option.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text css={{ color: '$neutral600' }} size=\"md\">\n {LABELS.AT}\n </Text>\n <Box css={{ position: 'relative' }}>\n <Button\n rightIcon={<ChevronDownIcon />}\n variant=\"ghost\"\n size=\"lg\"\n onClick={toggleTimePicker}\n css={{\n padding: '$1 $2',\n borderRadius: '$md',\n svg: { path: { strokeWidth: '2' } },\n }}\n >\n {`${scheduleTime.time.hours}:${scheduleTime.time.mins} ${scheduleTime.time.noon}`}\n </Button>\n {openTimePicker && (\n <TimePicker\n openTimePicker={openTimePicker}\n setOpenTimePicker={setOpenTimePicker}\n scheduleTime={scheduleTime}\n setScheduleTime={setScheduleTime}\n />\n )}\n </Box>\n\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button\n rightIcon={<ChevronDownIcon />}\n variant=\"ghost\"\n size=\"lg\"\n aria-label={LABELS.SELECT_TIME_ZONE}\n css={{\n padding: '$1 $2',\n borderRadius: '$md',\n svg: { path: { strokeWidth: '2' } },\n }}\n onClick={closeTimePicker}\n >\n {scheduleTime.timeZone}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n css={{ maxHeight: '180px', overflow: 'scroll' }}\n >\n {timeZones.map((tz) => (\n <DropdownMenuItem\n key={tz}\n css={{\n cursor: 'pointer',\n background: scheduleTime.timeZone === tz ? '#4A9CA60F' : 'none',\n }}\n onClick={() => handleTimeZoneChange(tz)}\n >\n {tz}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </Flex>\n );\n};\n\nexport default Scheduling;\n"],"names":["dayjs","utc","timezone","listTimeZones","useState","DEFAULT_SCHEDULE_TIME","useEffect","useCallback","Flex","DropdownMenu","DropdownMenuTrigger","Button","ChevronDownIcon","DropdownMenuContent","SCHEDULE_PERIODS","DropdownMenuItem","Text","Box","TimePicker"],"mappings":"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"}
1
+ {"version":3,"file":"scheduling.js","sources":["../../../../src/contact-import/components/scheduling.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useEffect, useState } from \"react\";\nimport TimePicker from \"./TimePicker\";\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport { listTimeZones } from \"timezone-support\";\nimport { ScheduleTime, SchedulingProps } from \"../types\";\nimport { scheduleOptions } from \"../constants\";\n\nconst Scheduling: React.FC<SchedulingProps> = ({\n globalStorage,\n setGlobalStorage,\n}) => {\n dayjs.extend(utc);\n dayjs.extend(timezone);\n\n const getAllTimezones = (): string[] =>\n listTimeZones().map((tz) => {\n const offset = dayjs().tz(tz).format(\"Z\");\n return `${tz} (GMT${offset})`;\n });\n\n const timeZones = getAllTimezones();\n const [openTimePicker, setOpenTimePicker] = useState<boolean>(false);\n const [scheduleTime, setScheduleTime] = useState<ScheduleTime>({\n period: \"Daily\",\n time: { hours: 12, mins: \"00\", noon: \"am\" },\n timeZone: \"Asia/Kolkata (GMT+05:30)\",\n });\n\n useEffect(() => {\n setGlobalStorage((prevGlobalStorage) => ({\n ...prevGlobalStorage,\n scheduleData: scheduleTime,\n }));\n }, [scheduleTime]);\n\n useEffect(() => {\n if (globalStorage.scheduleData) {\n setScheduleTime(globalStorage.scheduleData);\n }\n }, [globalStorage]);\n\n return (\n <Flex alignItems=\"center\" gap=\"$2\">\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button\n rightIcon={<ChevronDownIcon />}\n variant=\"ghost\"\n size=\"lg\"\n aria-label=\"Select Schedule Period\"\n css={{\n padding: \"$1 $2\",\n borderRadius: \"$md\",\n svg: { path: { strokeWidth: \"2\" } },\n }}\n onClick={() => setOpenTimePicker(false)}\n >\n {scheduleTime.period}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" css={{ minWidth: \"168px\" }}>\n {scheduleOptions.map((option) => (\n <DropdownMenuItem\n key={option.id}\n css={{\n cursor: \"pointer\",\n background:\n scheduleTime.period === option.label ? \"#4A9CA60F\" : \"none\",\n }}\n onClick={() =>\n setScheduleTime((prev) => ({ ...prev, period: option.label }))\n }\n >\n {option.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text css={{ color: \"$neutral600\" }} size=\"md\">\n at\n </Text>\n <Box css={{ position: \"relative\" }}>\n <Button\n rightIcon={<ChevronDownIcon />}\n variant=\"ghost\"\n size=\"lg\"\n onClick={() => setOpenTimePicker((prev) => !prev)}\n css={{\n padding: \"$1 $2\",\n borderRadius: \"$md\",\n svg: { path: { strokeWidth: \"2\" } },\n }}\n >\n {`${scheduleTime.time.hours}:${scheduleTime.time.mins} ${scheduleTime.time.noon}`}\n </Button>\n {openTimePicker && (\n <TimePicker\n openTimePicker={openTimePicker}\n setOpenTimePicker={setOpenTimePicker}\n scheduleTime={scheduleTime}\n setScheduleTime={setScheduleTime}\n />\n )}\n </Box>\n\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button\n rightIcon={<ChevronDownIcon />}\n variant=\"ghost\"\n size=\"lg\"\n aria-label=\"Select Time Zone\"\n css={{\n padding: \"$1 $2\",\n borderRadius: \"$md\",\n svg: { path: { strokeWidth: \"2\" } },\n }}\n onClick={() => setOpenTimePicker(false)}\n >\n {scheduleTime.timeZone}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n css={{ maxHeight: \"180px\", overflow: \"scroll\" }}\n >\n {timeZones.map((tz) => (\n <DropdownMenuItem\n key={tz}\n css={{\n cursor: \"pointer\",\n background: scheduleTime.timeZone === tz ? \"#4A9CA60F\" : \"none\",\n }}\n onClick={() =>\n setScheduleTime((prev) => ({ ...prev, timeZone: tz }))\n }\n >\n {tz}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </Flex>\n );\n};\n\nexport default Scheduling;\n"],"names":["dayjs","utc","timezone","listTimeZones","useState","useEffect","Flex","DropdownMenu","DropdownMenuTrigger","Button","ChevronDownIcon","DropdownMenuContent","scheduleOptions","DropdownMenuItem","Text","Box","TimePicker"],"mappings":"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"}
@@ -3,12 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var index = require('../constants/index.js');
7
- var useClickOutside = require('../hooks/use-click-outside.js');
8
6
  var box = require('../../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js');
9
7
  var flex = require('../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js');
10
- var button = require('../../node_modules/@sparrowengg/twigs-react/dist/es/button/button.js');
11
8
  var text = require('../../node_modules/@sparrowengg/twigs-react/dist/es/text/text.js');
9
+ var button = require('../../node_modules/@sparrowengg/twigs-react/dist/es/button/button.js');
12
10
 
13
11
  var __defProp = Object.defineProperty;
14
12
  var __defProps = Object.defineProperties;
@@ -29,120 +27,40 @@ var __spreadValues = (a, b) => {
29
27
  return a;
30
28
  };
31
29
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
30
+ const hours = [...Array(12).keys()].map((item) => ({ id: item + 1, value: item + 1 }));
31
+ const minutes = [...Array(60).keys()].map((item) => ({
32
+ id: item,
33
+ value: (item < 10 ? "0" : "") + item
34
+ }));
35
+ const noon = [
36
+ { id: 1, value: "am" },
37
+ { id: 2, value: "pm" }
38
+ ];
32
39
  const TimePicker = ({
33
40
  setOpenTimePicker,
34
41
  scheduleTime,
35
42
  setScheduleTime
36
43
  }) => {
37
44
  const timePickerRef = React.useRef(null);
38
- const [timeValue, setTimeValue] = React.useState({
39
- hours: 12,
40
- mins: "00",
41
- noon: "am"
42
- });
43
- React.useEffect(() => {
44
- setTimeValue(scheduleTime.time);
45
- }, [scheduleTime.time]);
46
- useClickOutside.default(timePickerRef, () => setOpenTimePicker(false));
47
- const handleApply = React.useCallback(() => {
45
+ const [timeValue, setTimeValue] = React.useState({ hours: 12, mins: "00", noon: "am" });
46
+ const handleApply = () => {
48
47
  setScheduleTime((prev) => __spreadProps(__spreadValues({}, prev), {
49
- time: timeValue
48
+ time: __spreadValues(__spreadValues({}, prev.time), timeValue)
50
49
  }));
51
50
  setOpenTimePicker(false);
52
- }, [timeValue, setScheduleTime, setOpenTimePicker]);
53
- const handleCancel = React.useCallback(() => {
54
- setOpenTimePicker(false);
55
- }, [setOpenTimePicker]);
56
- const updateHours = React.useCallback((hours) => {
57
- setTimeValue((prev) => __spreadProps(__spreadValues({}, prev), { hours }));
58
- }, []);
59
- const updateMinutes = React.useCallback((mins) => {
60
- setTimeValue((prev) => __spreadProps(__spreadValues({}, prev), { mins }));
61
- }, []);
62
- const updateNoon = React.useCallback((noon) => {
63
- setTimeValue((prev) => __spreadProps(__spreadValues({}, prev), { noon }));
64
- }, []);
65
- const renderHoursList = () => /* @__PURE__ */ React.createElement(
66
- box.Box,
67
- {
68
- css: {
69
- overflow: "scroll",
70
- padding: "$2 $3",
71
- borderRight: "$borderWidths$xs solid $neutral100",
72
- cursor: "pointer",
73
- "&::-webkit-scrollbar": { display: "none" }
74
- }
75
- },
76
- index.TIME_HOURS.map((item) => /* @__PURE__ */ React.createElement(
77
- text.Text,
78
- {
79
- size: "md",
80
- key: item.id,
81
- css: {
82
- padding: "$4 $6",
83
- background: timeValue.hours === item.value ? "#4A9CA60F" : "none",
84
- borderRadius: "$sm",
85
- textAlign: "center",
86
- color: "$neutral900",
87
- "&:hover": {
88
- background: "#4A9CA60F"
89
- }
90
- },
91
- onClick: () => updateHours(item.value)
92
- },
93
- item.value
94
- ))
95
- );
96
- const renderMinutesList = () => /* @__PURE__ */ React.createElement(
97
- box.Box,
98
- {
99
- css: {
100
- overflow: "scroll",
101
- padding: "$2 $3",
102
- borderRight: "$borderWidths$xs solid $neutral100",
103
- cursor: "pointer",
104
- "&::-webkit-scrollbar": { display: "none" }
105
- }
106
- },
107
- index.TIME_MINUTES.map((item) => /* @__PURE__ */ React.createElement(
108
- text.Text,
109
- {
110
- size: "md",
111
- key: item.id,
112
- css: {
113
- padding: "$4 $6",
114
- background: timeValue.mins === item.value ? "#4A9CA60F" : "none",
115
- borderRadius: "$sm",
116
- textAlign: "center",
117
- color: "$neutral900",
118
- "&:hover": {
119
- background: "#4A9CA60F"
120
- }
121
- },
122
- onClick: () => updateMinutes(item.value)
123
- },
124
- item.value
125
- ))
126
- );
127
- const renderNoonSelector = () => /* @__PURE__ */ React.createElement(box.Box, { css: { padding: "$2 $3", cursor: "pointer" } }, index.TIME_NOON.map((item) => /* @__PURE__ */ React.createElement(
128
- text.Text,
129
- {
130
- size: "md",
131
- key: item.id,
132
- css: {
133
- padding: "$4 $6",
134
- background: timeValue.noon === item.value ? "#4A9CA60F" : "none",
135
- borderRadius: "$sm",
136
- textAlign: "center",
137
- color: "$neutral900",
138
- "&:hover": {
139
- background: "#4A9CA60F"
140
- }
141
- },
142
- onClick: () => updateNoon(item.value)
143
- },
144
- item.value
145
- )));
51
+ };
52
+ const handleClickOutside = (event) => {
53
+ if (timePickerRef.current && !timePickerRef.current.contains(event.target)) {
54
+ setOpenTimePicker(false);
55
+ }
56
+ };
57
+ React.useEffect(() => {
58
+ setTimeValue(scheduleTime.time);
59
+ document.addEventListener("mousedown", handleClickOutside);
60
+ return () => {
61
+ document.removeEventListener("mousedown", handleClickOutside);
62
+ };
63
+ }, [scheduleTime]);
146
64
  return /* @__PURE__ */ React.createElement(
147
65
  box.Box,
148
66
  {
@@ -154,8 +72,7 @@ const TimePicker = ({
154
72
  background: "$white900",
155
73
  zIndex: "9",
156
74
  padding: "$4 0",
157
- position: "absolute",
158
- boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)"
75
+ position: "absolute"
159
76
  },
160
77
  ref: timePickerRef
161
78
  },
@@ -169,32 +86,88 @@ const TimePicker = ({
169
86
  borderBottom: "$borderWidths$xs solid $neutral100"
170
87
  }
171
88
  },
172
- renderHoursList(),
173
- renderMinutesList(),
174
- renderNoonSelector()
89
+ /* @__PURE__ */ React.createElement(
90
+ box.Box,
91
+ {
92
+ css: {
93
+ overflow: "scroll",
94
+ padding: "$2 $3",
95
+ borderRight: "$borderWidths$xs solid $neutral100",
96
+ cursor: "pointer",
97
+ "&::-webkit-scrollbar": { display: "none" }
98
+ }
99
+ },
100
+ hours.map((item) => /* @__PURE__ */ React.createElement(
101
+ text.Text,
102
+ {
103
+ size: "md",
104
+ key: item.id,
105
+ css: {
106
+ padding: "$4 $6",
107
+ background: timeValue.hours === item.value ? "#4A9CA60F" : "none",
108
+ borderRadius: "$sm",
109
+ textAlign: "center",
110
+ color: "$neutral900"
111
+ },
112
+ onClick: () => setTimeValue((prev) => __spreadProps(__spreadValues({}, prev), { hours: item.value }))
113
+ },
114
+ item.value
115
+ ))
116
+ ),
117
+ /* @__PURE__ */ React.createElement(
118
+ box.Box,
119
+ {
120
+ css: {
121
+ overflow: "scroll",
122
+ padding: "$2 $3",
123
+ borderRight: "$borderWidths$xs solid $neutral100",
124
+ cursor: "pointer",
125
+ "&::-webkit-scrollbar": { display: "none" }
126
+ }
127
+ },
128
+ minutes.map((item) => /* @__PURE__ */ React.createElement(
129
+ text.Text,
130
+ {
131
+ size: "md",
132
+ key: item.id,
133
+ css: {
134
+ padding: "$4 $6",
135
+ background: timeValue.mins === item.value ? "#4A9CA60F" : "none",
136
+ borderRadius: "$sm",
137
+ textAlign: "center",
138
+ color: "$neutral900"
139
+ },
140
+ onClick: () => setTimeValue((prev) => __spreadProps(__spreadValues({}, prev), { mins: item.value }))
141
+ },
142
+ item.value
143
+ ))
144
+ ),
145
+ /* @__PURE__ */ React.createElement(box.Box, { css: { padding: "$2 $3", cursor: "pointer" } }, noon.map((item) => /* @__PURE__ */ React.createElement(
146
+ text.Text,
147
+ {
148
+ size: "md",
149
+ key: item.id,
150
+ css: {
151
+ padding: "$4 $6",
152
+ background: timeValue.noon === item.value ? "#4A9CA60F" : "none",
153
+ borderRadius: "$sm",
154
+ textAlign: "center",
155
+ color: "$neutral900"
156
+ },
157
+ onClick: () => setTimeValue((prev) => __spreadProps(__spreadValues({}, prev), { noon: item.value }))
158
+ },
159
+ item.value
160
+ )))
175
161
  ),
176
162
  /* @__PURE__ */ React.createElement(
177
163
  flex.Flex,
178
164
  {
179
165
  alignItems: "center",
180
166
  justifyContent: "space-between",
181
- css: {
182
- width: "100%",
183
- height: "calc(100% - 172px)",
184
- padding: "$2 $6 $2 $6"
185
- }
167
+ css: { width: "100%", height: "calc(100% - 172px)", padding: "$2 $6 $2 $6" }
186
168
  },
187
- /* @__PURE__ */ React.createElement(
188
- button.Button,
189
- {
190
- size: "md",
191
- variant: "ghost",
192
- color: "secondary",
193
- onClick: handleCancel
194
- },
195
- index.LABELS.CANCEL
196
- ),
197
- /* @__PURE__ */ React.createElement(button.Button, { size: "md", variant: "ghost", onClick: handleApply }, index.LABELS.APPLY)
169
+ /* @__PURE__ */ React.createElement(button.Button, { size: "md", variant: "ghost", color: "secondary", onClick: () => setOpenTimePicker(false) }, "Cancel"),
170
+ /* @__PURE__ */ React.createElement(button.Button, { size: "md", variant: "ghost", onClick: handleApply }, "Apply")
198
171
  )
199
172
  );
200
173
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sources":["../../../../src/contact-import/components/TimePicker.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState, useCallback } from 'react';\nimport { Box, Button, Flex, Text } from '@sparrowengg/twigs-react';\nimport { TimePickerProps, TimeValue } from '../types';\nimport { TIME_HOURS, TIME_MINUTES, TIME_NOON, LABELS } from '../constants';\nimport { useClickOutside } from '../hooks';\n\n/**\n * Time picker component for selecting hours, minutes, and AM/PM\n * Supports click outside detection to close the picker\n */\nconst TimePicker: React.FC<TimePickerProps> = ({\n setOpenTimePicker,\n scheduleTime,\n setScheduleTime,\n}) => {\n const timePickerRef = useRef<HTMLDivElement>(null);\n const [timeValue, setTimeValue] = useState<TimeValue>({\n hours: 12,\n mins: '00',\n noon: 'am',\n });\n\n // Initialize time value from schedule time\n useEffect(() => {\n setTimeValue(scheduleTime.time);\n }, [scheduleTime.time]);\n\n // Close picker on outside click\n useClickOutside(timePickerRef, () => setOpenTimePicker(false));\n\n const handleApply = useCallback(() => {\n setScheduleTime((prev) => ({\n ...prev,\n time: timeValue,\n }));\n setOpenTimePicker(false);\n }, [timeValue, setScheduleTime, setOpenTimePicker]);\n\n const handleCancel = useCallback(() => {\n setOpenTimePicker(false);\n }, [setOpenTimePicker]);\n\n const updateHours = useCallback((hours: number) => {\n setTimeValue((prev) => ({ ...prev, hours }));\n }, []);\n\n const updateMinutes = useCallback((mins: string) => {\n setTimeValue((prev) => ({ ...prev, mins }));\n }, []);\n\n const updateNoon = useCallback((noon: 'am' | 'pm') => {\n setTimeValue((prev) => ({ ...prev, noon }));\n }, []);\n\n const renderHoursList = () => (\n <Box\n css={{\n overflow: 'scroll',\n padding: '$2 $3',\n borderRight: '$borderWidths$xs solid $neutral100',\n cursor: 'pointer',\n '&::-webkit-scrollbar': { display: 'none' },\n }}\n >\n {TIME_HOURS.map((item) => (\n <Text\n size=\"md\"\n key={item.id}\n css={{\n padding: '$4 $6',\n background: timeValue.hours === item.value ? '#4A9CA60F' : 'none',\n borderRadius: '$sm',\n textAlign: 'center',\n color: '$neutral900',\n '&:hover': {\n background: '#4A9CA60F',\n },\n }}\n onClick={() => updateHours(item.value)}\n >\n {item.value}\n </Text>\n ))}\n </Box>\n );\n\n const renderMinutesList = () => (\n <Box\n css={{\n overflow: 'scroll',\n padding: '$2 $3',\n borderRight: '$borderWidths$xs solid $neutral100',\n cursor: 'pointer',\n '&::-webkit-scrollbar': { display: 'none' },\n }}\n >\n {TIME_MINUTES.map((item) => (\n <Text\n size=\"md\"\n key={item.id}\n css={{\n padding: '$4 $6',\n background: timeValue.mins === item.value ? '#4A9CA60F' : 'none',\n borderRadius: '$sm',\n textAlign: 'center',\n color: '$neutral900',\n '&:hover': {\n background: '#4A9CA60F',\n },\n }}\n onClick={() => updateMinutes(item.value)}\n >\n {item.value}\n </Text>\n ))}\n </Box>\n );\n\n const renderNoonSelector = () => (\n <Box css={{ padding: '$2 $3', cursor: 'pointer' }}>\n {TIME_NOON.map((item) => (\n <Text\n size=\"md\"\n key={item.id}\n css={{\n padding: '$4 $6',\n background: timeValue.noon === item.value ? '#4A9CA60F' : 'none',\n borderRadius: '$sm',\n textAlign: 'center',\n color: '$neutral900',\n '&:hover': {\n background: '#4A9CA60F',\n },\n }}\n onClick={() => updateNoon(item.value)}\n >\n {item.value}\n </Text>\n ))}\n </Box>\n );\n\n return (\n <Box\n css={{\n width: '180px',\n height: '228px',\n border: '$borderWidths$xs solid $neutral200',\n borderRadius: '10px',\n background: '$white900',\n zIndex: '9',\n padding: '$4 0',\n position: 'absolute',\n boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',\n }}\n ref={timePickerRef}\n >\n {/* Time Selection Grid */}\n <Flex\n justifyContent=\"space-between\"\n css={{\n width: '100%',\n height: '172px',\n borderBottom: '$borderWidths$xs solid $neutral100',\n }}\n >\n {renderHoursList()}\n {renderMinutesList()}\n {renderNoonSelector()}\n </Flex>\n\n {/* Action Buttons */}\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{\n width: '100%',\n height: 'calc(100% - 172px)',\n padding: '$2 $6 $2 $6',\n }}\n >\n <Button\n size=\"md\"\n variant=\"ghost\"\n color=\"secondary\"\n onClick={handleCancel}\n >\n {LABELS.CANCEL}\n </Button>\n <Button size=\"md\" variant=\"ghost\" onClick={handleApply}>\n {LABELS.APPLY}\n </Button>\n </Flex>\n </Box>\n );\n};\n\nexport default TimePicker;\n"],"names":["useRef","useState","useEffect","useClickOutside","useCallback","Box","TIME_HOURS","Text","TIME_MINUTES","TIME_NOON","Flex","Button","LABELS"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","sources":["../../../../src/contact-import/components/TimePicker.tsx"],"sourcesContent":["import { Box, Button, Flex, Text } from \"@sparrowengg/twigs-react\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\ntype Time = {\n hours: number;\n mins: string;\n noon: \"am\" | \"pm\";\n};\n\ntype TimePickerProps = {\n setOpenTimePicker: (open: boolean) => void;\n scheduleTime: { time: Time };\n setScheduleTime: (schedule: { time: Time }) => void;\n};\n\nconst hours = [...Array(12).keys()].map((item) => ({ id: item + 1, value: item + 1 }));\n\nconst minutes = [...Array(60).keys()].map((item) => ({\n id: item,\n value: (item < 10 ? \"0\" : \"\") + item,\n}));\n\nconst noon = [\n { id: 1, value: \"am\" as const },\n { id: 2, value: \"pm\" as const },\n];\n\nconst TimePicker: React.FC<TimePickerProps> = ({\n setOpenTimePicker,\n scheduleTime,\n setScheduleTime,\n}) => {\n const timePickerRef = useRef<HTMLDivElement>(null);\n const [timeValue, setTimeValue] = useState<Time>({ hours: 12, mins: \"00\", noon: \"am\" });\n\n const handleApply = () => {\n setScheduleTime((prev) => ({\n ...prev,\n time: { ...prev.time, ...timeValue },\n }));\n setOpenTimePicker(false);\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (timePickerRef.current && !timePickerRef.current.contains(event.target as Node)) {\n setOpenTimePicker(false);\n }\n };\n\n useEffect(() => {\n setTimeValue(scheduleTime.time);\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [scheduleTime]);\n\n return (\n <Box\n css={{\n width: \"180px\",\n height: \"228px\",\n border: \"$borderWidths$xs solid $neutral200\",\n borderRadius: \"10px\",\n background: \"$white900\",\n zIndex: \"9\",\n padding: \"$4 0\",\n position: \"absolute\",\n }}\n ref={timePickerRef}\n >\n <Flex\n justifyContent=\"space-between\"\n css={{\n width: \"100%\",\n height: \"172px\",\n borderBottom: \"$borderWidths$xs solid $neutral100\",\n }}\n >\n <Box\n css={{\n overflow: \"scroll\",\n padding: \"$2 $3\",\n borderRight: \"$borderWidths$xs solid $neutral100\",\n cursor: \"pointer\",\n \"&::-webkit-scrollbar\": { display: \"none\" },\n }}\n >\n {hours.map((item) => (\n <Text\n size=\"md\"\n key={item.id}\n css={{\n padding: \"$4 $6\",\n background: timeValue.hours === item.value ? \"#4A9CA60F\" : \"none\",\n borderRadius: \"$sm\",\n textAlign: \"center\",\n color: \"$neutral900\",\n }}\n onClick={() => setTimeValue((prev) => ({ ...prev, hours: item.value }))}\n >\n {item.value}\n </Text>\n ))}\n </Box>\n <Box\n css={{\n overflow: \"scroll\",\n padding: \"$2 $3\",\n borderRight: \"$borderWidths$xs solid $neutral100\",\n cursor: \"pointer\",\n \"&::-webkit-scrollbar\": { display: \"none\" },\n }}\n >\n {minutes.map((item) => (\n <Text\n size=\"md\"\n key={item.id}\n css={{\n padding: \"$4 $6\",\n background: timeValue.mins === item.value ? \"#4A9CA60F\" : \"none\",\n borderRadius: \"$sm\",\n textAlign: \"center\",\n color: \"$neutral900\",\n }}\n onClick={() => setTimeValue((prev) => ({ ...prev, mins: item.value }))}\n >\n {item.value}\n </Text>\n ))}\n </Box>\n <Box css={{ padding: \"$2 $3\", cursor: \"pointer\" }}>\n {noon.map((item) => (\n <Text\n size=\"md\"\n key={item.id}\n css={{\n padding: \"$4 $6\",\n background: timeValue.noon === item.value ? \"#4A9CA60F\" : \"none\",\n borderRadius: \"$sm\",\n textAlign: \"center\",\n color: \"$neutral900\",\n }}\n onClick={() => setTimeValue((prev) => ({ ...prev, noon: item.value }))}\n >\n {item.value}\n </Text>\n ))}\n </Box>\n </Flex>\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{ width: \"100%\", height: \"calc(100% - 172px)\", padding: \"$2 $6 $2 $6\" }}\n >\n <Button size=\"md\" variant=\"ghost\" color=\"secondary\" onClick={() => setOpenTimePicker(false)}>\n Cancel\n </Button>\n <Button size=\"md\" variant=\"ghost\" onClick={handleApply}>\n Apply\n </Button>\n </Flex>\n </Box>\n );\n};\n\nexport default TimePicker;\n"],"names":["useRef","useState","useEffect","Box","Flex","Text","Button"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAA,CAAE,MAAM,CAAA,CAAE,IAAI,CAAC,IAAA,MAAU,EAAE,EAAI,EAAA,IAAA,GAAO,GAAG,KAAO,EAAA,IAAA,GAAO,GAAI,CAAA,CAAA,CAAA;AAErF,MAAM,OAAA,GAAU,CAAC,GAAG,KAAM,CAAA,EAAE,CAAE,CAAA,IAAA,EAAM,CAAA,CAAE,GAAI,CAAA,CAAC,IAAU,MAAA;AAAA,EACnD,EAAI,EAAA,IAAA;AAAA,EACJ,KAAQ,EAAA,CAAA,IAAA,GAAO,EAAK,GAAA,GAAA,GAAM,EAAM,IAAA,IAAA;AAClC,CAAE,CAAA,CAAA,CAAA;AAEF,MAAM,IAAO,GAAA;AAAA,EACX,EAAE,EAAA,EAAI,CAAG,EAAA,KAAA,EAAO,IAAc,EAAA;AAAA,EAC9B,EAAE,EAAA,EAAI,CAAG,EAAA,KAAA,EAAO,IAAc,EAAA;AAChC,CAAA,CAAA;AAEA,MAAM,aAAwC,CAAC;AAAA,EAC7C,iBAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AACF,CAAM,KAAA;AACJ,EAAM,MAAA,aAAA,GAAgBA,aAAuB,IAAI,CAAA,CAAA;AACjD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,cAAe,CAAA,EAAE,KAAO,EAAA,EAAA,EAAI,IAAM,EAAA,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,CAAA,CAAA;AAEtF,EAAA,MAAM,cAAc,MAAM;AACxB,IAAgB,eAAA,CAAA,CAAC,IAAU,KAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACtB,IADsB,CAAA,EAAA;AAAA,MAEzB,IAAA,EAAM,cAAK,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,CAAK,IAAS,CAAA,EAAA,SAAA,CAAA;AAAA,KACzB,CAAA,CAAA,CAAA;AACF,IAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AAAA,GACzB,CAAA;AAEA,EAAM,MAAA,kBAAA,GAAqB,CAAC,KAAsB,KAAA;AAChD,IAAI,IAAA,aAAA,CAAc,WAAW,CAAC,aAAA,CAAc,QAAQ,QAAS,CAAA,KAAA,CAAM,MAAc,CAAG,EAAA;AAClF,MAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AAAA,KACzB;AAAA,GACF,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,aAAa,IAAI,CAAA,CAAA;AAC9B,IAAS,QAAA,CAAA,gBAAA,CAAiB,aAAa,kBAAkB,CAAA,CAAA;AACzD,IAAA,OAAO,MAAM;AACX,MAAS,QAAA,CAAA,mBAAA,CAAoB,aAAa,kBAAkB,CAAA,CAAA;AAAA,KAC9D,CAAA;AAAA,GACF,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA;AAAA,QACH,KAAO,EAAA,OAAA;AAAA,QACP,MAAQ,EAAA,OAAA;AAAA,QACR,MAAQ,EAAA,oCAAA;AAAA,QACR,YAAc,EAAA,MAAA;AAAA,QACd,UAAY,EAAA,WAAA;AAAA,QACZ,MAAQ,EAAA,GAAA;AAAA,QACR,OAAS,EAAA,MAAA;AAAA,QACT,QAAU,EAAA,UAAA;AAAA,OACZ;AAAA,MACA,GAAK,EAAA,aAAA;AAAA,KAAA;AAAA,oBAEL,KAAA,CAAA,aAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,cAAe,EAAA,eAAA;AAAA,QACf,GAAK,EAAA;AAAA,UACH,KAAO,EAAA,MAAA;AAAA,UACP,MAAQ,EAAA,OAAA;AAAA,UACR,YAAc,EAAA,oCAAA;AAAA,SAChB;AAAA,OAAA;AAAA,sBAEA,KAAA,CAAA,aAAA;AAAA,QAACD,OAAA;AAAA,QAAA;AAAA,UACC,GAAK,EAAA;AAAA,YACH,QAAU,EAAA,QAAA;AAAA,YACV,OAAS,EAAA,OAAA;AAAA,YACT,WAAa,EAAA,oCAAA;AAAA,YACb,MAAQ,EAAA,SAAA;AAAA,YACR,sBAAA,EAAwB,EAAE,OAAA,EAAS,MAAO,EAAA;AAAA,WAC5C;AAAA,SAAA;AAAA,QAEC,KAAA,CAAM,GAAI,CAAA,CAAC,IACV,qBAAA,KAAA,CAAA,aAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACC,IAAK,EAAA,IAAA;AAAA,YACL,KAAK,IAAK,CAAA,EAAA;AAAA,YACV,GAAK,EAAA;AAAA,cACH,OAAS,EAAA,OAAA;AAAA,cACT,UAAY,EAAA,SAAA,CAAU,KAAU,KAAA,IAAA,CAAK,QAAQ,WAAc,GAAA,MAAA;AAAA,cAC3D,YAAc,EAAA,KAAA;AAAA,cACd,SAAW,EAAA,QAAA;AAAA,cACX,KAAO,EAAA,aAAA;AAAA,aACT;AAAA,YACA,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,IAAA,KAAU,aAAK,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,CAAA,EAAL,EAAW,KAAA,EAAO,IAAK,CAAA,KAAA,EAAQ,CAAA,CAAA;AAAA,WAAA;AAAA,UAErE,IAAK,CAAA,KAAA;AAAA,SAET,CAAA;AAAA,OACH;AAAA,sBACA,KAAA,CAAA,aAAA;AAAA,QAACF,OAAA;AAAA,QAAA;AAAA,UACC,GAAK,EAAA;AAAA,YACH,QAAU,EAAA,QAAA;AAAA,YACV,OAAS,EAAA,OAAA;AAAA,YACT,WAAa,EAAA,oCAAA;AAAA,YACb,MAAQ,EAAA,SAAA;AAAA,YACR,sBAAA,EAAwB,EAAE,OAAA,EAAS,MAAO,EAAA;AAAA,WAC5C;AAAA,SAAA;AAAA,QAEC,OAAA,CAAQ,GAAI,CAAA,CAAC,IACZ,qBAAA,KAAA,CAAA,aAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACC,IAAK,EAAA,IAAA;AAAA,YACL,KAAK,IAAK,CAAA,EAAA;AAAA,YACV,GAAK,EAAA;AAAA,cACH,OAAS,EAAA,OAAA;AAAA,cACT,UAAY,EAAA,SAAA,CAAU,IAAS,KAAA,IAAA,CAAK,QAAQ,WAAc,GAAA,MAAA;AAAA,cAC1D,YAAc,EAAA,KAAA;AAAA,cACd,SAAW,EAAA,QAAA;AAAA,cACX,KAAO,EAAA,aAAA;AAAA,aACT;AAAA,YACA,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,IAAA,KAAU,aAAK,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,CAAA,EAAL,EAAW,IAAA,EAAM,IAAK,CAAA,KAAA,EAAQ,CAAA,CAAA;AAAA,WAAA;AAAA,UAEpE,IAAK,CAAA,KAAA;AAAA,SAET,CAAA;AAAA,OACH;AAAA,sBACC,KAAA,CAAA,aAAA,CAAAF,OAAA,EAAA,EAAI,GAAK,EAAA,EAAE,OAAS,EAAA,OAAA,EAAS,MAAQ,EAAA,SAAA,EACnC,EAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,IACT,qBAAA,KAAA,CAAA,aAAA;AAAA,QAACE,SAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,IAAA;AAAA,UACL,KAAK,IAAK,CAAA,EAAA;AAAA,UACV,GAAK,EAAA;AAAA,YACH,OAAS,EAAA,OAAA;AAAA,YACT,UAAY,EAAA,SAAA,CAAU,IAAS,KAAA,IAAA,CAAK,QAAQ,WAAc,GAAA,MAAA;AAAA,YAC1D,YAAc,EAAA,KAAA;AAAA,YACd,SAAW,EAAA,QAAA;AAAA,YACX,KAAO,EAAA,aAAA;AAAA,WACT;AAAA,UACA,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,IAAA,KAAU,aAAK,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,CAAA,EAAL,EAAW,IAAA,EAAM,IAAK,CAAA,KAAA,EAAQ,CAAA,CAAA;AAAA,SAAA;AAAA,QAEpE,IAAK,CAAA,KAAA;AAAA,OAET,CACH,CAAA;AAAA,KACF;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAACD,SAAA;AAAA,MAAA;AAAA,QACC,UAAW,EAAA,QAAA;AAAA,QACX,cAAe,EAAA,eAAA;AAAA,QACf,KAAK,EAAE,KAAA,EAAO,QAAQ,MAAQ,EAAA,oBAAA,EAAsB,SAAS,aAAc,EAAA;AAAA,OAAA;AAAA,sBAE1E,KAAA,CAAA,aAAA,CAAAE,aAAA,EAAA,EAAO,IAAK,EAAA,IAAA,EAAK,OAAQ,EAAA,OAAA,EAAQ,KAAM,EAAA,WAAA,EAAY,OAAS,EAAA,MAAM,iBAAkB,CAAA,KAAK,KAAG,QAE7F,CAAA;AAAA,sBACA,KAAA,CAAA,aAAA,CAACA,iBAAO,IAAK,EAAA,IAAA,EAAK,SAAQ,OAAQ,EAAA,OAAA,EAAS,eAAa,OAExD,CAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var scheduling = require('./scheduling.js');
7
+ var constants = require('../constants.js');
8
+ var flex = require('../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js');
9
+ var box = require('../../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js');
10
+ var text = require('../../node_modules/@sparrowengg/twigs-react/dist/es/text/text.js');
11
+ var radio = require('../../node_modules/@sparrowengg/twigs-react/dist/es/radio/radio.js');
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __defProps = Object.defineProperties;
15
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
16
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
17
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
18
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
19
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
20
+ var __spreadValues = (a, b) => {
21
+ for (var prop in b || (b = {}))
22
+ if (__hasOwnProp.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
24
+ if (__getOwnPropSymbols)
25
+ for (var prop of __getOwnPropSymbols(b)) {
26
+ if (__propIsEnum.call(b, prop))
27
+ __defNormalProp(a, prop, b[prop]);
28
+ }
29
+ return a;
30
+ };
31
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
32
+ function ImportSchedules({
33
+ currentList,
34
+ setCurrentList
35
+ }) {
36
+ var _a;
37
+ const [globalStorage, setGlobalStorage] = React.useState((currentList == null ? void 0 : currentList.frequency) || {
38
+ frequentMode: constants.frequent.ONETIME.value
39
+ });
40
+ React.useEffect(() => {
41
+ setCurrentList(__spreadProps(__spreadValues({}, currentList), {
42
+ frequency: globalStorage
43
+ }));
44
+ }, [globalStorage]);
45
+ return /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$8" }, /* @__PURE__ */ React.createElement(box.Box, null, /* @__PURE__ */ React.createElement(text.Text, { css: { color: "$neutral900", fontSize: "$xl" }, weight: "bold" }, "Import Frequency"), /* @__PURE__ */ React.createElement(text.Text, { size: "md", css: { color: "$neutral600", marginTop: "$4" } }, "How frequently do you want to import contacts from Sugar CRM")), /* @__PURE__ */ React.createElement(
46
+ radio.RadioGroup,
47
+ {
48
+ defaultValue: (_a = currentList == null ? void 0 : currentList.frequency) == null ? void 0 : _a.frequentMode,
49
+ onChange: (value) => setGlobalStorage((prevGlobalStorage) => __spreadProps(__spreadValues({}, prevGlobalStorage), {
50
+ frequentMode: value
51
+ }))
52
+ },
53
+ /* @__PURE__ */ React.createElement(flex.Flex, { alignItems: "center", gap: "$8" }, /* @__PURE__ */ React.createElement(radio.Radio, { value: constants.frequent.ONETIME.value, css: { cursor: "pointer" } }, /* @__PURE__ */ React.createElement(text.Text, { size: "md", css: { color: "$neutral900" } }, constants.frequent.ONETIME.label)), /* @__PURE__ */ React.createElement(radio.Radio, { value: constants.frequent.RECURRING.value, css: { cursor: "pointer" } }, /* @__PURE__ */ React.createElement(text.Text, { size: "md", css: { color: "$neutral900" } }, constants.frequent.RECURRING.label)))
54
+ ), globalStorage.frequentMode === constants.frequent.RECURRING.value && /* @__PURE__ */ React.createElement(
55
+ scheduling.default,
56
+ {
57
+ globalStorage,
58
+ setGlobalStorage
59
+ }
60
+ ));
61
+ }
62
+
63
+ exports.default = ImportSchedules;
64
+ //# sourceMappingURL=conact-import-schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conact-import-schedule.js","sources":["../../../../src/contact-import/components/conact-import-schedule.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Flex, Box, RadioGroup, Radio, Text } from \"@sparrowengg/twigs-react\";\nimport Scheduling from \"./scheduling\";\nimport { frequent } from \"../constants\";\nimport { GlobalStorage } from \"../types\";\n\n\nexport default function ImportSchedules({\n currentList, \n setCurrentList\n}: any) {\n const [globalStorage, setGlobalStorage] = useState<GlobalStorage>(currentList?.frequency || {\n frequentMode: frequent.ONETIME.value\n });\n useEffect(()=>{\n setCurrentList({\n ...currentList,\n frequency: globalStorage\n })\n },[globalStorage])\n return (\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Box>\n <Text css={{ color: \"$neutral900\", fontSize: \"$xl\" }} weight=\"bold\">\n Import Frequency\n </Text>\n <Text size=\"md\" css={{ color: \"$neutral600\", marginTop: \"$4\" }}>\n How frequently do you want to import contacts from Sugar CRM\n </Text>\n </Box>\n <RadioGroup\n defaultValue={currentList?.frequency?.frequentMode}\n onChange={(value) =>\n setGlobalStorage((prevGlobalStorage) => ({\n ...prevGlobalStorage,\n frequentMode: value as GlobalStorage[\"frequentMode\"],\n }))\n }\n >\n <Flex alignItems=\"center\" gap=\"$8\">\n <Radio value={frequent.ONETIME.value} css={{ cursor: \"pointer\" }}>\n <Text size=\"md\" css={{ color: \"$neutral900\" }}>\n {frequent.ONETIME.label}\n </Text>\n </Radio>\n <Radio value={frequent.RECURRING.value} css={{ cursor: \"pointer\" }}>\n <Text size=\"md\" css={{ color: \"$neutral900\" }}>\n {frequent.RECURRING.label}\n </Text>\n </Radio>\n </Flex>\n </RadioGroup>\n {globalStorage.frequentMode === frequent.RECURRING.value && (\n <Scheduling\n globalStorage={globalStorage}\n setGlobalStorage={setGlobalStorage}\n />\n )}\n </Flex>\n );\n}\n"],"names":["useState","frequent","useEffect","Flex","Box","Text","RadioGroup","Radio","Scheduling"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,SAAwB,eAAgB,CAAA;AAAA,EACtC,WAAA;AAAA,EACA,cAAA;AACF,CAAQ,EAAA;AAVR,EAAA,IAAA,EAAA,CAAA;AAWE,EAAA,MAAM,CAAC,aAAe,EAAA,gBAAgB,CAAI,GAAAA,cAAA,CAAA,CAAwB,2CAAa,SAAa,KAAA;AAAA,IAC1F,YAAA,EAAcC,mBAAS,OAAQ,CAAA,KAAA;AAAA,GAChC,CAAA,CAAA;AACD,EAAAC,eAAA,CAAU,MAAI;AACZ,IAAA,cAAA,CAAe,iCACV,WADU,CAAA,EAAA;AAAA,MAEb,SAAW,EAAA,aAAA;AAAA,KACZ,CAAA,CAAA,CAAA;AAAA,GACH,EAAE,CAAC,aAAa,CAAC,CAAA,CAAA;AACjB,EAAA,uBACG,KAAA,CAAA,aAAA,CAAAC,SAAA,EAAA,EAAK,aAAc,EAAA,QAAA,EAAS,KAAI,IAC/B,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACC,OACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAACC,aAAK,GAAK,EAAA,EAAE,KAAO,EAAA,aAAA,EAAe,UAAU,KAAM,EAAA,EAAG,MAAO,EAAA,MAAA,EAAA,EAAO,kBAEpE,CAAA,kBACC,KAAA,CAAA,aAAA,CAAAA,SAAA,EAAA,EAAK,MAAK,IAAK,EAAA,GAAA,EAAK,EAAE,KAAA,EAAO,eAAe,SAAW,EAAA,IAAA,EAAQ,EAAA,EAAA,8DAEhE,CACF,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAACC,gBAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAA,CAAc,EAAa,GAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,SAAA,KAAb,IAAwB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,MACtC,UAAU,CAAC,KAAA,KACT,iBAAiB,CAAC,iBAAA,KAAuB,iCACpC,iBADoC,CAAA,EAAA;AAAA,QAEvC,YAAc,EAAA,KAAA;AAAA,OACd,CAAA,CAAA;AAAA,KAAA;AAAA,oBAGJ,KAAA,CAAA,aAAA,CAACH,SAAK,EAAA,EAAA,UAAA,EAAW,QAAS,EAAA,GAAA,EAAI,wBAC3B,KAAA,CAAA,aAAA,CAAAI,WAAA,EAAA,EAAM,KAAO,EAAAN,kBAAA,CAAS,OAAQ,CAAA,KAAA,EAAO,KAAK,EAAE,MAAA,EAAQ,SAAU,EAAA,EAAA,kBAC5D,KAAA,CAAA,aAAA,CAAAI,SAAA,EAAA,EAAK,IAAK,EAAA,IAAA,EAAK,GAAK,EAAA,EAAE,KAAO,EAAA,aAAA,EAC3B,EAAA,EAAAJ,kBAAA,CAAS,QAAQ,KACpB,CACF,CACA,kBAAA,KAAA,CAAA,aAAA,CAACM,WAAM,EAAA,EAAA,KAAA,EAAON,kBAAS,CAAA,SAAA,CAAU,KAAO,EAAA,GAAA,EAAK,EAAE,MAAA,EAAQ,SAAU,EAAA,EAAA,sCAC9DI,SAAK,EAAA,EAAA,IAAA,EAAK,IAAK,EAAA,GAAA,EAAK,EAAE,KAAA,EAAO,aAAc,EAAA,EAAA,EACzCJ,kBAAS,CAAA,SAAA,CAAU,KACtB,CACF,CACF,CAAA;AAAA,GAED,EAAA,aAAA,CAAc,YAAiB,KAAAA,kBAAA,CAAS,UAAU,KACjD,oBAAA,KAAA,CAAA,aAAA;AAAA,IAACO,kBAAA;AAAA,IAAA;AAAA,MACC,aAAA;AAAA,MACA,gBAAA;AAAA,KAAA;AAAA,GAGN,CAAA,CAAA;AAEJ;;;;"}