@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.
- package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js +1 -1
- package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
- package/dist/cjs/commons/components/NamingModal.js +34 -62
- package/dist/cjs/commons/components/NamingModal.js.map +1 -1
- package/dist/cjs/commons/components/confirmation-modal.js +12 -24
- package/dist/cjs/commons/components/confirmation-modal.js.map +1 -1
- package/dist/cjs/commons/components/custom-pill.js +12 -30
- package/dist/cjs/commons/components/custom-pill.js.map +1 -1
- package/dist/cjs/commons/components/draftModal.js +31 -45
- package/dist/cjs/commons/components/draftModal.js.map +1 -1
- package/dist/cjs/commons/components/edit-confirmation.js +17 -34
- package/dist/cjs/commons/components/edit-confirmation.js.map +1 -1
- package/dist/cjs/commons/components/import-modal.js +18 -49
- package/dist/cjs/commons/components/import-modal.js.map +1 -1
- package/dist/cjs/commons/components/spinner.js +2 -16
- package/dist/cjs/commons/components/spinner.js.map +1 -1
- package/dist/cjs/commons/components/theme-wrapper.js +12 -9
- package/dist/cjs/commons/components/theme-wrapper.js.map +1 -1
- package/dist/cjs/commons/constants/enhanced.js.map +1 -1
- package/dist/cjs/commons/helpers/index.js +52 -93
- package/dist/cjs/commons/helpers/index.js.map +1 -1
- package/dist/cjs/commons/icons/arrow.js +3 -38
- package/dist/cjs/commons/icons/arrow.js.map +1 -1
- package/dist/cjs/commons/icons/cursor.js +8 -21
- package/dist/cjs/commons/icons/cursor.js.map +1 -1
- package/dist/cjs/commons/icons/email-letter.js +12 -30
- package/dist/cjs/commons/icons/email-letter.js.map +1 -1
- package/dist/cjs/commons/icons/mapping.js +10 -23
- package/dist/cjs/commons/icons/mapping.js.map +1 -1
- package/dist/cjs/commons/icons/nested-add.js +14 -32
- package/dist/cjs/commons/icons/nested-add.js.map +1 -1
- package/dist/cjs/commons/icons/sms.js +18 -36
- package/dist/cjs/commons/icons/sms.js.map +1 -1
- package/dist/cjs/commons/icons/sync.js +3 -110
- package/dist/cjs/commons/icons/sync.js.map +1 -1
- package/dist/cjs/commons/icons/trash.js +15 -33
- package/dist/cjs/commons/icons/trash.js.map +1 -1
- package/dist/cjs/commons/icons/whatsapp.js +31 -49
- package/dist/cjs/commons/icons/whatsapp.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/Completed.js +41 -27
- package/dist/cjs/contact-import/components/ManageImport/Completed.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/Dashboard.js +43 -23
- package/dist/cjs/contact-import/components/ManageImport/Dashboard.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/NoDataState.js +6 -7
- package/dist/cjs/contact-import/components/ManageImport/NoDataState.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/Scheduled.js +46 -30
- package/dist/cjs/contact-import/components/ManageImport/Scheduled.js.map +1 -1
- package/dist/cjs/contact-import/components/ManageImport/icon.js +85 -0
- package/dist/cjs/contact-import/components/ManageImport/icon.js.map +1 -0
- package/dist/cjs/contact-import/components/Scheduling.js +27 -39
- package/dist/cjs/contact-import/components/Scheduling.js.map +1 -1
- package/dist/cjs/contact-import/components/TimePicker.js +102 -129
- package/dist/cjs/contact-import/components/TimePicker.js.map +1 -1
- package/dist/cjs/contact-import/components/conact-import-schedule.js +64 -0
- package/dist/cjs/contact-import/components/conact-import-schedule.js.map +1 -0
- package/dist/cjs/contact-import/components/contact-import-configure.js +75 -0
- package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -0
- package/dist/cjs/contact-import/components/contact-import-mapping.js +224 -0
- package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -0
- package/dist/cjs/contact-import/constants.js +21 -0
- package/dist/cjs/contact-import/constants.js.map +1 -0
- package/dist/cjs/contact-import/index.js +242 -32
- package/dist/cjs/contact-import/index.js.map +1 -1
- package/dist/cjs/dynamic-mapping/components/Mapping.js +321 -203
- package/dist/cjs/dynamic-mapping/components/Mapping.js.map +1 -1
- package/dist/cjs/dynamic-mapping/index.js +972 -34
- package/dist/cjs/dynamic-mapping/index.js.map +1 -1
- package/dist/cjs/filter/filter-pill-value-selector.js +1 -1
- package/dist/cjs/filter/filter-pill-value-selector.js.map +1 -1
- package/dist/cjs/index.js +12 -159
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/integration-template/components/dashboard.js +137 -130
- package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
- package/dist/cjs/integration-template/index.js +343 -0
- package/dist/cjs/integration-template/index.js.map +1 -0
- package/dist/cjs/mapping/components/custom-menu.js +3 -4
- package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
- package/dist/cjs/mapping/components/field.js +103 -121
- package/dist/cjs/mapping/components/field.js.map +1 -1
- package/dist/cjs/mapping/components/mapping.js +195 -106
- package/dist/cjs/mapping/components/mapping.js.map +1 -1
- package/dist/cjs/mapping/constants/index.js +2 -259
- package/dist/cjs/mapping/constants/index.js.map +1 -1
- package/dist/cjs/mapping/index.js +618 -38
- package/dist/cjs/mapping/index.js.map +1 -1
- package/dist/cjs/mapping/services/index.js +58 -96
- package/dist/cjs/mapping/services/index.js.map +1 -1
- package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +7 -7
- package/dist/cjs/single-mapping/components/mapping.js +490 -0
- package/dist/cjs/single-mapping/components/mapping.js.map +1 -0
- package/dist/cjs/single-mapping/index.js +986 -58
- package/dist/cjs/single-mapping/index.js.map +1 -1
- package/dist/cjs/triggers/components/subcomponents.js +1140 -0
- package/dist/cjs/triggers/components/subcomponents.js.map +1 -0
- package/dist/cjs/triggers/components/trigger.js +491 -0
- package/dist/cjs/triggers/components/trigger.js.map +1 -0
- package/dist/cjs/triggers/constants/index.js +0 -253
- package/dist/cjs/triggers/constants/index.js.map +1 -1
- package/dist/cjs/triggers/index.js +333 -0
- package/dist/cjs/triggers/index.js.map +1 -0
- package/dist/cjs/triggers/services/index.js +30 -0
- package/dist/cjs/triggers/services/index.js.map +1 -0
- package/dist/es/cascader-dropdown/cascader-dropdown-content.js +1 -1
- package/dist/es/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
- package/dist/es/commons/components/NamingModal.js +35 -63
- package/dist/es/commons/components/NamingModal.js.map +1 -1
- package/dist/es/commons/components/confirmation-modal.js +13 -25
- package/dist/es/commons/components/confirmation-modal.js.map +1 -1
- package/dist/es/commons/components/custom-pill.js +13 -31
- package/dist/es/commons/components/custom-pill.js.map +1 -1
- package/dist/es/commons/components/draftModal.js +32 -46
- package/dist/es/commons/components/draftModal.js.map +1 -1
- package/dist/es/commons/components/edit-confirmation.js +18 -35
- package/dist/es/commons/components/edit-confirmation.js.map +1 -1
- package/dist/es/commons/components/import-modal.js +19 -50
- package/dist/es/commons/components/import-modal.js.map +1 -1
- package/dist/es/commons/components/spinner.js +2 -16
- package/dist/es/commons/components/spinner.js.map +1 -1
- package/dist/es/commons/components/theme-wrapper.js +12 -9
- package/dist/es/commons/components/theme-wrapper.js.map +1 -1
- package/dist/es/commons/constants/enhanced.js.map +1 -1
- package/dist/es/commons/helpers/index.js +52 -93
- package/dist/es/commons/helpers/index.js.map +1 -1
- package/dist/es/commons/icons/arrow.js +3 -38
- package/dist/es/commons/icons/arrow.js.map +1 -1
- package/dist/es/commons/icons/cursor.js +8 -21
- package/dist/es/commons/icons/cursor.js.map +1 -1
- package/dist/es/commons/icons/email-letter.js +12 -30
- package/dist/es/commons/icons/email-letter.js.map +1 -1
- package/dist/es/commons/icons/mapping.js +10 -23
- package/dist/es/commons/icons/mapping.js.map +1 -1
- package/dist/es/commons/icons/nested-add.js +14 -32
- package/dist/es/commons/icons/nested-add.js.map +1 -1
- package/dist/es/commons/icons/sms.js +18 -36
- package/dist/es/commons/icons/sms.js.map +1 -1
- package/dist/es/commons/icons/sync.js +3 -110
- package/dist/es/commons/icons/sync.js.map +1 -1
- package/dist/es/commons/icons/trash.js +15 -33
- package/dist/es/commons/icons/trash.js.map +1 -1
- package/dist/es/commons/icons/whatsapp.js +31 -49
- package/dist/es/commons/icons/whatsapp.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/Completed.js +41 -27
- package/dist/es/contact-import/components/ManageImport/Completed.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/Dashboard.js +45 -25
- package/dist/es/contact-import/components/ManageImport/Dashboard.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/NoDataState.js +4 -5
- package/dist/es/contact-import/components/ManageImport/NoDataState.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/Scheduled.js +46 -30
- package/dist/es/contact-import/components/ManageImport/Scheduled.js.map +1 -1
- package/dist/es/contact-import/components/ManageImport/icon.js +82 -0
- package/dist/es/contact-import/components/ManageImport/icon.js.map +1 -0
- package/dist/es/contact-import/components/Scheduling.js +27 -39
- package/dist/es/contact-import/components/Scheduling.js.map +1 -1
- package/dist/es/contact-import/components/TimePicker.js +103 -130
- package/dist/es/contact-import/components/TimePicker.js.map +1 -1
- package/dist/es/contact-import/components/conact-import-schedule.js +60 -0
- package/dist/es/contact-import/components/conact-import-schedule.js.map +1 -0
- package/dist/es/contact-import/components/contact-import-configure.js +71 -0
- package/dist/es/contact-import/components/contact-import-configure.js.map +1 -0
- package/dist/es/contact-import/components/contact-import-mapping.js +220 -0
- package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -0
- package/dist/es/contact-import/constants.js +18 -0
- package/dist/es/contact-import/constants.js.map +1 -0
- package/dist/es/contact-import/index.js +240 -27
- package/dist/es/contact-import/index.js.map +1 -1
- package/dist/es/dynamic-mapping/components/Mapping.js +321 -203
- package/dist/es/dynamic-mapping/components/Mapping.js.map +1 -1
- package/dist/es/dynamic-mapping/index.js +972 -34
- package/dist/es/dynamic-mapping/index.js.map +1 -1
- package/dist/es/filter/filter-pill-value-selector.js +1 -1
- package/dist/es/filter/filter-pill-value-selector.js.map +1 -1
- package/dist/es/index.js +2 -23
- package/dist/es/index.js.map +1 -1
- package/dist/es/integration-template/components/dashboard.js +139 -132
- package/dist/es/integration-template/components/dashboard.js.map +1 -1
- package/dist/es/integration-template/index.js +341 -0
- package/dist/es/integration-template/index.js.map +1 -0
- package/dist/es/mapping/components/custom-menu.js +3 -4
- package/dist/es/mapping/components/custom-menu.js.map +1 -1
- package/dist/es/mapping/components/field.js +100 -118
- package/dist/es/mapping/components/field.js.map +1 -1
- package/dist/es/mapping/components/mapping.js +194 -105
- package/dist/es/mapping/components/mapping.js.map +1 -1
- package/dist/es/mapping/constants/index.js +3 -239
- package/dist/es/mapping/constants/index.js.map +1 -1
- package/dist/es/mapping/index.js +617 -12
- package/dist/es/mapping/index.js.map +1 -1
- package/dist/es/mapping/services/index.js +59 -96
- package/dist/es/mapping/services/index.js.map +1 -1
- package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js +3 -3
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +2 -2
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/calendar/dist/import.js +2 -2
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/utils/dist/import.js +1 -1
- package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-stately/calendar/dist/import.js +1 -1
- package/dist/es/single-mapping/components/mapping.js +486 -0
- package/dist/es/single-mapping/components/mapping.js.map +1 -0
- package/dist/es/single-mapping/index.js +987 -59
- package/dist/es/single-mapping/index.js.map +1 -1
- package/dist/es/triggers/components/subcomponents.js +1134 -0
- package/dist/es/triggers/components/subcomponents.js.map +1 -0
- package/dist/es/triggers/components/trigger.js +487 -0
- package/dist/es/triggers/components/trigger.js.map +1 -0
- package/dist/es/triggers/constants/index.js +1 -228
- package/dist/es/triggers/constants/index.js.map +1 -1
- package/dist/es/triggers/index.js +331 -0
- package/dist/es/triggers/index.js.map +1 -0
- package/dist/es/triggers/services/index.js +28 -0
- package/dist/es/triggers/services/index.js.map +1 -0
- package/dist/index.d.ts +448 -2161
- 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
|
|
10
|
-
var
|
|
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
|
-
|
|
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((
|
|
56
|
+
setGlobalStorage((prevGlobalStorage) => __spreadProps(__spreadValues({}, prevGlobalStorage), {
|
|
57
57
|
scheduleData: scheduleTime
|
|
58
58
|
}));
|
|
59
|
-
}, [scheduleTime
|
|
59
|
+
}, [scheduleTime]);
|
|
60
60
|
React.useEffect(() => {
|
|
61
61
|
if (globalStorage.scheduleData) {
|
|
62
62
|
setScheduleTime(globalStorage.scheduleData);
|
|
63
63
|
}
|
|
64
|
-
}, [globalStorage
|
|
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":
|
|
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:
|
|
77
|
+
onClick: () => setOpenTimePicker(false)
|
|
90
78
|
},
|
|
91
79
|
scheduleTime.period
|
|
92
|
-
)), /* @__PURE__ */ React.createElement(dropdown.DropdownMenuContent, { align: "start", css: { minWidth: "168px" } },
|
|
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: () =>
|
|
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" },
|
|
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:
|
|
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":
|
|
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:
|
|
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: () =>
|
|
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=
|
|
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
|
-
|
|
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
|
-
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -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;;;;"}
|