@bigbinary/neeto-molecules 3.7.14 → 3.7.16
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/CalendarView.js +19 -6
- package/dist/CalendarView.js.map +1 -1
- package/dist/Insights.js +4 -1
- package/dist/Insights.js.map +1 -1
- package/dist/Schedule.js +38 -26
- package/dist/Schedule.js.map +1 -1
- package/dist/cjs/CalendarView.js +18 -5
- package/dist/cjs/CalendarView.js.map +1 -1
- package/dist/cjs/Insights.js +3 -0
- package/dist/cjs/Insights.js.map +1 -1
- package/dist/cjs/Schedule.js +39 -28
- package/dist/cjs/Schedule.js.map +1 -1
- package/package.json +1 -1
- package/types/CalendarView.d.ts +1 -0
- package/types/Schedule.d.ts +1 -0
package/dist/CalendarView.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
3
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
|
-
import { useState, useRef, useEffect } from 'react';
|
|
4
|
+
import { useState, useRef, useEffect, forwardRef } from 'react';
|
|
5
5
|
import dayGridPlugin from '@fullcalendar/daygrid';
|
|
6
6
|
import interactionPlugin from '@fullcalendar/interaction';
|
|
7
7
|
import FullCalendar from '@fullcalendar/react';
|
|
@@ -102,6 +102,16 @@ var getFormattedRangeStr = function getFormattedRangeStr(date, picker) {
|
|
|
102
102
|
var selectedFormatter = formatFunctions[picker];
|
|
103
103
|
return selectedFormatter(date);
|
|
104
104
|
};
|
|
105
|
+
var mergeRefs = function mergeRefs() {
|
|
106
|
+
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
107
|
+
refs[_key] = arguments[_key];
|
|
108
|
+
}
|
|
109
|
+
return function (node) {
|
|
110
|
+
return refs.filter(Boolean).forEach(function (ref) {
|
|
111
|
+
return typeof ref === "function" ? ref(node) : ref.current = node;
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
};
|
|
105
115
|
|
|
106
116
|
var _excluded$1 = ["selectedDate", "setSelectedDate", "picker", "validDates"];
|
|
107
117
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -251,10 +261,10 @@ var Header = function Header(_ref) {
|
|
|
251
261
|
});
|
|
252
262
|
};
|
|
253
263
|
|
|
254
|
-
var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "validDates", "onDateChange", "dayMaxEvents", "eventMaxStack"];
|
|
264
|
+
var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "validDates", "onDateChange", "dayMaxEvents", "eventMaxStack", "hideHeader"];
|
|
255
265
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
256
266
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
257
|
-
var CalendarView = function
|
|
267
|
+
var CalendarView = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
258
268
|
var _ref$viewOptions = _ref.viewOptions,
|
|
259
269
|
viewOptions = _ref$viewOptions === void 0 ? VIEW_OPTIONS : _ref$viewOptions,
|
|
260
270
|
_ref$events = _ref.events,
|
|
@@ -276,6 +286,8 @@ var CalendarView = function CalendarView(_ref) {
|
|
|
276
286
|
onDateChange = _ref$onDateChange === void 0 ? noop : _ref$onDateChange,
|
|
277
287
|
dayMaxEvents = _ref.dayMaxEvents,
|
|
278
288
|
eventMaxStack = _ref.eventMaxStack,
|
|
289
|
+
_ref$hideHeader = _ref.hideHeader,
|
|
290
|
+
hideHeader = _ref$hideHeader === void 0 ? false : _ref$hideHeader,
|
|
279
291
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
280
292
|
var calendarViewOptions = viewOptions || VIEW_OPTIONS;
|
|
281
293
|
var defaultView = Object.values(calendarViewOptions).find(prop("default")) || calendarViewOptions[Object.keys(calendarViewOptions)[0]];
|
|
@@ -300,7 +312,7 @@ var CalendarView = function CalendarView(_ref) {
|
|
|
300
312
|
return /*#__PURE__*/jsxs("div", {
|
|
301
313
|
className: "flex-col",
|
|
302
314
|
"data-testid": "calendar-view",
|
|
303
|
-
children: [/*#__PURE__*/jsx(SubHeader, {
|
|
315
|
+
children: [!hideHeader && /*#__PURE__*/jsx(SubHeader, {
|
|
304
316
|
leftActionBlock: /*#__PURE__*/jsx(Typography, {
|
|
305
317
|
style: "h2",
|
|
306
318
|
children: selectedDate.format("MMMM, YYYY")
|
|
@@ -325,7 +337,7 @@ var CalendarView = function CalendarView(_ref) {
|
|
|
325
337
|
height: "auto",
|
|
326
338
|
initialView: selectedView.fullCalendarView,
|
|
327
339
|
plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin],
|
|
328
|
-
ref: calendarRef
|
|
340
|
+
ref: mergeRefs(ref, calendarRef)
|
|
329
341
|
}, _objectSpread({
|
|
330
342
|
dayCellClassNames: dayCellClassNames,
|
|
331
343
|
dayMaxEvents: dayMaxEvents,
|
|
@@ -334,7 +346,8 @@ var CalendarView = function CalendarView(_ref) {
|
|
|
334
346
|
events: events
|
|
335
347
|
}, otherProps)))]
|
|
336
348
|
});
|
|
337
|
-
};
|
|
349
|
+
});
|
|
350
|
+
CalendarView.displayName = "CalendarView";
|
|
338
351
|
|
|
339
352
|
export { CalendarView as default };
|
|
340
353
|
//# sourceMappingURL=CalendarView.js.map
|
package/dist/CalendarView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarView.js","sources":["../src/components/CalendarView/constants.js","../src/components/CalendarView/utils.js","../src/components/CalendarView/CustomDatePicker.jsx","../src/components/CalendarView/Header.jsx","../src/components/CalendarView/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst WEEKLY_VIEW = t(\"neetoMolecules.calendarView.weekly\");\nconst MONTHLY_VIEW = t(\"neetoMolecules.calendarView.monthly\");\nconst DAILY_VIEW = t(\"neetoMolecules.calendarView.daily\");\n\nexport const VIEW_OPTIONS = {\n [DAILY_VIEW]: {\n label: DAILY_VIEW,\n fullCalendarView: \"timeGridDay\",\n picker: \"day\",\n },\n [WEEKLY_VIEW]: {\n label: WEEKLY_VIEW,\n fullCalendarView: \"timeGridWeek\",\n picker: \"week\",\n },\n [MONTHLY_VIEW]: {\n label: MONTHLY_VIEW,\n fullCalendarView: \"dayGridMonth\",\n picker: \"month\",\n },\n};\n","import { dayjs } from \"neetocommons/utils\";\n\nconst getWeekString = ({\n date,\n isStartOfWeek = true,\n showMonth = false,\n showYear = false,\n}) =>\n `${showMonth || isStartOfWeek ? date.format(\"MMM\") : \"\"} ${date.date()} ${\n showYear || !isStartOfWeek ? date.format(\"YYYY\") : \"\"\n }`;\n\nexport const getStartOfWeek = date => dayjs(date).startOf(\"week\");\n\nexport const getEndOfWeek = date => dayjs(date).endOf(\"week\");\n\nexport const getFormattedMonthStr = date => date.format(\"MMM YYYY\");\n\nexport const getFormattedWeekRangeStr = date => {\n const startOfWeek = getStartOfWeek(date);\n const endOfWeek = getEndOfWeek(date);\n\n const shouldShowMonthsSeparately = startOfWeek.month() !== endOfWeek.month();\n const shouldShowYearsSeparately = startOfWeek.year() !== endOfWeek.year();\n\n const startOfWeekStr = getWeekString({\n date: startOfWeek,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n const endOfWeekStr = getWeekString({\n date: endOfWeek,\n isStartOfWeek: false,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n return `${startOfWeekStr} - ${endOfWeekStr}`;\n};\n\nexport const getFormattedDayStr = date => date.format(\"DD MMM YYYY\");\n\nexport const getFormattedRangeStr = (date, picker) => {\n const formatFunctions = {\n month: getFormattedMonthStr,\n week: getFormattedWeekRangeStr,\n day: getFormattedDayStr,\n };\n const selectedFormatter = formatFunctions[picker];\n\n return selectedFormatter(date);\n};\n","import { useRef, useState } from \"react\";\n\nimport { dayjs } from \"neetocommons/utils\";\nimport { Down, Left, Right } from \"neetoicons\";\nimport { Typography, Button, DatePicker } from \"neetoui\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n ...otherProps\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const datePickerRef = useRef(null);\n const buttonRef = useRef(null);\n\n const selectedRangeStr = getFormattedRangeStr(selectedDate, picker);\n\n const { start, end } = validDates;\n\n const isDateLessThanStart =\n start && selectedDate.isSameOrBefore(dayjs(start), picker);\n\n const isDateGreaterThanEnd =\n end && selectedDate.isSameOrAfter(dayjs(end), picker);\n\n const onPrevious = () =>\n setSelectedDate(selectedDate => selectedDate.subtract(1, picker));\n\n const onNext = () =>\n setSelectedDate(selectedDate => selectedDate.add(1, picker));\n\n const onToday = () => setSelectedDate(dayjs());\n\n const getDisabledDates = date => {\n if (!date) return false;\n\n return (start && date <= start) || (end && date >= end);\n };\n\n const handleButtonMouseDown = e => {\n if (!(buttonRef.current && buttonRef.current.contains(e.target))) return;\n e.stopPropagation();\n if (isOpen) datePickerRef.current.focus();\n };\n\n return (\n <div className=\"flex items-center justify-start space-x-4\">\n <Button\n data-cy=\"neeto-molecules-calendar-view-today-button\"\n label=\"Today\"\n style=\"secondary\"\n onClick={onToday}\n />\n <div className=\"flex\">\n <Button\n className=\"mr-1\"\n data-cy=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={Left}\n style=\"text\"\n onClick={onPrevious}\n />\n <Button\n data-cy=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={Down}\n ref={buttonRef}\n style=\"text\"\n onClick={() => setIsOpen(isOpen => !isOpen)}\n onMouseDown={handleButtonMouseDown}\n >\n <Typography\n data-cy=\"neeto-molecules-calendar-view-date-picker-button-label\"\n style=\"h5\"\n >\n {selectedRangeStr}\n </Typography>\n </Button>\n <DatePicker\n className=\"invisible w-0 px-0\"\n defaultValue={selectedDate}\n disabledDate={getDisabledDates}\n open={isOpen}\n placement=\"topRight\"\n ref={datePickerRef}\n value={selectedDate}\n onChange={setSelectedDate}\n onOpenChange={setIsOpen}\n {...{ picker, ...otherProps }}\n />\n <Button\n className=\"ml-1\"\n data-cy=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={Right}\n style=\"text\"\n onClick={onNext}\n />\n </div>\n </div>\n );\n};\n\nexport default CustomDatePicker;\n","import { useEffect } from \"react\";\n\nimport { capitalize } from \"neetocist\";\nimport { Dropdown } from \"neetoui\";\nimport { prop, values } from \"ramda\";\n\nimport CustomDatePicker from \"./CustomDatePicker\";\n\nconst Header = ({\n calendarRef,\n selectedView,\n setSelectedView,\n setSelectedDate,\n selectedDate,\n calendarViewOptions,\n validDates,\n}) => {\n const { Menu, MenuItem } = Dropdown;\n\n const handleViewSelection = option => {\n setSelectedView(option);\n calendarRef.current.calendar.changeView(option.fullCalendarView);\n };\n\n const navigateToSelectedDate = () =>\n calendarRef?.current?.calendar?.gotoDate(selectedDate.format(\"YYYY-MM-DD\"));\n\n useEffect(() => {\n setTimeout(navigateToSelectedDate);\n }, [selectedDate]);\n\n return (\n <div className=\"flex space-x-4\">\n <CustomDatePicker\n {...{ selectedDate, setSelectedDate, validDates }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <Dropdown\n buttonProps={{ \"data-testid\": \"calendar-view-dropdown\" }}\n buttonStyle=\"secondary\"\n label={capitalize(selectedView.label)}\n >\n <Menu>\n {values(calendarViewOptions).map((option, idx) => (\n <MenuItem.Button\n isActive={selectedView === option}\n key={idx}\n onClick={() => handleViewSelection(option)}\n >\n {capitalize(option.label)}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { useRef, useState } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport { noop } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SubHeader from \"components/SubHeader\";\n\nimport { VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\n\nconst CalendarView = ({\n viewOptions = VIEW_OPTIONS,\n events = [],\n handleDateClick = noop,\n handleEventClick = noop,\n eventClassNames = \"\",\n dayCellClassNames = \"\",\n validDates = { start: null, end: null },\n onDateChange = noop,\n dayMaxEvents,\n eventMaxStack,\n ...otherProps\n}) => {\n const calendarViewOptions = viewOptions || VIEW_OPTIONS;\n\n const defaultView =\n Object.values(calendarViewOptions).find(prop(\"default\")) ||\n calendarViewOptions[Object.keys(calendarViewOptions)[0]];\n\n const [selectedView, setSelectedView] = useState(defaultView);\n\n const [selectedDate, setSelectedDate] = useState(dayjs());\n\n const { t } = useTranslation();\n\n const handleDateChange = date => {\n setSelectedDate(prevDate => {\n const newDate = typeof date === \"function\" ? date(prevDate) : date;\n onDateChange(newDate);\n\n return newDate;\n });\n };\n\n const calendarRef = useRef();\n\n return (\n <div className=\"flex-col\" data-testid=\"calendar-view\">\n <SubHeader\n leftActionBlock={\n <Typography style=\"h2\">\n {selectedDate.format(\"MMMM, YYYY\")}\n </Typography>\n }\n rightActionBlock={\n <Header\n {...{\n calendarRef,\n calendarViewOptions,\n selectedDate,\n selectedView,\n setSelectedDate,\n setSelectedView,\n validDates,\n }}\n setSelectedDate={handleDateChange}\n />\n }\n />\n <FullCalendar\n expandRows\n allDayText={t(\"neetoMolecules.calendarView.allDay\")}\n dateClick={handleDateClick}\n dayHeaderClassNames=\"p-2\"\n displayEventTime={false}\n eventClick={handleEventClick}\n headerToolbar={false}\n height=\"auto\"\n initialView={selectedView.fullCalendarView}\n plugins={[dayGridPlugin, timeGridPlugin, interactionPlugin]}\n ref={calendarRef}\n {...{\n dayCellClassNames,\n dayMaxEvents,\n eventClassNames,\n eventMaxStack,\n events,\n ...otherProps,\n }}\n />\n </div>\n );\n};\n\nCalendarView.propTypes = {\n /**\n * Views to be listed in the dropdown. The default selected view can be set by adding `default: true` to the required view.\n */\n viewOptions: PropTypes.object,\n /**\n * An array of event objects that will be displayed on the calendar.\n */\n events: PropTypes.array,\n /**\n * Function to be triggered when the user clicks on a date or a time.\n */\n handleDateClick: PropTypes.func,\n /**\n * Function to be triggered when the user clicks an event.\n */\n handleEventClick: PropTypes.func,\n /**\n * A className input for adding classNames to the outermost event element.\n */\n eventClassNames: PropTypes.string,\n /**\n * A className input for adding classNames to the <td> cell.\n */\n dayCellClassNames: PropTypes.string,\n /**\n * In dayGrid view, the max number of events within a given day, not counting the +more link.\n */\n dayMaxEvents: PropTypes.number,\n /**\n * For timeline view, the maximum number of events that stack top-to-bottom. For timeGrid view, the maximum number of events that stack left-to-right.\n */\n eventMaxStack: PropTypes.number,\n /**\n * This function will be triggered with the new selected date passed as argument\n */\n onDateChange: PropTypes.func,\n /**\n * An object containing the start and end dates in which the range given is the valid range of selectable dates.\n */\n validDates: PropTypes.shape({\n start: PropTypes.instanceOf(Date),\n end: PropTypes.instanceOf(Date),\n }),\n};\n\nexport default CalendarView;\n"],"names":["WEEKLY_VIEW","t","MONTHLY_VIEW","DAILY_VIEW","VIEW_OPTIONS","_defineProperty","label","fullCalendarView","picker","getWeekString","_ref","date","_ref$isStartOfWeek","isStartOfWeek","_ref$showMonth","showMonth","_ref$showYear","showYear","concat","format","getStartOfWeek","dayjs","startOf","getEndOfWeek","endOf","getFormattedMonthStr","getFormattedWeekRangeStr","startOfWeek","endOfWeek","shouldShowMonthsSeparately","month","shouldShowYearsSeparately","year","startOfWeekStr","endOfWeekStr","getFormattedDayStr","getFormattedRangeStr","formatFunctions","week","day","selectedFormatter","CustomDatePicker","selectedDate","setSelectedDate","validDates","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","datePickerRef","useRef","buttonRef","selectedRangeStr","start","end","isDateLessThanStart","isSameOrBefore","isDateGreaterThanEnd","isSameOrAfter","onPrevious","subtract","onNext","add","onToday","getDisabledDates","handleButtonMouseDown","e","current","contains","target","stopPropagation","focus","_jsxs","className","children","_jsx","Button","style","onClick","disabled","icon","Left","Down","ref","onMouseDown","Typography","DatePicker","_objectSpread","defaultValue","disabledDate","open","placement","value","onChange","onOpenChange","Right","Header","calendarRef","selectedView","setSelectedView","calendarViewOptions","Menu","Dropdown","MenuItem","handleViewSelection","option","calendar","changeView","navigateToSelectedDate","_calendarRef$current","_calendarRef$current$","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","length","buttonProps","buttonStyle","capitalize","values","map","idx","isActive","CalendarView","_ref$viewOptions","viewOptions","_ref$events","events","_ref$handleDateClick","handleDateClick","noop","_ref$handleEventClick","handleEventClick","_ref$eventClassNames","eventClassNames","_ref$dayCellClassName","dayCellClassNames","_ref$validDates","_ref$onDateChange","onDateChange","dayMaxEvents","eventMaxStack","defaultView","find","_useState3","_useState4","_useTranslation","useTranslation","handleDateChange","prevDate","newDate","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarView.js","sources":["../src/components/CalendarView/constants.js","../src/components/CalendarView/utils.js","../src/components/CalendarView/CustomDatePicker.jsx","../src/components/CalendarView/Header.jsx","../src/components/CalendarView/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst WEEKLY_VIEW = t(\"neetoMolecules.calendarView.weekly\");\nconst MONTHLY_VIEW = t(\"neetoMolecules.calendarView.monthly\");\nconst DAILY_VIEW = t(\"neetoMolecules.calendarView.daily\");\n\nexport const VIEW_OPTIONS = {\n [DAILY_VIEW]: {\n label: DAILY_VIEW,\n fullCalendarView: \"timeGridDay\",\n picker: \"day\",\n },\n [WEEKLY_VIEW]: {\n label: WEEKLY_VIEW,\n fullCalendarView: \"timeGridWeek\",\n picker: \"week\",\n },\n [MONTHLY_VIEW]: {\n label: MONTHLY_VIEW,\n fullCalendarView: \"dayGridMonth\",\n picker: \"month\",\n },\n};\n","import { dayjs } from \"neetocommons/utils\";\n\nconst getWeekString = ({\n date,\n isStartOfWeek = true,\n showMonth = false,\n showYear = false,\n}) =>\n `${showMonth || isStartOfWeek ? date.format(\"MMM\") : \"\"} ${date.date()} ${\n showYear || !isStartOfWeek ? date.format(\"YYYY\") : \"\"\n }`;\n\nexport const getStartOfWeek = date => dayjs(date).startOf(\"week\");\n\nexport const getEndOfWeek = date => dayjs(date).endOf(\"week\");\n\nexport const getFormattedMonthStr = date => date.format(\"MMM YYYY\");\n\nexport const getFormattedWeekRangeStr = date => {\n const startOfWeek = getStartOfWeek(date);\n const endOfWeek = getEndOfWeek(date);\n\n const shouldShowMonthsSeparately = startOfWeek.month() !== endOfWeek.month();\n const shouldShowYearsSeparately = startOfWeek.year() !== endOfWeek.year();\n\n const startOfWeekStr = getWeekString({\n date: startOfWeek,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n const endOfWeekStr = getWeekString({\n date: endOfWeek,\n isStartOfWeek: false,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n return `${startOfWeekStr} - ${endOfWeekStr}`;\n};\n\nexport const getFormattedDayStr = date => date.format(\"DD MMM YYYY\");\n\nexport const getFormattedRangeStr = (date, picker) => {\n const formatFunctions = {\n month: getFormattedMonthStr,\n week: getFormattedWeekRangeStr,\n day: getFormattedDayStr,\n };\n const selectedFormatter = formatFunctions[picker];\n\n return selectedFormatter(date);\n};\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { useRef, useState } from \"react\";\n\nimport { dayjs } from \"neetocommons/utils\";\nimport { Down, Left, Right } from \"neetoicons\";\nimport { Typography, Button, DatePicker } from \"neetoui\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n ...otherProps\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const datePickerRef = useRef(null);\n const buttonRef = useRef(null);\n\n const selectedRangeStr = getFormattedRangeStr(selectedDate, picker);\n\n const { start, end } = validDates;\n\n const isDateLessThanStart =\n start && selectedDate.isSameOrBefore(dayjs(start), picker);\n\n const isDateGreaterThanEnd =\n end && selectedDate.isSameOrAfter(dayjs(end), picker);\n\n const onPrevious = () =>\n setSelectedDate(selectedDate => selectedDate.subtract(1, picker));\n\n const onNext = () =>\n setSelectedDate(selectedDate => selectedDate.add(1, picker));\n\n const onToday = () => setSelectedDate(dayjs());\n\n const getDisabledDates = date => {\n if (!date) return false;\n\n return (start && date <= start) || (end && date >= end);\n };\n\n const handleButtonMouseDown = e => {\n if (!(buttonRef.current && buttonRef.current.contains(e.target))) return;\n e.stopPropagation();\n if (isOpen) datePickerRef.current.focus();\n };\n\n return (\n <div className=\"flex items-center justify-start space-x-4\">\n <Button\n data-cy=\"neeto-molecules-calendar-view-today-button\"\n label=\"Today\"\n style=\"secondary\"\n onClick={onToday}\n />\n <div className=\"flex\">\n <Button\n className=\"mr-1\"\n data-cy=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={Left}\n style=\"text\"\n onClick={onPrevious}\n />\n <Button\n data-cy=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={Down}\n ref={buttonRef}\n style=\"text\"\n onClick={() => setIsOpen(isOpen => !isOpen)}\n onMouseDown={handleButtonMouseDown}\n >\n <Typography\n data-cy=\"neeto-molecules-calendar-view-date-picker-button-label\"\n style=\"h5\"\n >\n {selectedRangeStr}\n </Typography>\n </Button>\n <DatePicker\n className=\"invisible w-0 px-0\"\n defaultValue={selectedDate}\n disabledDate={getDisabledDates}\n open={isOpen}\n placement=\"topRight\"\n ref={datePickerRef}\n value={selectedDate}\n onChange={setSelectedDate}\n onOpenChange={setIsOpen}\n {...{ picker, ...otherProps }}\n />\n <Button\n className=\"ml-1\"\n data-cy=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={Right}\n style=\"text\"\n onClick={onNext}\n />\n </div>\n </div>\n );\n};\n\nexport default CustomDatePicker;\n","import { useEffect } from \"react\";\n\nimport { capitalize } from \"neetocist\";\nimport { Dropdown } from \"neetoui\";\nimport { prop, values } from \"ramda\";\n\nimport CustomDatePicker from \"./CustomDatePicker\";\n\nconst Header = ({\n calendarRef,\n selectedView,\n setSelectedView,\n setSelectedDate,\n selectedDate,\n calendarViewOptions,\n validDates,\n}) => {\n const { Menu, MenuItem } = Dropdown;\n\n const handleViewSelection = option => {\n setSelectedView(option);\n calendarRef.current.calendar.changeView(option.fullCalendarView);\n };\n\n const navigateToSelectedDate = () =>\n calendarRef?.current?.calendar?.gotoDate(selectedDate.format(\"YYYY-MM-DD\"));\n\n useEffect(() => {\n setTimeout(navigateToSelectedDate);\n }, [selectedDate]);\n\n return (\n <div className=\"flex space-x-4\">\n <CustomDatePicker\n {...{ selectedDate, setSelectedDate, validDates }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <Dropdown\n buttonProps={{ \"data-testid\": \"calendar-view-dropdown\" }}\n buttonStyle=\"secondary\"\n label={capitalize(selectedView.label)}\n >\n <Menu>\n {values(calendarViewOptions).map((option, idx) => (\n <MenuItem.Button\n isActive={selectedView === option}\n key={idx}\n onClick={() => handleViewSelection(option)}\n >\n {capitalize(option.label)}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef, useRef, useState } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport { noop } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SubHeader from \"components/SubHeader\";\n\nimport { VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nconst CalendarView = forwardRef(\n (\n {\n viewOptions = VIEW_OPTIONS,\n events = [],\n handleDateClick = noop,\n handleEventClick = noop,\n eventClassNames = \"\",\n dayCellClassNames = \"\",\n validDates = { start: null, end: null },\n onDateChange = noop,\n dayMaxEvents,\n eventMaxStack,\n hideHeader = false,\n ...otherProps\n },\n ref\n ) => {\n const calendarViewOptions = viewOptions || VIEW_OPTIONS;\n\n const defaultView =\n Object.values(calendarViewOptions).find(prop(\"default\")) ||\n calendarViewOptions[Object.keys(calendarViewOptions)[0]];\n\n const [selectedView, setSelectedView] = useState(defaultView);\n\n const [selectedDate, setSelectedDate] = useState(dayjs());\n\n const { t } = useTranslation();\n\n const handleDateChange = date => {\n setSelectedDate(prevDate => {\n const newDate = typeof date === \"function\" ? date(prevDate) : date;\n onDateChange(newDate);\n\n return newDate;\n });\n };\n\n const calendarRef = useRef();\n\n return (\n <div className=\"flex-col\" data-testid=\"calendar-view\">\n {!hideHeader && (\n <SubHeader\n leftActionBlock={\n <Typography style=\"h2\">\n {selectedDate.format(\"MMMM, YYYY\")}\n </Typography>\n }\n rightActionBlock={\n <Header\n {...{\n calendarRef,\n calendarViewOptions,\n selectedDate,\n selectedView,\n setSelectedDate,\n setSelectedView,\n validDates,\n }}\n setSelectedDate={handleDateChange}\n />\n }\n />\n )}\n <FullCalendar\n expandRows\n allDayText={t(\"neetoMolecules.calendarView.allDay\")}\n dateClick={handleDateClick}\n dayHeaderClassNames=\"p-2\"\n displayEventTime={false}\n eventClick={handleEventClick}\n headerToolbar={false}\n height=\"auto\"\n initialView={selectedView.fullCalendarView}\n plugins={[dayGridPlugin, timeGridPlugin, interactionPlugin]}\n ref={mergeRefs(ref, calendarRef)}\n {...{\n dayCellClassNames,\n dayMaxEvents,\n eventClassNames,\n eventMaxStack,\n events,\n ...otherProps,\n }}\n />\n </div>\n );\n }\n);\n\nCalendarView.displayName = \"CalendarView\";\n\nCalendarView.propTypes = {\n /**\n * Views to be listed in the dropdown. The default selected view can be set by adding `default: true` to the required view.\n */\n viewOptions: PropTypes.object,\n /**\n * An array of event objects that will be displayed on the calendar.\n */\n events: PropTypes.array,\n /**\n * Function to be triggered when the user clicks on a date or a time.\n */\n handleDateClick: PropTypes.func,\n /**\n * Function to be triggered when the user clicks an event.\n */\n handleEventClick: PropTypes.func,\n /**\n * A className input for adding classNames to the outermost event element.\n */\n eventClassNames: PropTypes.string,\n /**\n * A className input for adding classNames to the <td> cell.\n */\n dayCellClassNames: PropTypes.string,\n /**\n * In dayGrid view, the max number of events within a given day, not counting the +more link.\n */\n dayMaxEvents: PropTypes.number,\n /**\n * For timeline view, the maximum number of events that stack top-to-bottom. For timeGrid view, the maximum number of events that stack left-to-right.\n */\n eventMaxStack: PropTypes.number,\n /**\n * This function will be triggered with the new selected date passed as argument\n */\n onDateChange: PropTypes.func,\n /**\n * An object containing the start and end dates in which the range given is the valid range of selectable dates.\n */\n validDates: PropTypes.shape({\n start: PropTypes.instanceOf(Date),\n end: PropTypes.instanceOf(Date),\n }),\n /**\n * This prop can be used to hide the header\n */\n hideHeader: PropTypes.bool,\n};\n\nexport default CalendarView;\n"],"names":["WEEKLY_VIEW","t","MONTHLY_VIEW","DAILY_VIEW","VIEW_OPTIONS","_defineProperty","label","fullCalendarView","picker","getWeekString","_ref","date","_ref$isStartOfWeek","isStartOfWeek","_ref$showMonth","showMonth","_ref$showYear","showYear","concat","format","getStartOfWeek","dayjs","startOf","getEndOfWeek","endOf","getFormattedMonthStr","getFormattedWeekRangeStr","startOfWeek","endOfWeek","shouldShowMonthsSeparately","month","shouldShowYearsSeparately","year","startOfWeekStr","endOfWeekStr","getFormattedDayStr","getFormattedRangeStr","formatFunctions","week","day","selectedFormatter","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","CustomDatePicker","selectedDate","setSelectedDate","validDates","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","datePickerRef","useRef","buttonRef","selectedRangeStr","start","end","isDateLessThanStart","isSameOrBefore","isDateGreaterThanEnd","isSameOrAfter","onPrevious","subtract","onNext","add","onToday","getDisabledDates","handleButtonMouseDown","e","contains","target","stopPropagation","focus","_jsxs","className","children","_jsx","Button","style","onClick","disabled","icon","Left","Down","onMouseDown","Typography","DatePicker","_objectSpread","defaultValue","disabledDate","open","placement","value","onChange","onOpenChange","Right","Header","calendarRef","selectedView","setSelectedView","calendarViewOptions","Menu","Dropdown","MenuItem","handleViewSelection","option","calendar","changeView","navigateToSelectedDate","_calendarRef$current","_calendarRef$current$","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","buttonProps","buttonStyle","capitalize","values","map","idx","isActive","CalendarView","forwardRef","_ref$viewOptions","viewOptions","_ref$events","events","_ref$handleDateClick","handleDateClick","noop","_ref$handleEventClick","handleEventClick","_ref$eventClassNames","eventClassNames","_ref$dayCellClassName","dayCellClassNames","_ref$validDates","_ref$onDateChange","onDateChange","dayMaxEvents","eventMaxStack","_ref$hideHeader","hideHeader","defaultView","find","_useState3","_useState4","_useTranslation","useTranslation","handleDateChange","prevDate","newDate","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"mappings":"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"}
|
package/dist/Insights.js
CHANGED
|
@@ -9,7 +9,7 @@ import { t } from 'i18next';
|
|
|
9
9
|
import { memo, createElement } from 'react';
|
|
10
10
|
import { sum, values, pluck } from 'ramda';
|
|
11
11
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
12
|
-
import { existsBy } from '@bigbinary/neeto-cist';
|
|
12
|
+
import { existsBy, hyphenate } from '@bigbinary/neeto-cist';
|
|
13
13
|
import HelpPopover from './HelpPopover.js';
|
|
14
14
|
import '@babel/runtime/helpers/defineProperty';
|
|
15
15
|
import '@babel/runtime/helpers/slicedToArray';
|
|
@@ -219,6 +219,7 @@ var MetricItem = function MetricItem(_ref) {
|
|
|
219
219
|
};
|
|
220
220
|
return /*#__PURE__*/jsxs("div", {
|
|
221
221
|
className: "nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4",
|
|
222
|
+
"data-cy": "".concat(hyphenate(metric), "-metric"),
|
|
222
223
|
children: [/*#__PURE__*/jsxs("div", {
|
|
223
224
|
className: "flex items-center gap-2",
|
|
224
225
|
children: [/*#__PURE__*/jsx("div", {
|
|
@@ -274,6 +275,7 @@ var Insights = function Insights(_ref) {
|
|
|
274
275
|
}
|
|
275
276
|
return /*#__PURE__*/jsxs("div", {
|
|
276
277
|
className: classnames("mx-auto pt-10", className),
|
|
278
|
+
"data-cy": "insights",
|
|
277
279
|
"data-testid": "insights",
|
|
278
280
|
children: [/*#__PURE__*/jsxs("div", {
|
|
279
281
|
className: "mb-10 flex w-full items-center",
|
|
@@ -289,6 +291,7 @@ var Insights = function Insights(_ref) {
|
|
|
289
291
|
className: "ml-3",
|
|
290
292
|
children: /*#__PURE__*/jsx(Warning, {
|
|
291
293
|
className: "neeto-ui-text-warning-500",
|
|
294
|
+
"data-cy": "insights-warning",
|
|
292
295
|
"data-testid": "insights-warning",
|
|
293
296
|
size: 20
|
|
294
297
|
})
|
package/dist/Insights.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Insights.js","sources":["../src/components/Insights/constants.js","../src/components/Insights/MetaInfo/PercentageBar.jsx","../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../src/components/Insights/MetaInfo/DataDistribution.jsx","../src/components/Insights/utils.js","../src/components/Insights/MetaInfo/index.jsx","../src/components/Insights/TimeItem.jsx","../src/components/Insights/MetricItem.jsx","../src/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value !== 0 && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value ? `${value}%` : 0}</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-2\"\n style=\"body2\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex items-end gap-x-1\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"insights-count\"\n data-testid=\"insights-count\"\n style=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body3\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import classNames from \"classnames\";\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n className,\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\"mx-auto pt-10\", className)}\n data-testid=\"insights\"\n >\n <div className=\"mb-10 flex w-full items-center\">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-6 grid grid-cols-1 gap-x-9 gap-y-6 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 lg:gap-0\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n /**\n * To provide additional classes.\n */\n className: PropTypes.string,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","_jsxs","_Fragment","children","_jsx","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","_createElement","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","Spinner","classNames","touch","Warning","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Insights.js","sources":["../src/components/Insights/constants.js","../src/components/Insights/MetaInfo/PercentageBar.jsx","../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../src/components/Insights/MetaInfo/DataDistribution.jsx","../src/components/Insights/utils.js","../src/components/Insights/MetaInfo/index.jsx","../src/components/Insights/TimeItem.jsx","../src/components/Insights/MetricItem.jsx","../src/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value !== 0 && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value ? `${value}%` : 0}</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-2\"\n style=\"body2\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import { memo } from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div\n className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\"\n data-cy={`${hyphenate(metric)}-metric`}\n >\n <div className=\"flex items-center gap-2\">\n <div className=\"flex items-end gap-x-1\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"insights-count\"\n data-testid=\"insights-count\"\n style=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body3\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import classNames from \"classnames\";\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n className,\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\"mx-auto pt-10\", className)}\n data-cy=\"insights\"\n data-testid=\"insights\"\n >\n <div className=\"mb-10 flex w-full items-center\">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-cy=\"insights-warning\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-6 grid grid-cols-1 gap-x-9 gap-y-6 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 lg:gap-0\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n /**\n * To provide additional classes.\n */\n className: PropTypes.string,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","_jsxs","_Fragment","children","_jsx","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","_createElement","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","hyphenate","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","Spinner","classNames","touch","Warning","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
|
package/dist/Schedule.js
CHANGED
|
@@ -2,10 +2,11 @@ import { createContext, useContext, useState, useEffect, useImperativeHandle, cr
|
|
|
2
2
|
import { FieldArray, ErrorMessage, useFormikContext, Formik, Form as Form$1 } from 'formik';
|
|
3
3
|
import { findIndexBy, isPresent, toLabelAndValue, isNotPresent, noop } from '@bigbinary/neeto-cist';
|
|
4
4
|
import { uniq, pluck, difference, append, without, identity, pick, assoc } from 'ramda';
|
|
5
|
-
import withT from '@bigbinary/neeto-commons-frontend/react-utils/withT';
|
|
6
5
|
import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils/general';
|
|
7
6
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
7
|
+
import { useTranslation } from 'react-i18next';
|
|
8
8
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
9
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
9
10
|
import { ianaTimezoneToHumanReadable } from '@bigbinary/neeto-time-zones';
|
|
10
11
|
import i18next from 'i18next';
|
|
11
12
|
import { dayjs } from '@bigbinary/neeto-commons-frontend/utils';
|
|
@@ -22,12 +23,10 @@ import Button from '@bigbinary/neetoui/Button';
|
|
|
22
23
|
import Label from '@bigbinary/neetoui/Label';
|
|
23
24
|
import Checkbox from '@bigbinary/neetoui/Checkbox';
|
|
24
25
|
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
25
|
-
import { useTranslation } from 'react-i18next';
|
|
26
26
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
27
27
|
import Plus from '@bigbinary/neeto-icons/Plus';
|
|
28
28
|
import Delete from '@bigbinary/neeto-icons/Delete';
|
|
29
29
|
import Select from '@bigbinary/neetoui/formik/Select';
|
|
30
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
31
30
|
import { Profile } from '@bigbinary/neeto-team-members-frontend';
|
|
32
31
|
import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
33
32
|
import MoreDropdown from './MoreDropdown.js';
|
|
@@ -36,7 +35,14 @@ import '@babel/runtime/helpers/objectWithoutProperties';
|
|
|
36
35
|
import '@bigbinary/neeto-icons/MenuHorizontal';
|
|
37
36
|
import '@bigbinary/neeto-icons/MenuVertical';
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
|
|
39
|
+
// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
|
|
40
|
+
var ScheduleContext = /*#__PURE__*/createContext({
|
|
41
|
+
allowAddPeriod: true,
|
|
42
|
+
firstDay: 0
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
var DAYS = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
|
|
40
46
|
var DEFAULT_SLOT_INTERVAL = 30;
|
|
41
47
|
|
|
42
48
|
var INTERVALS = ["year", "quarter", "month", "week", "day", "hour", "minute", "second"];
|
|
@@ -166,6 +172,10 @@ var isFromAndToSame = function isFromAndToSame(startTime, endTime) {
|
|
|
166
172
|
if (!startTime || !endTime) return true;
|
|
167
173
|
return dayjs(startTime, SLOT_TIME_FORMAT).isSame(dayjs(endTime, SLOT_TIME_FORMAT));
|
|
168
174
|
};
|
|
175
|
+
var sortDays = function sortDays(chosenIndex) {
|
|
176
|
+
if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;
|
|
177
|
+
return [].concat(_toConsumableArray(DAYS.slice(chosenIndex)), _toConsumableArray(DAYS.slice(0, chosenIndex)));
|
|
178
|
+
};
|
|
169
179
|
var getScheduleValidationSchema = function getScheduleValidationSchema() {
|
|
170
180
|
return yup.object().shape({
|
|
171
181
|
wdays: yup.array().of(yup.object().shape({
|
|
@@ -272,12 +282,15 @@ var findIndicesOfOverlappingRangesInPeriods = function findIndicesOfOverlappingR
|
|
|
272
282
|
};
|
|
273
283
|
};
|
|
274
284
|
|
|
275
|
-
var DisplayAvailability =
|
|
276
|
-
var
|
|
277
|
-
|
|
285
|
+
var DisplayAvailability = function DisplayAvailability(_ref) {
|
|
286
|
+
var periods = _ref.periods;
|
|
287
|
+
var _useTranslation = useTranslation(),
|
|
288
|
+
t = _useTranslation.t;
|
|
289
|
+
var _useContext = useContext(ScheduleContext),
|
|
290
|
+
firstDay = _useContext.firstDay;
|
|
278
291
|
return /*#__PURE__*/jsx("div", {
|
|
279
292
|
className: "w-full space-y-4",
|
|
280
|
-
children:
|
|
293
|
+
children: sortDays(firstDay).map(function (day) {
|
|
281
294
|
var _sortPeriodsByKey;
|
|
282
295
|
return /*#__PURE__*/jsxs("div", {
|
|
283
296
|
className: "neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 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",
|
|
@@ -327,7 +340,7 @@ var DisplayAvailability = withT(function (_ref) {
|
|
|
327
340
|
}, day);
|
|
328
341
|
})
|
|
329
342
|
});
|
|
330
|
-
}
|
|
343
|
+
};
|
|
331
344
|
|
|
332
345
|
var buildSlotIntervals = function buildSlotIntervals(_ref) {
|
|
333
346
|
var interval = _ref.interval,
|
|
@@ -386,12 +399,6 @@ var addDefaultPeriod = function addDefaultPeriod(wday) {
|
|
|
386
399
|
};
|
|
387
400
|
};
|
|
388
401
|
|
|
389
|
-
// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
|
|
390
|
-
// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
|
|
391
|
-
var ScheduleContext = /*#__PURE__*/createContext({
|
|
392
|
-
allowAddPeriod: true
|
|
393
|
-
});
|
|
394
|
-
|
|
395
402
|
var ScheduleRow = function ScheduleRow(_ref) {
|
|
396
403
|
var values = _ref.values,
|
|
397
404
|
setFieldValue = _ref.setFieldValue,
|
|
@@ -524,6 +531,8 @@ var Form = function Form(_ref) {
|
|
|
524
531
|
setWdaysToCopy = _useState4[1];
|
|
525
532
|
var _useTranslation = useTranslation(),
|
|
526
533
|
t = _useTranslation.t;
|
|
534
|
+
var _useContext = useContext(ScheduleContext),
|
|
535
|
+
firstDay = _useContext.firstDay;
|
|
527
536
|
var restoreDeletedPeriods = function restoreDeletedPeriods(setFieldValue) {
|
|
528
537
|
setFieldValue("wdays[".concat(index, "].periods"), deletedPeriods);
|
|
529
538
|
};
|
|
@@ -620,7 +629,7 @@ var Form = function Form(_ref) {
|
|
|
620
629
|
style: "h5",
|
|
621
630
|
children: t("neetoMolecules.schedule.copySchedule")
|
|
622
631
|
})
|
|
623
|
-
}),
|
|
632
|
+
}), sortDays(firstDay).filter(function (copyDay) {
|
|
624
633
|
return copyDay !== day;
|
|
625
634
|
}).map(function (day) {
|
|
626
635
|
return /*#__PURE__*/jsx("li", {
|
|
@@ -809,7 +818,9 @@ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
|
|
|
809
818
|
_ref$isEditable = _ref.isEditable,
|
|
810
819
|
isEditable = _ref$isEditable === void 0 ? true : _ref$isEditable,
|
|
811
820
|
_ref$isCreating = _ref.isCreating,
|
|
812
|
-
isCreating = _ref$isCreating === void 0 ? false : _ref$isCreating
|
|
821
|
+
isCreating = _ref$isCreating === void 0 ? false : _ref$isCreating,
|
|
822
|
+
_ref$firstDay = _ref.firstDay,
|
|
823
|
+
firstDay = _ref$firstDay === void 0 ? 1 : _ref$firstDay;
|
|
813
824
|
var handleCopy = function handleCopy(_ref2) {
|
|
814
825
|
var _values$wdays$index$p;
|
|
815
826
|
var values = _ref2.values,
|
|
@@ -818,7 +829,7 @@ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
|
|
|
818
829
|
wdaysToCopy = _ref2.wdaysToCopy;
|
|
819
830
|
var newPeriods = (_values$wdays$index$p = values.wdays[index].periods) === null || _values$wdays$index$p === void 0 ? void 0 : _values$wdays$index$p.map(pick(["startTime", "endTime"]));
|
|
820
831
|
wdaysToCopy.forEach(function (wday) {
|
|
821
|
-
var dayIndex =
|
|
832
|
+
var dayIndex = sortDays(firstDay).indexOf(wday);
|
|
822
833
|
setFieldValue("wdays[".concat(dayIndex, "].available"), isPresent(values.wdays[index].periods));
|
|
823
834
|
setFieldValue("wdays[".concat(dayIndex, "].periods"), newPeriods.map(function (period) {
|
|
824
835
|
return assoc("wday", wday, period);
|
|
@@ -826,7 +837,7 @@ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
|
|
|
826
837
|
});
|
|
827
838
|
};
|
|
828
839
|
var getInitialFormValues = function getInitialFormValues() {
|
|
829
|
-
return
|
|
840
|
+
return sortDays(firstDay).map(function (wday) {
|
|
830
841
|
var _periods$wday;
|
|
831
842
|
return {
|
|
832
843
|
periods: sortPeriodsByKey({
|
|
@@ -856,19 +867,20 @@ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
|
|
|
856
867
|
isEditable: isEditable,
|
|
857
868
|
isEditing: isEditing,
|
|
858
869
|
setIsEditing: setIsEditing
|
|
859
|
-
}),
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
870
|
+
}), /*#__PURE__*/jsx(ScheduleContext.Provider, {
|
|
871
|
+
value: {
|
|
872
|
+
allowAddPeriod: allowAddPeriod,
|
|
873
|
+
firstDay: firstDay
|
|
874
|
+
},
|
|
875
|
+
children: isEditing || !showHeader ? /*#__PURE__*/jsx(Form$1, {
|
|
864
876
|
children: /*#__PURE__*/jsx(Fields, {
|
|
865
877
|
handleCopy: handleCopy,
|
|
866
878
|
handleValuesChanged: handleValuesChanged,
|
|
867
879
|
scheduleRef: scheduleRef
|
|
868
880
|
})
|
|
881
|
+
}) : /*#__PURE__*/jsx(DisplayAvailability, {
|
|
882
|
+
periods: periods
|
|
869
883
|
})
|
|
870
|
-
}) : /*#__PURE__*/jsx(DisplayAvailability, {
|
|
871
|
-
periods: periods
|
|
872
884
|
})]
|
|
873
885
|
})
|
|
874
886
|
})
|