@bigbinary/neeto-molecules 4.1.0-beta1 → 4.1.1
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/AuditLogs.js +193 -63
- package/dist/AuditLogs.js.map +1 -1
- package/dist/Breadcrumbs.js +40 -24
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BrowserSupport.js +17 -8
- package/dist/BrowserSupport.js.map +1 -1
- package/dist/Builder.js +16 -23
- package/dist/Builder.js.map +1 -1
- package/dist/CalendarView.js +35 -11
- package/dist/CalendarView.js.map +1 -1
- package/dist/CardLayout.js +0 -1
- package/dist/CardLayout.js.map +1 -1
- package/dist/{Chevron-Dtxc2piW.js → Chevron-DOz710Ei.js} +23 -20
- package/dist/Chevron-DOz710Ei.js.map +1 -0
- package/dist/Codeblock.js +3 -5
- package/dist/Codeblock.js.map +1 -1
- package/dist/{Columns-CsOYfWFt.js → Columns-D51hN86M.js} +8 -9
- package/dist/Columns-D51hN86M.js.map +1 -0
- package/dist/Columns.js +1 -1
- package/dist/ConfigurePageSidebar.js +3 -3
- package/dist/ConfigurePageSidebar.js.map +1 -1
- package/dist/ConfirmationModal.js +2 -2
- package/dist/ConfirmationModal.js.map +1 -1
- package/dist/CopyToClipboardButton.js +12 -7
- package/dist/CopyToClipboardButton.js.map +1 -1
- package/dist/DeleteArchiveModal.js +5 -7
- package/dist/DeleteArchiveModal.js.map +1 -1
- package/dist/DeviceIncompatibilityMessage.js +0 -1
- package/dist/DeviceIncompatibilityMessage.js.map +1 -1
- package/dist/DocumentEditor.js +3 -3
- package/dist/DocumentEditor.js.map +1 -1
- package/dist/DynamicVariables.js +5 -7
- package/dist/DynamicVariables.js.map +1 -1
- package/dist/EmailForm.js +107 -124
- package/dist/EmailForm.js.map +1 -1
- package/dist/EmailPreview.js +90 -73
- package/dist/EmailPreview.js.map +1 -1
- package/dist/EmojiPicker.js +6 -1
- package/dist/EmojiPicker.js.map +1 -1
- package/dist/EmojiReactions.js +1 -1
- package/dist/EmojiReactions.js.map +1 -1
- package/dist/ErrorPage.js +7 -5
- package/dist/ErrorPage.js.map +1 -1
- package/dist/FileUpload.js +14 -14
- package/dist/FileUpload.js.map +1 -1
- package/dist/FinderModal.js +61 -74
- package/dist/FinderModal.js.map +1 -1
- package/dist/FloatingActionMenu.js +233 -190
- package/dist/FloatingActionMenu.js.map +1 -1
- package/dist/Header.js +2 -4
- package/dist/Header.js.map +1 -1
- package/dist/HelpPopover.js +2 -6
- package/dist/HelpPopover.js.map +1 -1
- package/dist/IconPicker.js +2 -3
- package/dist/IconPicker.js.map +1 -1
- package/dist/InlineInput.js +6 -2
- package/dist/InlineInput.js.map +1 -1
- package/dist/Insights.js +3 -6
- package/dist/Insights.js.map +1 -1
- package/dist/IntegrationCard.js +10 -12
- package/dist/IntegrationCard.js.map +1 -1
- package/dist/IpRestriction.js +11 -13
- package/dist/IpRestriction.js.map +1 -1
- package/dist/KeyboardShortcuts.js +3 -4
- package/dist/KeyboardShortcuts.js.map +1 -1
- package/dist/LoginPage.js +4 -9
- package/dist/LoginPage.js.map +1 -1
- package/dist/MadeWith.js +1 -2
- package/dist/MadeWith.js.map +1 -1
- package/dist/MenuBar.js +10 -8
- package/dist/MenuBar.js.map +1 -1
- package/dist/Metadata.js +5 -8
- package/dist/Metadata.js.map +1 -1
- package/dist/MobilePreviewHeader.js +1 -1
- package/dist/MobilePreviewHeader.js.map +1 -1
- package/dist/MoreDropdown.js +1 -2
- package/dist/MoreDropdown.js.map +1 -1
- package/dist/NavigationHeader.js +4 -8
- package/dist/NavigationHeader.js.map +1 -1
- package/dist/NeetoWidget.js +2 -3
- package/dist/NeetoWidget.js.map +1 -1
- package/dist/Onboarding.js +2 -10
- package/dist/Onboarding.js.map +1 -1
- package/dist/OptionFields.js +6 -22
- package/dist/OptionFields.js.map +1 -1
- package/dist/PageLoader.js +1 -1
- package/dist/PageLoader.js.map +1 -1
- package/dist/PhoneNumber.js +0 -1
- package/dist/PhoneNumber.js.map +1 -1
- package/dist/ProductEmbed.js +35 -36
- package/dist/ProductEmbed.js.map +1 -1
- package/dist/PublishBlock.js +11 -22
- package/dist/PublishBlock.js.map +1 -1
- package/dist/PublishYourItem.js +2 -2
- package/dist/PublishYourItem.js.map +1 -1
- package/dist/Rename.js +18 -17
- package/dist/Rename.js.map +1 -1
- package/dist/Schedule.js +120 -69
- package/dist/Schedule.js.map +1 -1
- package/dist/SendToFields.js +31 -23
- package/dist/SendToFields.js.map +1 -1
- package/dist/SessionEnvironment.js +2 -8
- package/dist/SessionEnvironment.js.map +1 -1
- package/dist/Settings.js +8 -9
- package/dist/Settings.js.map +1 -1
- package/dist/ShareRecordingPane.js +69 -52
- package/dist/ShareRecordingPane.js.map +1 -1
- package/dist/ShareViaEmail.js +6 -9
- package/dist/ShareViaEmail.js.map +1 -1
- package/dist/ShareViaLink.js +6 -22
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/Sidebar.js +24 -20
- package/dist/Sidebar.js.map +1 -1
- package/dist/StatusDropdown.js +7 -10
- package/dist/StatusDropdown.js.map +1 -1
- package/dist/StickyRibbonsContainer.js +3 -3
- package/dist/StickyRibbonsContainer.js.map +1 -1
- package/dist/SubHeader.js +12 -15
- package/dist/SubHeader.js.map +1 -1
- package/dist/Taxonomy.js +4 -6
- package/dist/Taxonomy.js.map +1 -1
- package/dist/ToggleFeatureCard.js +18 -24
- package/dist/ToggleFeatureCard.js.map +1 -1
- package/dist/VersionHistory.js +1 -3
- package/dist/VersionHistory.js.map +1 -1
- package/dist/cjs/AuditLogs.js +190 -60
- package/dist/cjs/AuditLogs.js.map +1 -1
- package/dist/cjs/Breadcrumbs.js +40 -24
- package/dist/cjs/Breadcrumbs.js.map +1 -1
- package/dist/cjs/BrowserSupport.js +17 -8
- package/dist/cjs/BrowserSupport.js.map +1 -1
- package/dist/cjs/Builder.js +16 -23
- package/dist/cjs/Builder.js.map +1 -1
- package/dist/cjs/CalendarView.js +35 -11
- package/dist/cjs/CalendarView.js.map +1 -1
- package/dist/cjs/CardLayout.js +0 -1
- package/dist/cjs/CardLayout.js.map +1 -1
- package/dist/cjs/{Chevron-DzdbGPJI.js → Chevron-brQURuT5.js} +23 -20
- package/dist/cjs/Chevron-brQURuT5.js.map +1 -0
- package/dist/cjs/Codeblock.js +3 -5
- package/dist/cjs/Codeblock.js.map +1 -1
- package/dist/cjs/{Columns-DHPNrFgq.js → Columns-7xltEL2z.js} +8 -9
- package/dist/cjs/Columns-7xltEL2z.js.map +1 -0
- package/dist/cjs/Columns.js +1 -1
- package/dist/cjs/ConfigurePageSidebar.js +3 -3
- package/dist/cjs/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/ConfirmationModal.js +2 -2
- package/dist/cjs/ConfirmationModal.js.map +1 -1
- package/dist/cjs/CopyToClipboardButton.js +11 -6
- package/dist/cjs/CopyToClipboardButton.js.map +1 -1
- package/dist/cjs/DeleteArchiveModal.js +5 -7
- package/dist/cjs/DeleteArchiveModal.js.map +1 -1
- package/dist/cjs/DeviceIncompatibilityMessage.js +0 -1
- package/dist/cjs/DeviceIncompatibilityMessage.js.map +1 -1
- package/dist/cjs/DocumentEditor.js +3 -3
- package/dist/cjs/DocumentEditor.js.map +1 -1
- package/dist/cjs/DynamicVariables.js +5 -7
- package/dist/cjs/DynamicVariables.js.map +1 -1
- package/dist/cjs/EmailForm.js +105 -122
- package/dist/cjs/EmailForm.js.map +1 -1
- package/dist/cjs/EmailPreview.js +108 -73
- package/dist/cjs/EmailPreview.js.map +1 -1
- package/dist/cjs/EmojiPicker.js +6 -1
- package/dist/cjs/EmojiPicker.js.map +1 -1
- package/dist/cjs/EmojiReactions.js +1 -1
- package/dist/cjs/EmojiReactions.js.map +1 -1
- package/dist/cjs/ErrorPage.js +7 -5
- package/dist/cjs/ErrorPage.js.map +1 -1
- package/dist/cjs/FileUpload.js +13 -13
- package/dist/cjs/FileUpload.js.map +1 -1
- package/dist/cjs/FinderModal.js +59 -72
- package/dist/cjs/FinderModal.js.map +1 -1
- package/dist/cjs/FloatingActionMenu.js +232 -189
- package/dist/cjs/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/Header.js +2 -4
- package/dist/cjs/Header.js.map +1 -1
- package/dist/cjs/HelpPopover.js +2 -6
- package/dist/cjs/HelpPopover.js.map +1 -1
- package/dist/cjs/IconPicker.js +2 -3
- package/dist/cjs/IconPicker.js.map +1 -1
- package/dist/cjs/InlineInput.js +6 -2
- package/dist/cjs/InlineInput.js.map +1 -1
- package/dist/cjs/Insights.js +3 -6
- package/dist/cjs/Insights.js.map +1 -1
- package/dist/cjs/IntegrationCard.js +9 -11
- package/dist/cjs/IntegrationCard.js.map +1 -1
- package/dist/cjs/IpRestriction.js +11 -13
- package/dist/cjs/IpRestriction.js.map +1 -1
- package/dist/cjs/KeyboardShortcuts.js +3 -4
- package/dist/cjs/KeyboardShortcuts.js.map +1 -1
- package/dist/cjs/LoginPage.js +4 -9
- package/dist/cjs/LoginPage.js.map +1 -1
- package/dist/cjs/MadeWith.js +1 -2
- package/dist/cjs/MadeWith.js.map +1 -1
- package/dist/cjs/MenuBar.js +10 -8
- package/dist/cjs/MenuBar.js.map +1 -1
- package/dist/cjs/Metadata.js +5 -8
- package/dist/cjs/Metadata.js.map +1 -1
- package/dist/cjs/MobilePreviewHeader.js +1 -1
- package/dist/cjs/MobilePreviewHeader.js.map +1 -1
- package/dist/cjs/MoreDropdown.js +1 -2
- package/dist/cjs/MoreDropdown.js.map +1 -1
- package/dist/cjs/NavigationHeader.js +4 -8
- package/dist/cjs/NavigationHeader.js.map +1 -1
- package/dist/cjs/NeetoWidget.js +2 -3
- package/dist/cjs/NeetoWidget.js.map +1 -1
- package/dist/cjs/Onboarding.js +2 -10
- package/dist/cjs/Onboarding.js.map +1 -1
- package/dist/cjs/OptionFields.js +6 -22
- package/dist/cjs/OptionFields.js.map +1 -1
- package/dist/cjs/PageLoader.js +1 -1
- package/dist/cjs/PageLoader.js.map +1 -1
- package/dist/cjs/PhoneNumber.js +0 -1
- package/dist/cjs/PhoneNumber.js.map +1 -1
- package/dist/cjs/ProductEmbed.js +35 -36
- package/dist/cjs/ProductEmbed.js.map +1 -1
- package/dist/cjs/PublishBlock.js +11 -22
- package/dist/cjs/PublishBlock.js.map +1 -1
- package/dist/cjs/PublishYourItem.js +2 -2
- package/dist/cjs/PublishYourItem.js.map +1 -1
- package/dist/cjs/Rename.js +18 -17
- package/dist/cjs/Rename.js.map +1 -1
- package/dist/cjs/Schedule.js +119 -68
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/SendToFields.js +31 -23
- package/dist/cjs/SendToFields.js.map +1 -1
- package/dist/cjs/SessionEnvironment.js +2 -8
- package/dist/cjs/SessionEnvironment.js.map +1 -1
- package/dist/cjs/Settings.js +8 -9
- package/dist/cjs/Settings.js.map +1 -1
- package/dist/cjs/ShareRecordingPane.js +68 -51
- package/dist/cjs/ShareRecordingPane.js.map +1 -1
- package/dist/cjs/ShareViaEmail.js +6 -9
- package/dist/cjs/ShareViaEmail.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +6 -22
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/dist/cjs/Sidebar.js +24 -20
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/StatusDropdown.js +6 -9
- package/dist/cjs/StatusDropdown.js.map +1 -1
- package/dist/cjs/StickyRibbonsContainer.js +3 -3
- package/dist/cjs/StickyRibbonsContainer.js.map +1 -1
- package/dist/cjs/SubHeader.js +12 -15
- package/dist/cjs/SubHeader.js.map +1 -1
- package/dist/cjs/Taxonomy.js +4 -6
- package/dist/cjs/Taxonomy.js.map +1 -1
- package/dist/cjs/ToggleFeatureCard.js +17 -23
- package/dist/cjs/ToggleFeatureCard.js.map +1 -1
- package/dist/cjs/VersionHistory.js +1 -3
- package/dist/cjs/VersionHistory.js.map +1 -1
- package/package.json +5 -5
- package/src/translations/ar.json +52 -14
- package/src/translations/bg.json +52 -14
- package/src/translations/ca.json +53 -15
- package/src/translations/cs.json +52 -14
- package/src/translations/da.json +52 -14
- package/src/translations/de.json +52 -14
- package/src/translations/en.json +51 -15
- package/src/translations/es-MX.json +53 -15
- package/src/translations/es.json +52 -14
- package/src/translations/et.json +52 -14
- package/src/translations/fi.json +53 -15
- package/src/translations/fil.json +53 -15
- package/src/translations/fr.json +52 -14
- package/src/translations/he.json +52 -14
- package/src/translations/hi.json +52 -14
- package/src/translations/hr.json +53 -15
- package/src/translations/id.json +53 -15
- package/src/translations/it.json +53 -15
- package/src/translations/ja.json +53 -15
- package/src/translations/ko.json +52 -14
- package/src/translations/nl.json +53 -15
- package/src/translations/pl.json +53 -15
- package/src/translations/pt-BR.json +53 -15
- package/src/translations/pt.json +53 -15
- package/src/translations/ro.json +53 -15
- package/src/translations/ru.json +51 -13
- package/src/translations/sk.json +52 -14
- package/src/translations/sl.json +52 -14
- package/src/translations/sv.json +53 -15
- package/src/translations/th.json +53 -15
- package/src/translations/tr.json +53 -15
- package/src/translations/uk.json +51 -13
- package/src/translations/vi.json +50 -12
- package/src/translations/zh-CN.json +50 -12
- package/src/translations/zh-TW.json +50 -12
- package/types/EmailForm.d.ts +5 -3
- package/types/FinderModal.d.ts +0 -8
- package/types/IntegrationCard.d.ts +1 -1
- package/types/Rename.d.ts +2 -0
- package/types/Settings.d.ts +2 -2
- package/types/ShareViaLink.d.ts +2 -2
- package/types/SubHeader.d.ts +2 -2
- package/types/ToggleFeatureCard.d.ts +3 -3
- package/dist/Chevron-Dtxc2piW.js.map +0 -1
- package/dist/Columns-CsOYfWFt.js.map +0 -1
- package/dist/cjs/Chevron-DzdbGPJI.js.map +0 -1
- package/dist/cjs/Columns-DHPNrFgq.js.map +0 -1
package/dist/Schedule.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createContext, useContext, memo, useMemo, useState, useEffect, useImperativeHandle, forwardRef } from 'react';
|
|
2
2
|
import { useFormikContext, FieldArray, ErrorMessage, Formik, Form as Form$2 } from 'formik';
|
|
3
|
-
import { findIndexBy, isNotPresent, isPresent, toLabelAndValue, isNotEmpty, noop } from '@bigbinary/neeto-cist';
|
|
3
|
+
import { findIndexBy, isNotPresent, isPresent, toLabelAndValue, isNotEmpty, findBy, noop } from '@bigbinary/neeto-cist';
|
|
4
4
|
import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils/general';
|
|
5
5
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
@@ -38,12 +38,17 @@ import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
|
38
38
|
|
|
39
39
|
var DAYS = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
|
|
40
40
|
var DEFAULT_SLOT_INTERVAL = 30;
|
|
41
|
+
var HOUR_FORMATS = {
|
|
42
|
+
H24: "24h"};
|
|
43
|
+
var DEFAULT_HOUR_FORMAT = HOUR_FORMATS.H24;
|
|
41
44
|
|
|
42
45
|
// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
|
|
43
46
|
// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
|
|
44
47
|
var ScheduleContext = /*#__PURE__*/createContext({
|
|
45
48
|
allowAddPeriod: true,
|
|
46
|
-
firstDay: 0
|
|
49
|
+
firstDay: 0,
|
|
50
|
+
slotInterval: DEFAULT_SLOT_INTERVAL,
|
|
51
|
+
hourFormat: DEFAULT_HOUR_FORMAT
|
|
47
52
|
});
|
|
48
53
|
|
|
49
54
|
var INTERVALS = ["year", "quarter", "month", "week", "day", "hour", "minute", "second"];
|
|
@@ -66,9 +71,10 @@ var BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {
|
|
|
66
71
|
}
|
|
67
72
|
};
|
|
68
73
|
var SLOT_TIME_FORMAT = "hh:mm A";
|
|
74
|
+
var SLOT_TIME_FORMAT_24H = "HH:mm";
|
|
69
75
|
|
|
70
76
|
// eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
|
|
71
|
-
var END_OF_DAY = dayjs().endOf("day").format(
|
|
77
|
+
var END_OF_DAY = dayjs().endOf("day").format(SLOT_TIME_FORMAT_24H);
|
|
72
78
|
|
|
73
79
|
var DayjsRange = /*#__PURE__*/function () {
|
|
74
80
|
function DayjsRange(startDate, endDate) {
|
|
@@ -106,7 +112,7 @@ var DayjsRange = /*#__PURE__*/function () {
|
|
|
106
112
|
var endTime = this.endDate.add(1, "days");
|
|
107
113
|
var allTimes = [];
|
|
108
114
|
while (startTime < endTime) {
|
|
109
|
-
allTimes.push(startTime.format(
|
|
115
|
+
allTimes.push(startTime.format(SLOT_TIME_FORMAT_24H));
|
|
110
116
|
startTime = startTime.add(interval, "minutes");
|
|
111
117
|
}
|
|
112
118
|
return allTimes;
|
|
@@ -172,7 +178,7 @@ yup.addMethod(yup.array, "ensureSlotsCantOverlap", function () {
|
|
|
172
178
|
});
|
|
173
179
|
var isFromAndToSame = function isFromAndToSame(startTime, endTime) {
|
|
174
180
|
if (!startTime || !endTime) return true;
|
|
175
|
-
return dayjs(startTime,
|
|
181
|
+
return dayjs(startTime, SLOT_TIME_FORMAT_24H).isSame(dayjs(endTime, SLOT_TIME_FORMAT_24H));
|
|
176
182
|
};
|
|
177
183
|
var sortDays = function sortDays(chosenIndex) {
|
|
178
184
|
if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;
|
|
@@ -212,7 +218,7 @@ var getTimeZoneAndTime = function getTimeZoneAndTime() {
|
|
|
212
218
|
return "".concat(humanReadableTimezone, ": ").concat(dayjs().tz(timeZone).format(SLOT_TIME_FORMAT));
|
|
213
219
|
};
|
|
214
220
|
var isTimeBehind = function isTimeBehind(timeA, timeB) {
|
|
215
|
-
return dayjs(timeA,
|
|
221
|
+
return dayjs(timeA, SLOT_TIME_FORMAT_24H).isBefore(dayjs(timeB, SLOT_TIME_FORMAT_24H));
|
|
216
222
|
};
|
|
217
223
|
var sortPeriodsByKey = function sortPeriodsByKey(_ref) {
|
|
218
224
|
var periods = _ref.periods,
|
|
@@ -253,8 +259,8 @@ var checkForOverlapBetweenPeriods = function checkForOverlapBetweenPeriods(perio
|
|
|
253
259
|
value = _step$value[1];
|
|
254
260
|
var seg1 = value;
|
|
255
261
|
var seg2 = slotsSortedByStartTime[index + 1];
|
|
256
|
-
var range1 = dayjsExtended.range(dayjsExtended(seg1.startTime,
|
|
257
|
-
var range2 = dayjsExtended.range(dayjsExtended(seg2.startTime,
|
|
262
|
+
var range1 = dayjsExtended.range(dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT_24H), dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT_24H));
|
|
263
|
+
var range2 = dayjsExtended.range(dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT_24H), dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT_24H));
|
|
258
264
|
if (range1.isOverlap(range2)) {
|
|
259
265
|
response = {
|
|
260
266
|
exists: true,
|
|
@@ -276,10 +282,10 @@ var findIndicesOfOverlappingRangesInPeriods = function findIndicesOfOverlappingR
|
|
|
276
282
|
range2 = _ref2.range2,
|
|
277
283
|
periods = _ref2.periods;
|
|
278
284
|
var firstIndex = findIndexBy({
|
|
279
|
-
startTime: range1.startDate.format(
|
|
285
|
+
startTime: range1.startDate.format(SLOT_TIME_FORMAT_24H)
|
|
280
286
|
}, periods);
|
|
281
287
|
var secondIndex = periods.findIndex(function (slot, index) {
|
|
282
|
-
return index > firstIndex && slot.startTime === range2.startDate.format(
|
|
288
|
+
return index > firstIndex && slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT_24H);
|
|
283
289
|
});
|
|
284
290
|
return {
|
|
285
291
|
firstIndex: firstIndex,
|
|
@@ -342,23 +348,36 @@ var processFormValues = function processFormValues(values, firstDay) {
|
|
|
342
348
|
})
|
|
343
349
|
};
|
|
344
350
|
};
|
|
351
|
+
var convert24hTo12h = function convert24hTo12h(time) {
|
|
352
|
+
return (
|
|
353
|
+
// eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
|
|
354
|
+
dayjs(time, SLOT_TIME_FORMAT_24H).format(SLOT_TIME_FORMAT)
|
|
355
|
+
);
|
|
356
|
+
};
|
|
345
357
|
|
|
346
358
|
var DisplayAvailability = function DisplayAvailability(_ref) {
|
|
347
359
|
var periods = _ref.periods;
|
|
348
360
|
var _useTranslation = useTranslation(),
|
|
349
361
|
t = _useTranslation.t;
|
|
350
362
|
var _useContext = useContext(ScheduleContext),
|
|
351
|
-
firstDay = _useContext.firstDay
|
|
363
|
+
firstDay = _useContext.firstDay,
|
|
364
|
+
hourFormat = _useContext.hourFormat;
|
|
365
|
+
var formatHour = function formatHour(hour) {
|
|
366
|
+
if (hourFormat === HOUR_FORMATS.H24) {
|
|
367
|
+
return hour;
|
|
368
|
+
}
|
|
369
|
+
return convert24hTo12h(hour);
|
|
370
|
+
};
|
|
352
371
|
return /*#__PURE__*/jsx("div", {
|
|
353
372
|
className: "flex w-full flex-col gap-y-3",
|
|
354
373
|
children: sortDays(firstDay).map(function (day) {
|
|
355
374
|
var _sortPeriodsByKey;
|
|
356
375
|
return /*#__PURE__*/jsxs("div", {
|
|
357
376
|
className: "neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start",
|
|
358
|
-
"data-
|
|
377
|
+
"data-testid": "day-cards-".concat(day),
|
|
359
378
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
360
379
|
className: "mt-0.5 w-24 text-center sm:w-1/4 sm:text-start",
|
|
361
|
-
"data-
|
|
380
|
+
"data-testid": joinHyphenCase(day, "day-text"),
|
|
362
381
|
style: "h5",
|
|
363
382
|
weight: "semibold",
|
|
364
383
|
children: t("neetoMolecules.schedule.days.".concat(day))
|
|
@@ -376,8 +395,8 @@ var DisplayAvailability = function DisplayAvailability(_ref) {
|
|
|
376
395
|
lineHeight: "relaxed",
|
|
377
396
|
style: "h5",
|
|
378
397
|
weight: "semibold",
|
|
379
|
-
"data-
|
|
380
|
-
children: period.startTime
|
|
398
|
+
"data-testid": joinHyphenCase(day, period.startTime, "start-time-text"),
|
|
399
|
+
children: formatHour(period.startTime)
|
|
381
400
|
}), /*#__PURE__*/jsx(Typography, {
|
|
382
401
|
className: "neeto-ui-text-gray-600",
|
|
383
402
|
component: "span",
|
|
@@ -387,13 +406,13 @@ var DisplayAvailability = function DisplayAvailability(_ref) {
|
|
|
387
406
|
lineHeight: "relaxed",
|
|
388
407
|
style: "h5",
|
|
389
408
|
weight: "semibold",
|
|
390
|
-
"data-
|
|
391
|
-
children: period.endTime
|
|
409
|
+
"data-testid": joinHyphenCase(day, period.endTime, "start-time-text"),
|
|
410
|
+
children: formatHour(period.endTime)
|
|
392
411
|
})]
|
|
393
412
|
}, period.id);
|
|
394
413
|
}) : /*#__PURE__*/jsx(Typography, {
|
|
395
414
|
className: "mx-8 flex-grow text-center",
|
|
396
|
-
"data-
|
|
415
|
+
"data-testid": joinHyphenCase(day, "unavailable-time-text"),
|
|
397
416
|
lineHeight: "relaxed",
|
|
398
417
|
style: "h5",
|
|
399
418
|
children: t("neetoMolecules.schedule.unavailable")
|
|
@@ -406,16 +425,32 @@ var DisplayAvailability = function DisplayAvailability(_ref) {
|
|
|
406
425
|
|
|
407
426
|
var buildSlotIntervals = function buildSlotIntervals(_ref) {
|
|
408
427
|
var interval = _ref.interval,
|
|
409
|
-
bookedSlots = _ref.bookedSlots
|
|
428
|
+
bookedSlots = _ref.bookedSlots,
|
|
429
|
+
_ref$hourFormat = _ref.hourFormat,
|
|
430
|
+
hourFormat = _ref$hourFormat === void 0 ? DEFAULT_HOUR_FORMAT : _ref$hourFormat;
|
|
410
431
|
var allIntervalsForADay = dayjsExtended.timeIntervalsForDay(interval);
|
|
411
432
|
allIntervalsForADay.push(END_OF_DAY);
|
|
412
433
|
return function (slotType) {
|
|
413
434
|
var selectedValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
414
435
|
var uniqBookedSlots = uniq(pluck(slotType, bookedSlots));
|
|
415
436
|
var slotsAvailableForBooking = difference(allIntervalsForADay, uniqBookedSlots);
|
|
416
|
-
var slots
|
|
437
|
+
var slots;
|
|
438
|
+
if (hourFormat === "12h") {
|
|
439
|
+
slots = slotsAvailableForBooking.map(function (value) {
|
|
440
|
+
return {
|
|
441
|
+
value: value,
|
|
442
|
+
label: convert24hTo12h(value)
|
|
443
|
+
};
|
|
444
|
+
});
|
|
445
|
+
} else {
|
|
446
|
+
slots = slotsAvailableForBooking.map(toLabelAndValue);
|
|
447
|
+
}
|
|
417
448
|
if (!selectedValue) return slots;
|
|
418
|
-
|
|
449
|
+
var selectedSlot = {
|
|
450
|
+
value: selectedValue,
|
|
451
|
+
label: hourFormat === "12h" ? convert24hTo12h(selectedValue) : selectedValue
|
|
452
|
+
};
|
|
453
|
+
return sortSlots([selectedSlot].concat(_toConsumableArray(slots)));
|
|
419
454
|
};
|
|
420
455
|
};
|
|
421
456
|
var sortSlots = function sortSlots(slots) {
|
|
@@ -437,28 +472,33 @@ var filterSlots = function filterSlots(option, searchTerm) {
|
|
|
437
472
|
};
|
|
438
473
|
var formatCreateLabel = identity;
|
|
439
474
|
var isValidTimeSlotOption = function isValidTimeSlotOption(value) {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
475
|
+
if (!value || typeof value !== "string") return false;
|
|
476
|
+
var valueTrimmed = value.trim();
|
|
477
|
+
|
|
478
|
+
// Try 24h format (e.g. "14:30")
|
|
479
|
+
var time = dayjsExtended(valueTrimmed, SLOT_TIME_FORMAT_24H, true);
|
|
480
|
+
if (time.isValid()) return true;
|
|
481
|
+
|
|
482
|
+
// Try 12h format with padded hour
|
|
483
|
+
time = dayjsExtended(valueTrimmed, SLOT_TIME_FORMAT, true);
|
|
484
|
+
return time.isValid();
|
|
445
485
|
};
|
|
446
486
|
var formatTimeSlotOption = function formatTimeSlotOption(v) {
|
|
447
|
-
var value =
|
|
487
|
+
var value = v || "";
|
|
448
488
|
if (isNotEmpty(value)) {
|
|
449
489
|
// If value is in 24h format and missing AM/PM, convert to 12h with AM/PM
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
var
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
490
|
+
// Use dayjs to parse and format instead of manual regex, etc.
|
|
491
|
+
var parsed24h = dayjsExtended(value, SLOT_TIME_FORMAT_24H, true);
|
|
492
|
+
if (parsed24h.isValid()) {
|
|
493
|
+
value = parsed24h.format(SLOT_TIME_FORMAT_24H);
|
|
494
|
+
} else {
|
|
495
|
+
var parsed12h = dayjsExtended(value, SLOT_TIME_FORMAT, true);
|
|
496
|
+
if (parsed12h.isValid()) {
|
|
497
|
+
value = parsed12h.format(SLOT_TIME_FORMAT_24H);
|
|
498
|
+
} else if (value[1] === ":") {
|
|
499
|
+
// Pad hour with 0 if single digit (legacy logic)
|
|
500
|
+
value = "0".concat(value);
|
|
501
|
+
}
|
|
462
502
|
}
|
|
463
503
|
}
|
|
464
504
|
return value;
|
|
@@ -470,19 +510,19 @@ var roundToNearestHour = function roundToNearestHour(time) {
|
|
|
470
510
|
};
|
|
471
511
|
var generateNewPeriod = function generateNewPeriod(periods, wday) {
|
|
472
512
|
var lastEndTime = periods[periods.length - 1].endTime;
|
|
473
|
-
var newStartTime = roundToNearestHour(dayjsExtended(lastEndTime,
|
|
474
|
-
var newEndTime = dayjsExtended(newStartTime,
|
|
513
|
+
var newStartTime = roundToNearestHour(dayjsExtended(lastEndTime, SLOT_TIME_FORMAT_24H));
|
|
514
|
+
var newEndTime = dayjsExtended(newStartTime, SLOT_TIME_FORMAT_24H).add(1, "hour");
|
|
475
515
|
return {
|
|
476
|
-
startTime: dayjsExtended(newStartTime).format(
|
|
477
|
-
endTime: dayjsExtended(newEndTime).format(
|
|
516
|
+
startTime: dayjsExtended(newStartTime).format(SLOT_TIME_FORMAT_24H),
|
|
517
|
+
endTime: dayjsExtended(newEndTime).format(SLOT_TIME_FORMAT_24H),
|
|
478
518
|
wday: wday
|
|
479
519
|
};
|
|
480
520
|
};
|
|
481
521
|
var addDefaultPeriod = function addDefaultPeriod(wday) {
|
|
482
522
|
return {
|
|
483
523
|
wday: wday,
|
|
484
|
-
startTime: dayjsExtended().hour(9).minute(0).format(
|
|
485
|
-
endTime: dayjsExtended().hour(17).minute(0).format(
|
|
524
|
+
startTime: dayjsExtended().hour(9).minute(0).format(SLOT_TIME_FORMAT_24H),
|
|
525
|
+
endTime: dayjsExtended().hour(17).minute(0).format(SLOT_TIME_FORMAT_24H)
|
|
486
526
|
};
|
|
487
527
|
};
|
|
488
528
|
|
|
@@ -494,15 +534,23 @@ var ScheduleRow = function ScheduleRow(_ref) {
|
|
|
494
534
|
var bookedSlots = values.wdays[day].periods;
|
|
495
535
|
var _useContext = useContext(ScheduleContext),
|
|
496
536
|
allowAddPeriod = _useContext.allowAddPeriod,
|
|
497
|
-
slotInterval = _useContext.slotInterval
|
|
537
|
+
slotInterval = _useContext.slotInterval,
|
|
538
|
+
hourFormat = _useContext.hourFormat;
|
|
498
539
|
var _useTranslation = useTranslation(),
|
|
499
540
|
t = _useTranslation.t;
|
|
500
541
|
var sortSlotsInterval = useMemo(function () {
|
|
501
542
|
return buildSlotIntervals({
|
|
502
543
|
interval: slotInterval,
|
|
503
|
-
bookedSlots: bookedSlots
|
|
544
|
+
bookedSlots: bookedSlots,
|
|
545
|
+
hourFormat: hourFormat
|
|
504
546
|
});
|
|
505
|
-
}, [slotInterval, bookedSlots]);
|
|
547
|
+
}, [slotInterval, bookedSlots, hourFormat]);
|
|
548
|
+
var startTimeOptions = function startTimeOptions(period) {
|
|
549
|
+
return sortSlotsInterval("startTime", period === null || period === void 0 ? void 0 : period.startTime);
|
|
550
|
+
};
|
|
551
|
+
var endTimeOptions = function endTimeOptions(period) {
|
|
552
|
+
return sortSlotsInterval("endTime", period === null || period === void 0 ? void 0 : period.endTime);
|
|
553
|
+
};
|
|
506
554
|
var handleChange = function handleChange(index, field, e) {
|
|
507
555
|
var value = formatTimeSlotOption(e === null || e === void 0 ? void 0 : e.value);
|
|
508
556
|
setFieldValue("wdays.".concat(day, ".periods[").concat(index, "].").concat(field), value);
|
|
@@ -532,7 +580,7 @@ var ScheduleRow = function ScheduleRow(_ref) {
|
|
|
532
580
|
className: "flex w-full flex-col @xl:mx-auto @xl:w-80",
|
|
533
581
|
children: [/*#__PURE__*/jsxs("div", {
|
|
534
582
|
className: "flex items-start gap-2 @xl:gap-3",
|
|
535
|
-
"data-
|
|
583
|
+
"data-testid": "schedule-row",
|
|
536
584
|
children: [/*#__PURE__*/jsx(Select, {
|
|
537
585
|
formatCreateLabel: formatCreateLabel,
|
|
538
586
|
isClearable: true,
|
|
@@ -543,11 +591,13 @@ var ScheduleRow = function ScheduleRow(_ref) {
|
|
|
543
591
|
filterOption: filterSlots,
|
|
544
592
|
isValidNewOption: isValidTimeSlotOption,
|
|
545
593
|
name: "wdays.".concat(day, ".periods[").concat(index, "].startTime"),
|
|
594
|
+
options: startTimeOptions(period),
|
|
546
595
|
placeholder: t("neetoMolecules.schedule.startTime"),
|
|
547
596
|
strategy: "fixed",
|
|
548
597
|
styles: BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,
|
|
549
|
-
|
|
550
|
-
|
|
598
|
+
value: findBy({
|
|
599
|
+
value: period === null || period === void 0 ? void 0 : period.startTime
|
|
600
|
+
}, startTimeOptions(period)),
|
|
551
601
|
onChange: function onChange(e) {
|
|
552
602
|
return handleChange(index, "startTime", e);
|
|
553
603
|
}
|
|
@@ -561,17 +611,18 @@ var ScheduleRow = function ScheduleRow(_ref) {
|
|
|
561
611
|
filterOption: filterSlots,
|
|
562
612
|
isValidNewOption: isValidTimeSlotOption,
|
|
563
613
|
name: "wdays.".concat(day, ".periods[").concat(index, "].endTime"),
|
|
564
|
-
options:
|
|
614
|
+
options: endTimeOptions(period),
|
|
565
615
|
placeholder: t("neetoMolecules.schedule.endTime"),
|
|
566
616
|
strategy: "fixed",
|
|
567
617
|
styles: BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,
|
|
568
|
-
value:
|
|
618
|
+
value: findBy({
|
|
619
|
+
value: period === null || period === void 0 ? void 0 : period.endTime
|
|
620
|
+
}, endTimeOptions(period)),
|
|
569
621
|
onChange: function onChange(e) {
|
|
570
622
|
return handleChange(index, "endTime", e);
|
|
571
623
|
}
|
|
572
624
|
}), /*#__PURE__*/jsx(Button, {
|
|
573
625
|
className: "flex-shrink-0 self-start",
|
|
574
|
-
"data-cy": "delete-period-button",
|
|
575
626
|
"data-testid": "delete-period-button",
|
|
576
627
|
icon: Delete,
|
|
577
628
|
style: "text",
|
|
@@ -592,7 +643,6 @@ var ScheduleRow = function ScheduleRow(_ref) {
|
|
|
592
643
|
})
|
|
593
644
|
}), values.wdays[day].available && allowAddPeriod && /*#__PURE__*/jsx(Button, {
|
|
594
645
|
className: "absolute end-14 top-3 ms-auto flex-shrink-0 @xl:static",
|
|
595
|
-
"data-cy": "add-new-period-button",
|
|
596
646
|
"data-testid": "add-new-period-button",
|
|
597
647
|
icon: Plus,
|
|
598
648
|
style: "secondary",
|
|
@@ -669,7 +719,7 @@ var Form = function Form(_ref) {
|
|
|
669
719
|
children: /*#__PURE__*/jsxs("div", {
|
|
670
720
|
className: "@xl:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 @xl:flex-nowrap @xl:gap-4" // Added `@xl:flex-no-wrap` since neetoCal is using old version of tailwind
|
|
671
721
|
,
|
|
672
|
-
"data-
|
|
722
|
+
"data-testid": "working-day-container",
|
|
673
723
|
children: [/*#__PURE__*/jsxs("div", {
|
|
674
724
|
className: classnames("flex w-36 flex-shrink-0 items-center justify-start @xl:mt-1", {
|
|
675
725
|
"mb-3 @xl:mb-0": isPresent((_values$wdays$day = values.wdays[day]) === null || _values$wdays$day === void 0 ? void 0 : _values$wdays$day.periods)
|
|
@@ -678,13 +728,13 @@ var Form = function Form(_ref) {
|
|
|
678
728
|
"aria-label": "wdays.".concat(day, ".available"),
|
|
679
729
|
checked: values.wdays[day].available,
|
|
680
730
|
className: "flex-grow-0",
|
|
681
|
-
"data-
|
|
731
|
+
"data-testid": joinHyphenCase(day, "weekly-hours-checkbox"),
|
|
682
732
|
id: "day",
|
|
683
733
|
name: "wdays.".concat(day, ".available"),
|
|
684
734
|
onChange: handleCheckbox
|
|
685
735
|
}), /*#__PURE__*/jsx(Typography, {
|
|
686
736
|
component: "span",
|
|
687
|
-
"data-
|
|
737
|
+
"data-testid": joinHyphenCase(day, "day-text"),
|
|
688
738
|
style: "body2",
|
|
689
739
|
weight: values.wdays[day].available ? "semibold" : "normal",
|
|
690
740
|
className: classnames("ms-2 capitalize", {
|
|
@@ -707,8 +757,7 @@ var Form = function Form(_ref) {
|
|
|
707
757
|
touch: ["hold", 500]
|
|
708
758
|
},
|
|
709
759
|
className: "absolute end-4 top-3 @xl:static flex-shrink-0",
|
|
710
|
-
"data-testid": joinHyphenCase(day, "copy-schedule-icon")
|
|
711
|
-
"data-cy": joinHyphenCase(day, "copy-schedule-icon")
|
|
760
|
+
"data-testid": joinHyphenCase(day, "copy-schedule-icon")
|
|
712
761
|
},
|
|
713
762
|
dropdownProps: {
|
|
714
763
|
className: "neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown"
|
|
@@ -742,7 +791,7 @@ var Form = function Form(_ref) {
|
|
|
742
791
|
}, day);
|
|
743
792
|
}), /*#__PURE__*/jsx("li", {
|
|
744
793
|
children: /*#__PURE__*/jsx(Button, {
|
|
745
|
-
"data-
|
|
794
|
+
"data-testid": "copy-schedule-submit-button",
|
|
746
795
|
disabled: isNotPresent(wdaysToCopy),
|
|
747
796
|
label: t("neetoMolecules.common.actions.submit"),
|
|
748
797
|
size: "small",
|
|
@@ -832,7 +881,7 @@ var Header = function Header(_ref) {
|
|
|
832
881
|
touch: ["hold", 500],
|
|
833
882
|
children: /*#__PURE__*/jsx(Typography, {
|
|
834
883
|
component: "h4",
|
|
835
|
-
"data-
|
|
884
|
+
"data-testid": "timezone-text",
|
|
836
885
|
style: "h5",
|
|
837
886
|
weight: "medium",
|
|
838
887
|
children: timeZoneAndTime
|
|
@@ -848,19 +897,18 @@ var Header = function Header(_ref) {
|
|
|
848
897
|
label: t("neetoMolecules.common.actions.changeTimezone"),
|
|
849
898
|
target: "_blank",
|
|
850
899
|
key: "change-timezone-option",
|
|
851
|
-
"data-testid": "change-timezone-option"
|
|
852
|
-
"data-cy": "change-timezone-option"
|
|
900
|
+
"data-testid": "change-timezone-option"
|
|
853
901
|
}]
|
|
854
902
|
})]
|
|
855
903
|
}), isEditing ? /*#__PURE__*/jsxs("div", {
|
|
856
904
|
className: "flex items-center gap-2",
|
|
857
905
|
children: [/*#__PURE__*/jsx(Button, {
|
|
858
|
-
"data-
|
|
906
|
+
"data-testid": "reset-button",
|
|
859
907
|
style: "secondary",
|
|
860
908
|
label: !dirty ? t("neetoMolecules.common.actions.cancel") : t("neetoMolecules.common.actions.reset"),
|
|
861
909
|
onClick: handleReset
|
|
862
910
|
}), /*#__PURE__*/jsx(Button, {
|
|
863
|
-
"data-
|
|
911
|
+
"data-testid": "weekly-hours-save-changes-button",
|
|
864
912
|
disabled: !dirty && !isCreating || isSubmitting,
|
|
865
913
|
label: t("neetoMolecules.common.actions.saveChanges"),
|
|
866
914
|
loading: isSubmitting,
|
|
@@ -868,7 +916,7 @@ var Header = function Header(_ref) {
|
|
|
868
916
|
})]
|
|
869
917
|
}) : isEditable && /*#__PURE__*/jsx("div", {
|
|
870
918
|
children: /*#__PURE__*/jsx(Button, {
|
|
871
|
-
"data-
|
|
919
|
+
"data-testid": "weekly-schedule-header",
|
|
872
920
|
label: t("neetoMolecules.schedule.changeAvailability"),
|
|
873
921
|
style: "primary",
|
|
874
922
|
weight: "semibold",
|
|
@@ -905,7 +953,9 @@ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
|
|
|
905
953
|
_ref$showTimeZone = _ref.showTimeZone,
|
|
906
954
|
showTimeZone = _ref$showTimeZone === void 0 ? true : _ref$showTimeZone,
|
|
907
955
|
_ref$slotInterval = _ref.slotInterval,
|
|
908
|
-
slotInterval = _ref$slotInterval === void 0 ? DEFAULT_SLOT_INTERVAL : _ref$slotInterval
|
|
956
|
+
slotInterval = _ref$slotInterval === void 0 ? DEFAULT_SLOT_INTERVAL : _ref$slotInterval,
|
|
957
|
+
_ref$hourFormat = _ref.hourFormat,
|
|
958
|
+
hourFormat = _ref$hourFormat === void 0 ? DEFAULT_HOUR_FORMAT : _ref$hourFormat;
|
|
909
959
|
var validationSchema = useMemo(getScheduleValidationSchema, []);
|
|
910
960
|
var getInitialFormValues = function getInitialFormValues() {
|
|
911
961
|
var isSubmitHandler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
@@ -923,7 +973,8 @@ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
|
|
|
923
973
|
value: {
|
|
924
974
|
allowAddPeriod: allowAddPeriod,
|
|
925
975
|
firstDay: firstDay,
|
|
926
|
-
slotInterval: slotInterval
|
|
976
|
+
slotInterval: slotInterval,
|
|
977
|
+
hourFormat: hourFormat
|
|
927
978
|
},
|
|
928
979
|
children: /*#__PURE__*/jsx("div", {
|
|
929
980
|
className: "neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0",
|