@bigbinary/neeto-molecules 4.1.0 → 4.1.2

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.
@@ -59,6 +59,16 @@ var VIEW_OPTIONS = _defineProperty(_defineProperty(_defineProperty({}, DAILY_VIE
59
59
  fullCalendarView: "dayGridMonth",
60
60
  picker: "month"
61
61
  });
62
+ var LOCALE_CONFIG = {
63
+ ja: {
64
+ dayCellContent: function dayCellContent(arg) {
65
+ return arg.date.getDate();
66
+ },
67
+ dayHeaderFormat: {
68
+ weekday: "long"
69
+ }
70
+ }
71
+ };
62
72
 
63
73
  var getWeekString = function getWeekString(_ref) {
64
74
  var date = _ref.date,
@@ -302,7 +312,7 @@ var Header = function Header(_ref) {
302
312
  });
303
313
  };
304
314
 
305
- var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "validDates", "onDateChange", "dayMaxEvents", "eventMaxStack", "hideHeader"];
315
+ var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "validDates", "onDateChange", "dayMaxEvents", "eventMaxStack", "hideHeader", "locale"];
306
316
  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; }
307
317
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
308
318
  var direction = i18next.dir() || "ltr";
@@ -330,6 +340,7 @@ var CalendarView = /*#__PURE__*/forwardRef(function (_ref, ref) {
330
340
  eventMaxStack = _ref.eventMaxStack,
331
341
  _ref$hideHeader = _ref.hideHeader,
332
342
  hideHeader = _ref$hideHeader === void 0 ? false : _ref$hideHeader,
343
+ locale = _ref.locale,
333
344
  otherProps = _objectWithoutProperties(_ref, _excluded);
334
345
  var calendarViewOptions = viewOptions || VIEW_OPTIONS;
335
346
  var defaultView = Object.values(calendarViewOptions).find(prop("default")) || calendarViewOptions[Object.keys(calendarViewOptions)[0]];
@@ -343,6 +354,7 @@ var CalendarView = /*#__PURE__*/forwardRef(function (_ref, ref) {
343
354
  setSelectedDate = _useState4[1];
344
355
  var _useTranslation = useTranslation(),
345
356
  t = _useTranslation.t;
357
+ var localeSpecificProps = LOCALE_CONFIG[locale] || {};
346
358
  var handleDateChange = function handleDateChange(date) {
347
359
  setSelectedDate(function (prevDate) {
348
360
  var newDate = typeof date === "function" ? date(prevDate) : date;
@@ -396,14 +408,15 @@ var CalendarView = /*#__PURE__*/forwardRef(function (_ref, ref) {
396
408
  initialView: selectedView.fullCalendarView,
397
409
  plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin],
398
410
  ref: mergeRefs(ref, calendarRef)
399
- }, _objectSpread({
411
+ }, _objectSpread(_objectSpread({
400
412
  dayCellClassNames: dayCellClassNames,
401
413
  dayMaxEvents: dayMaxEvents,
402
414
  direction: direction,
403
415
  eventClassNames: eventClassNames,
404
416
  eventMaxStack: eventMaxStack,
405
- events: events
406
- }, otherProps)))]
417
+ events: events,
418
+ locale: locale
419
+ }, localeSpecificProps), otherProps)))]
407
420
  });
408
421
  });
409
422
  CalendarView.displayName = "CalendarView";
@@ -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\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\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n ...otherProps\n}) => {\n const { t } = useTranslation();\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 gap-x-4\">\n <Button\n aria-label={t(\"neetoMolecules.calendarView.aria.goToToday\")}\n data-testid=\"neeto-molecules-calendar-view-today-button\"\n label={t(\"neetoMolecules.calendarView.today\")}\n style=\"secondary\"\n onClick={onToday}\n />\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.dateNavigation\")}\n className=\"flex\"\n role=\"group\"\n >\n <Button\n className=\"me-1\"\n data-testid=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={() => <Left className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.previousPeriod\", {\n period: picker,\n })}\n onClick={onPrevious}\n />\n <Button\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n className=\"min-w-52 justify-center\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={Down}\n ref={buttonRef}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.selectDate\", {\n currentDate: selectedRangeStr,\n })}\n onClick={() => setIsOpen(isOpen => !isOpen)}\n onMouseDown={handleButtonMouseDown}\n >\n <Typography\n data-testid=\"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=\"ms-1\"\n data-testid=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={() => <Right className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.nextPeriod\", {\n period: picker,\n })}\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\";\nimport { useTranslation } from \"react-i18next\";\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 { t } = useTranslation();\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\n aria-label={t(\"neetoMolecules.calendarView.aria.calendarControls\")}\n className=\"flex gap-x-4\"\n role=\"group\"\n >\n <CustomDatePicker\n {...{ selectedDate, setSelectedDate, validDates }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <Dropdown\n buttonStyle=\"secondary\"\n label={capitalize(selectedView.label)}\n buttonProps={{\n \"data-testid\": \"calendar-view-dropdown\",\n \"aria-label\": t(\"neetoMolecules.calendarView.aria.viewSelector\", {\n view: capitalize(selectedView.label),\n }),\n }}\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, useEffect } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport i18next from \"i18next\";\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 \"./calendar-view.scss\";\nimport { VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nconst direction = i18next.dir() || \"ltr\";\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 const calendarWrapperRef = useRef(null);\n const calendarRef = useRef();\n\n useEffect(() => {\n const calendarApi = calendarRef.current?.getApi?.();\n const wrapperElement = calendarWrapperRef.current;\n\n if (!calendarApi || !wrapperElement) return undefined;\n\n const handleResize = () => {\n calendarApi.updateSize();\n };\n\n const observer = new ResizeObserver(handleResize);\n\n observer.observe(wrapperElement);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return (\n <div\n className=\"flex-col\"\n data-testid=\"calendar-view\"\n ref={calendarWrapperRef}\n >\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 direction,\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","_useTranslation","useTranslation","_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","role","disabled","icon","Left","size","period","Down","currentDate","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","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","buttonStyle","capitalize","buttonProps","view","values","map","idx","isActive","direction","i18next","dir","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","handleDateChange","prevDate","newDate","calendarWrapperRef","_calendarRef$current$","calendarApi","getApi","call","wrapperElement","undefined","handleResize","updateSize","observer","ResizeObserver","observe","disconnect","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"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\nexport const LOCALE_CONFIG = {\n ja: {\n dayCellContent: arg => arg.date.getDate(),\n dayHeaderFormat: { weekday: \"long\" },\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\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n ...otherProps\n}) => {\n const { t } = useTranslation();\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 gap-x-4\">\n <Button\n aria-label={t(\"neetoMolecules.calendarView.aria.goToToday\")}\n data-testid=\"neeto-molecules-calendar-view-today-button\"\n label={t(\"neetoMolecules.calendarView.today\")}\n style=\"secondary\"\n onClick={onToday}\n />\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.dateNavigation\")}\n className=\"flex\"\n role=\"group\"\n >\n <Button\n className=\"me-1\"\n data-testid=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={() => <Left className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.previousPeriod\", {\n period: picker,\n })}\n onClick={onPrevious}\n />\n <Button\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n className=\"min-w-52 justify-center\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={Down}\n ref={buttonRef}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.selectDate\", {\n currentDate: selectedRangeStr,\n })}\n onClick={() => setIsOpen(isOpen => !isOpen)}\n onMouseDown={handleButtonMouseDown}\n >\n <Typography\n data-testid=\"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=\"ms-1\"\n data-testid=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={() => <Right className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.nextPeriod\", {\n period: picker,\n })}\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\";\nimport { useTranslation } from \"react-i18next\";\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 { t } = useTranslation();\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\n aria-label={t(\"neetoMolecules.calendarView.aria.calendarControls\")}\n className=\"flex gap-x-4\"\n role=\"group\"\n >\n <CustomDatePicker\n {...{ selectedDate, setSelectedDate, validDates }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <Dropdown\n buttonStyle=\"secondary\"\n label={capitalize(selectedView.label)}\n buttonProps={{\n \"data-testid\": \"calendar-view-dropdown\",\n \"aria-label\": t(\"neetoMolecules.calendarView.aria.viewSelector\", {\n view: capitalize(selectedView.label),\n }),\n }}\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, useEffect } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport i18next from \"i18next\";\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 \"./calendar-view.scss\";\nimport { LOCALE_CONFIG, VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nconst direction = i18next.dir() || \"ltr\";\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 locale,\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 localeSpecificProps = LOCALE_CONFIG[locale] || {};\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 const calendarWrapperRef = useRef(null);\n const calendarRef = useRef();\n\n useEffect(() => {\n const calendarApi = calendarRef.current?.getApi?.();\n const wrapperElement = calendarWrapperRef.current;\n\n if (!calendarApi || !wrapperElement) return undefined;\n\n const handleResize = () => {\n calendarApi.updateSize();\n };\n\n const observer = new ResizeObserver(handleResize);\n\n observer.observe(wrapperElement);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return (\n <div\n className=\"flex-col\"\n data-testid=\"calendar-view\"\n ref={calendarWrapperRef}\n >\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 direction,\n eventClassNames,\n eventMaxStack,\n events,\n locale,\n ...localeSpecificProps,\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 * The locale to be used for the calendar.\n */\n locale: PropTypes.string,\n};\n\nexport default CalendarView;\n"],"names":["WEEKLY_VIEW","t","MONTHLY_VIEW","DAILY_VIEW","VIEW_OPTIONS","_defineProperty","label","fullCalendarView","picker","LOCALE_CONFIG","ja","dayCellContent","arg","date","getDate","dayHeaderFormat","weekday","getWeekString","_ref","_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","_useTranslation","useTranslation","_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","role","disabled","icon","Left","size","period","Down","currentDate","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","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","buttonStyle","capitalize","buttonProps","view","values","map","idx","isActive","direction","i18next","dir","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","locale","defaultView","find","_useState3","_useState4","localeSpecificProps","handleDateChange","prevDate","newDate","calendarWrapperRef","_calendarRef$current$","calendarApi","getApi","call","wrapperElement","undefined","handleResize","updateSize","observer","ResizeObserver","observe","disconnect","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"mappings":"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"}
@@ -13,9 +13,8 @@ import Input from '@bigbinary/neetoui/Input';
13
13
  import Switch from '@bigbinary/neetoui/Switch';
14
14
  import Button from '@bigbinary/neetoui/Button';
15
15
  import { not, assoc } from 'ramda';
16
- import CardLayout from './CardLayout.js';
17
16
  import CopyToClipboardButton from './CopyToClipboardButton.js';
18
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
17
+ import { jsxs, jsx } from 'react/jsx-runtime';
19
18
  import 'classnames';
20
19
  import '@bigbinary/neeto-commons-frontend/utils/general';
21
20
  import '@bigbinary/neeto-icons/Copy';
@@ -153,32 +152,27 @@ var SharePaneBody = function SharePaneBody(_ref) {
153
152
  generateUrls(initialTime, initialParams);
154
153
  }, [isOpen, showHours, currentTimestamp, generateUrls]);
155
154
  return /*#__PURE__*/jsxs("div", {
156
- className: "flex w-full flex-col gap-y-6",
157
- children: [/*#__PURE__*/jsx(CardLayout, {
158
- title: t("neetoMolecules.shareRecording.configureUrlParameters"),
159
- actionBlock: /*#__PURE__*/jsxs("div", {
160
- className: "flex items-center gap-x-2",
161
- children: [/*#__PURE__*/jsx(Button, {
162
- "data-testid": "regenerate-url-button",
163
- label: t("neetoMolecules.shareRecording.regenerateUrl"),
164
- onClick: handleRegenerateUrl
165
- }), /*#__PURE__*/jsx(Button, {
166
- "data-testid": "cancel-button",
167
- label: t("neetoMolecules.shareRecording.cancel"),
168
- style: "secondary",
169
- onClick: onClose
170
- })]
171
- }),
172
- description: t("neetoMolecules.shareRecording.configureUrlParametersDescription"),
155
+ className: "flex w-full flex-col gap-8",
156
+ children: [/*#__PURE__*/jsx("div", {
157
+ className: "neeto-ui-border-gray-200 flex flex-col gap-8 border-b px-6 pb-8",
173
158
  children: /*#__PURE__*/jsxs("div", {
174
- className: "flex flex-col gap-y-4",
159
+ className: "flex w-full flex-col gap-6",
175
160
  children: [/*#__PURE__*/jsxs("div", {
176
- className: "flex items-center gap-x-2",
161
+ className: "flex flex-col gap-y-2",
162
+ children: [/*#__PURE__*/jsx(Typography, {
163
+ style: "h4",
164
+ children: t("neetoMolecules.shareRecording.configureUrlParameters")
165
+ }), /*#__PURE__*/jsx(Typography, {
166
+ style: "body3",
167
+ children: t("neetoMolecules.shareRecording.configureUrlParametersDescription")
168
+ })]
169
+ }), /*#__PURE__*/jsxs("div", {
170
+ className: "flex items-center gap-x-3",
177
171
  children: [/*#__PURE__*/jsx(Label, {
178
172
  children: t("neetoMolecules.shareRecording.startVideoAt")
179
173
  }), /*#__PURE__*/jsx(Input, {
180
174
  unlimitedChars: true,
181
- className: "w-40",
175
+ className: "w-full max-w-32",
182
176
  "data-testid": "time-input",
183
177
  placeholder: showHours ? "HH:MM:SS" : "MM:SS",
184
178
  value: rawInput,
@@ -186,7 +180,8 @@ var SharePaneBody = function SharePaneBody(_ref) {
186
180
  onChange: handlePlaybackTimestampChange,
187
181
  onKeyDown: handleKeyDown
188
182
  })]
189
- }), enableAutoplayAndMuteFlags && /*#__PURE__*/jsxs(Fragment, {
183
+ }), enableAutoplayAndMuteFlags && /*#__PURE__*/jsxs("div", {
184
+ className: "flex flex-col gap-4",
190
185
  children: [/*#__PURE__*/jsx(Switch, {
191
186
  checked: muted,
192
187
  "data-testid": "muted-checkbox",
@@ -206,33 +201,55 @@ var SharePaneBody = function SharePaneBody(_ref) {
206
201
  return handleFlagsChange("autoplay", e.target.checked);
207
202
  }
208
203
  })]
204
+ }), /*#__PURE__*/jsxs("div", {
205
+ className: "mt-2 flex items-center gap-x-3",
206
+ children: [/*#__PURE__*/jsx(Button, {
207
+ "data-testid": "regenerate-url-button",
208
+ label: t("neetoMolecules.shareRecording.regenerateUrl"),
209
+ size: "small",
210
+ onClick: handleRegenerateUrl
211
+ }), /*#__PURE__*/jsx(Button, {
212
+ "data-testid": "cancel-button",
213
+ label: t("neetoMolecules.shareRecording.cancel"),
214
+ size: "small",
215
+ style: "text",
216
+ onClick: onClose
217
+ })]
209
218
  })]
210
219
  })
211
220
  }), /*#__PURE__*/jsxs("div", {
212
- className: "flex flex-col gap-y-2",
213
- children: [/*#__PURE__*/jsx(Typography, {
214
- style: "h3",
215
- children: t("neetoMolecules.shareRecording.generatedUrls")
216
- }), shareLinks.map(function (shareLink, index) {
217
- return /*#__PURE__*/jsxs("div", {
218
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full items-center justify-between gap-1 p-2",
219
- children: [/*#__PURE__*/jsx(Typography, {
220
- className: "min-w-0 flex-1 break-words",
221
- style: "body2",
222
- children: shareLink
223
- }), /*#__PURE__*/jsx(CopyToClipboardButton, {
224
- className: "flex-shrink-0",
225
- style: "secondary",
226
- value: shareLink
227
- })]
228
- }, index);
229
- })]
230
- }), Preview && /*#__PURE__*/jsxs("div", {
231
- className: "flex flex-col gap-y-2 pt-2",
232
- children: [/*#__PURE__*/jsx(Label, {
233
- children: t("neetoMolecules.shareRecording.preview")
234
- }), /*#__PURE__*/jsx(Preview, {
235
- currentPlaybackTime: currentPlaybackTime
221
+ className: "flex flex-col gap-6 px-6",
222
+ children: [/*#__PURE__*/jsxs("div", {
223
+ className: "flex flex-col gap-y-2",
224
+ children: [/*#__PURE__*/jsx(Typography, {
225
+ style: "h4",
226
+ children: t("neetoMolecules.shareRecording.generatedUrls")
227
+ }), /*#__PURE__*/jsx("div", {
228
+ className: "flex flex-col gap-y-3",
229
+ children: shareLinks.map(function (shareLink, index) {
230
+ return /*#__PURE__*/jsxs("div", {
231
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded flex w-full items-start justify-between gap-2 p-2",
232
+ children: [/*#__PURE__*/jsx(Typography, {
233
+ className: "min-w-0 flex-1 break-words",
234
+ style: "body2",
235
+ children: shareLink
236
+ }), /*#__PURE__*/jsx(CopyToClipboardButton, {
237
+ className: "flex-shrink-0",
238
+ size: "small",
239
+ style: "text",
240
+ value: shareLink
241
+ })]
242
+ }, index);
243
+ })
244
+ })]
245
+ }), Preview && /*#__PURE__*/jsxs("div", {
246
+ className: "flex flex-col gap-y-2",
247
+ children: [/*#__PURE__*/jsx(Typography, {
248
+ style: "h4",
249
+ children: t("neetoMolecules.shareRecording.preview")
250
+ }), /*#__PURE__*/jsx(Preview, {
251
+ currentPlaybackTime: currentPlaybackTime
252
+ })]
236
253
  })]
237
254
  })]
238
255
  });
@@ -273,7 +290,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
273
290
  children: t("neetoMolecules.shareRecording.title")
274
291
  })
275
292
  }), /*#__PURE__*/jsx(Pane.Body, {
276
- className: "flex flex-col gap-y-2",
293
+ className: "neeto-ui-border-gray-200 border-t px-0 py-6",
277
294
  children: isLoading ? /*#__PURE__*/jsx(Spinner, {
278
295
  className: "mx-auto"
279
296
  }) : /*#__PURE__*/jsx(SharePaneBody, {
@@ -1 +1 @@
1
- {"version":3,"file":"ShareRecordingPane.js","sources":["../src/components/ShareRecordingPane/constants.js","../src/components/ShareRecordingPane/utils.js","../src/components/ShareRecordingPane/SharePaneBody.jsx","../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect, useCallback } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Switch, Button } from \"neetoui\";\nimport { assoc, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CardLayout from \"components/CardLayout\";\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview: Preview,\n enableAutoplayAndMuteFlags,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [params, setParams] = useState({\n muted: false,\n autoplay: false,\n });\n\n const { muted, autoplay } = params;\n\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const handleFlagsChange = (key, value) => setParams(assoc(key, value));\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (e.key !== \"Enter\") return;\n formatAndSetTime();\n };\n\n const generateUrls = useCallback(\n (timeInSeconds, urlParams) => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n time: timeInSeconds,\n muted: urlParams.muted ? 1 : undefined,\n autoplay: urlParams.autoplay ? 1 : undefined,\n })\n );\n setShareLinks(playbackUrls);\n },\n [recordingUrls]\n );\n\n const handleRegenerateUrl = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n generateUrls(timeInSeconds, params);\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n const initialTime = currentTimestamp > 0 ? currentTimestamp : 0;\n const initialParams = { muted: false, autoplay: false };\n\n setCurrentPlaybackTime(initialTime);\n setRawInput(formatTime(initialTime, showHours));\n setParams(initialParams);\n generateUrls(initialTime, initialParams);\n }, [isOpen, showHours, currentTimestamp, generateUrls]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-6\">\n <CardLayout\n title={t(\"neetoMolecules.shareRecording.configureUrlParameters\")}\n actionBlock={\n <div className=\"flex items-center gap-x-2\">\n <Button\n data-testid=\"regenerate-url-button\"\n label={t(\"neetoMolecules.shareRecording.regenerateUrl\")}\n onClick={handleRegenerateUrl}\n />\n <Button\n data-testid=\"cancel-button\"\n label={t(\"neetoMolecules.shareRecording.cancel\")}\n style=\"secondary\"\n onClick={onClose}\n />\n </div>\n }\n description={t(\n \"neetoMolecules.shareRecording.configureUrlParametersDescription\"\n )}\n >\n <div className=\"flex flex-col gap-y-4\">\n <div className=\"flex items-center gap-x-2\">\n <Label>{t(\"neetoMolecules.shareRecording.startVideoAt\")}</Label>\n <Input\n unlimitedChars\n className=\"w-40\"\n data-testid=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {enableAutoplayAndMuteFlags && (\n <>\n <Switch\n checked={muted}\n data-testid=\"muted-checkbox\"\n id=\"muted\"\n label={t(\"neetoMolecules.shareRecording.muted\")}\n name=\"muted\"\n onChange={e => handleFlagsChange(\"muted\", e.target.checked)}\n />\n <Switch\n checked={autoplay}\n data-testid=\"autoplay-checkbox\"\n id=\"autoplay\"\n label={t(\"neetoMolecules.shareRecording.autoplay\")}\n name=\"autoplay\"\n onChange={e => handleFlagsChange(\"autoplay\", e.target.checked)}\n />\n </>\n )}\n </div>\n </CardLayout>\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h3\">\n {t(\"neetoMolecules.shareRecording.generatedUrls\")}\n </Typography>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Typography className=\"min-w-0 flex-1 break-words\" style=\"body2\">\n {shareLink}\n </Typography>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n </div>\n {Preview && (\n <div className=\"flex flex-col gap-y-2 pt-2\">\n <Label>{t(\"neetoMolecules.shareRecording.preview\")}</Label>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </div>\n );\n};\n\nexport default SharePaneBody;\n","import { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n enableAutoplayAndMuteFlags = false,\n size = \"large\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, size, ...otherProps }}\n data-testid=\"share-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col gap-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{\n enableAutoplayAndMuteFlags,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview,\n totalDuration,\n }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n /**\n * Size of the pane.\n */\n size: PropTypes.oneOf([\"extraLarge\", \"large\", \"small\"]),\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","onClose","Preview","preview","enableAutoplayAndMuteFlags","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","muted","autoplay","_useState6","params","setParams","_useState7","_useState8","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","handleFlagsChange","key","assoc","formatAndSetTime","handleKeyDown","generateUrls","useCallback","urlParams","playbackUrls","recordingUrl","buildUrl","time","handleRegenerateUrl","useEffect","not","initialTime","initialParams","_jsxs","className","children","_jsx","CardLayout","title","actionBlock","Button","label","onClick","style","description","Label","Input","unlimitedChars","placeholder","onBlur","onChange","onKeyDown","_Fragment","Switch","checked","id","name","Typography","shareLink","index","CopyToClipboardButton","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","_ref$isLoading","isLoading","_ref$enableAutoplayAn","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","Header","Body","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"ShareRecordingPane.js","sources":["../src/components/ShareRecordingPane/constants.js","../src/components/ShareRecordingPane/utils.js","../src/components/ShareRecordingPane/SharePaneBody.jsx","../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect, useCallback } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Switch, Button } from \"neetoui\";\nimport { assoc, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview: Preview,\n enableAutoplayAndMuteFlags,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [params, setParams] = useState({\n muted: false,\n autoplay: false,\n });\n\n const { muted, autoplay } = params;\n\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const handleFlagsChange = (key, value) => setParams(assoc(key, value));\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (e.key !== \"Enter\") return;\n formatAndSetTime();\n };\n\n const generateUrls = useCallback(\n (timeInSeconds, urlParams) => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n time: timeInSeconds,\n muted: urlParams.muted ? 1 : undefined,\n autoplay: urlParams.autoplay ? 1 : undefined,\n })\n );\n setShareLinks(playbackUrls);\n },\n [recordingUrls]\n );\n\n const handleRegenerateUrl = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n generateUrls(timeInSeconds, params);\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n const initialTime = currentTimestamp > 0 ? currentTimestamp : 0;\n const initialParams = { muted: false, autoplay: false };\n\n setCurrentPlaybackTime(initialTime);\n setRawInput(formatTime(initialTime, showHours));\n setParams(initialParams);\n generateUrls(initialTime, initialParams);\n }, [isOpen, showHours, currentTimestamp, generateUrls]);\n\n return (\n <div className=\"flex w-full flex-col gap-8\">\n <div className=\"neeto-ui-border-gray-200 flex flex-col gap-8 border-b px-6 pb-8\">\n <div className=\"flex w-full flex-col gap-6\">\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h4\">\n {t(\"neetoMolecules.shareRecording.configureUrlParameters\")}\n </Typography>\n <Typography style=\"body3\">\n {t(\n \"neetoMolecules.shareRecording.configureUrlParametersDescription\"\n )}\n </Typography>\n </div>\n <div className=\"flex items-center gap-x-3\">\n <Label>{t(\"neetoMolecules.shareRecording.startVideoAt\")}</Label>\n <Input\n unlimitedChars\n className=\"w-full max-w-32\"\n data-testid=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {enableAutoplayAndMuteFlags && (\n <div className=\"flex flex-col gap-4\">\n <Switch\n checked={muted}\n data-testid=\"muted-checkbox\"\n id=\"muted\"\n label={t(\"neetoMolecules.shareRecording.muted\")}\n name=\"muted\"\n onChange={e => handleFlagsChange(\"muted\", e.target.checked)}\n />\n <Switch\n checked={autoplay}\n data-testid=\"autoplay-checkbox\"\n id=\"autoplay\"\n label={t(\"neetoMolecules.shareRecording.autoplay\")}\n name=\"autoplay\"\n onChange={e => handleFlagsChange(\"autoplay\", e.target.checked)}\n />\n </div>\n )}\n <div className=\"mt-2 flex items-center gap-x-3\">\n <Button\n data-testid=\"regenerate-url-button\"\n label={t(\"neetoMolecules.shareRecording.regenerateUrl\")}\n size=\"small\"\n onClick={handleRegenerateUrl}\n />\n <Button\n data-testid=\"cancel-button\"\n label={t(\"neetoMolecules.shareRecording.cancel\")}\n size=\"small\"\n style=\"text\"\n onClick={onClose}\n />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-6 px-6\">\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h4\">\n {t(\"neetoMolecules.shareRecording.generatedUrls\")}\n </Typography>\n <div className=\"flex flex-col gap-y-3\">\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded flex w-full items-start justify-between gap-2 p-2\"\n key={index}\n >\n <Typography\n className=\"min-w-0 flex-1 break-words\"\n style=\"body2\"\n >\n {shareLink}\n </Typography>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={shareLink}\n />\n </div>\n ))}\n </div>\n </div>\n {Preview && (\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h4\">\n {t(\"neetoMolecules.shareRecording.preview\")}\n </Typography>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default SharePaneBody;\n","import { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n enableAutoplayAndMuteFlags = false,\n size = \"large\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, size, ...otherProps }}\n data-testid=\"share-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"neeto-ui-border-gray-200 border-t px-0 py-6\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{\n enableAutoplayAndMuteFlags,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview,\n totalDuration,\n }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n /**\n * Size of the pane.\n */\n size: PropTypes.oneOf([\"extraLarge\", \"large\", \"small\"]),\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","onClose","Preview","preview","enableAutoplayAndMuteFlags","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","muted","autoplay","_useState6","params","setParams","_useState7","_useState8","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","handleFlagsChange","key","assoc","formatAndSetTime","handleKeyDown","generateUrls","useCallback","urlParams","playbackUrls","recordingUrl","buildUrl","time","handleRegenerateUrl","useEffect","not","initialTime","initialParams","_jsxs","className","children","_jsx","Typography","style","Label","Input","unlimitedChars","placeholder","onBlur","onChange","onKeyDown","Switch","checked","id","label","name","Button","size","onClick","shareLink","index","CopyToClipboardButton","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","_ref$isLoading","isLoading","_ref$enableAutoplayAn","_ref$size","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","Header","Body","Spinner"],"mappings":"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"}
@@ -61,6 +61,16 @@ var VIEW_OPTIONS = _defineProperty(_defineProperty(_defineProperty({}, DAILY_VIE
61
61
  fullCalendarView: "dayGridMonth",
62
62
  picker: "month"
63
63
  });
64
+ var LOCALE_CONFIG = {
65
+ ja: {
66
+ dayCellContent: function dayCellContent(arg) {
67
+ return arg.date.getDate();
68
+ },
69
+ dayHeaderFormat: {
70
+ weekday: "long"
71
+ }
72
+ }
73
+ };
64
74
 
65
75
  var getWeekString = function getWeekString(_ref) {
66
76
  var date = _ref.date,
@@ -304,7 +314,7 @@ var Header = function Header(_ref) {
304
314
  });
305
315
  };
306
316
 
307
- var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "validDates", "onDateChange", "dayMaxEvents", "eventMaxStack", "hideHeader"];
317
+ var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "validDates", "onDateChange", "dayMaxEvents", "eventMaxStack", "hideHeader", "locale"];
308
318
  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; }
309
319
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
310
320
  var direction = i18next.dir() || "ltr";
@@ -332,6 +342,7 @@ var CalendarView = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
332
342
  eventMaxStack = _ref.eventMaxStack,
333
343
  _ref$hideHeader = _ref.hideHeader,
334
344
  hideHeader = _ref$hideHeader === void 0 ? false : _ref$hideHeader,
345
+ locale = _ref.locale,
335
346
  otherProps = _objectWithoutProperties(_ref, _excluded);
336
347
  var calendarViewOptions = viewOptions || VIEW_OPTIONS;
337
348
  var defaultView = Object.values(calendarViewOptions).find(ramda.prop("default")) || calendarViewOptions[Object.keys(calendarViewOptions)[0]];
@@ -345,6 +356,7 @@ var CalendarView = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
345
356
  setSelectedDate = _useState4[1];
346
357
  var _useTranslation = reactI18next.useTranslation(),
347
358
  t = _useTranslation.t;
359
+ var localeSpecificProps = LOCALE_CONFIG[locale] || {};
348
360
  var handleDateChange = function handleDateChange(date) {
349
361
  setSelectedDate(function (prevDate) {
350
362
  var newDate = typeof date === "function" ? date(prevDate) : date;
@@ -398,14 +410,15 @@ var CalendarView = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
398
410
  initialView: selectedView.fullCalendarView,
399
411
  plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin],
400
412
  ref: mergeRefs(ref, calendarRef)
401
- }, _objectSpread({
413
+ }, _objectSpread(_objectSpread({
402
414
  dayCellClassNames: dayCellClassNames,
403
415
  dayMaxEvents: dayMaxEvents,
404
416
  direction: direction,
405
417
  eventClassNames: eventClassNames,
406
418
  eventMaxStack: eventMaxStack,
407
- events: events
408
- }, otherProps)))]
419
+ events: events,
420
+ locale: locale
421
+ }, localeSpecificProps), otherProps)))]
409
422
  });
410
423
  });
411
424
  CalendarView.displayName = "CalendarView";
@@ -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\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\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n ...otherProps\n}) => {\n const { t } = useTranslation();\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 gap-x-4\">\n <Button\n aria-label={t(\"neetoMolecules.calendarView.aria.goToToday\")}\n data-testid=\"neeto-molecules-calendar-view-today-button\"\n label={t(\"neetoMolecules.calendarView.today\")}\n style=\"secondary\"\n onClick={onToday}\n />\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.dateNavigation\")}\n className=\"flex\"\n role=\"group\"\n >\n <Button\n className=\"me-1\"\n data-testid=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={() => <Left className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.previousPeriod\", {\n period: picker,\n })}\n onClick={onPrevious}\n />\n <Button\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n className=\"min-w-52 justify-center\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={Down}\n ref={buttonRef}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.selectDate\", {\n currentDate: selectedRangeStr,\n })}\n onClick={() => setIsOpen(isOpen => !isOpen)}\n onMouseDown={handleButtonMouseDown}\n >\n <Typography\n data-testid=\"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=\"ms-1\"\n data-testid=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={() => <Right className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.nextPeriod\", {\n period: picker,\n })}\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\";\nimport { useTranslation } from \"react-i18next\";\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 { t } = useTranslation();\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\n aria-label={t(\"neetoMolecules.calendarView.aria.calendarControls\")}\n className=\"flex gap-x-4\"\n role=\"group\"\n >\n <CustomDatePicker\n {...{ selectedDate, setSelectedDate, validDates }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <Dropdown\n buttonStyle=\"secondary\"\n label={capitalize(selectedView.label)}\n buttonProps={{\n \"data-testid\": \"calendar-view-dropdown\",\n \"aria-label\": t(\"neetoMolecules.calendarView.aria.viewSelector\", {\n view: capitalize(selectedView.label),\n }),\n }}\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, useEffect } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport i18next from \"i18next\";\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 \"./calendar-view.scss\";\nimport { VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nconst direction = i18next.dir() || \"ltr\";\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 const calendarWrapperRef = useRef(null);\n const calendarRef = useRef();\n\n useEffect(() => {\n const calendarApi = calendarRef.current?.getApi?.();\n const wrapperElement = calendarWrapperRef.current;\n\n if (!calendarApi || !wrapperElement) return undefined;\n\n const handleResize = () => {\n calendarApi.updateSize();\n };\n\n const observer = new ResizeObserver(handleResize);\n\n observer.observe(wrapperElement);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return (\n <div\n className=\"flex-col\"\n data-testid=\"calendar-view\"\n ref={calendarWrapperRef}\n >\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 direction,\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","_useTranslation","useTranslation","_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","role","disabled","icon","Left","size","period","Down","currentDate","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","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","buttonStyle","capitalize","buttonProps","view","values","map","idx","isActive","direction","i18next","dir","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","handleDateChange","prevDate","newDate","calendarWrapperRef","_calendarRef$current$","calendarApi","getApi","call","wrapperElement","undefined","handleResize","updateSize","observer","ResizeObserver","observe","disconnect","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"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\nexport const LOCALE_CONFIG = {\n ja: {\n dayCellContent: arg => arg.date.getDate(),\n dayHeaderFormat: { weekday: \"long\" },\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\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n ...otherProps\n}) => {\n const { t } = useTranslation();\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 gap-x-4\">\n <Button\n aria-label={t(\"neetoMolecules.calendarView.aria.goToToday\")}\n data-testid=\"neeto-molecules-calendar-view-today-button\"\n label={t(\"neetoMolecules.calendarView.today\")}\n style=\"secondary\"\n onClick={onToday}\n />\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.dateNavigation\")}\n className=\"flex\"\n role=\"group\"\n >\n <Button\n className=\"me-1\"\n data-testid=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={() => <Left className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.previousPeriod\", {\n period: picker,\n })}\n onClick={onPrevious}\n />\n <Button\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n className=\"min-w-52 justify-center\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={Down}\n ref={buttonRef}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.selectDate\", {\n currentDate: selectedRangeStr,\n })}\n onClick={() => setIsOpen(isOpen => !isOpen)}\n onMouseDown={handleButtonMouseDown}\n >\n <Typography\n data-testid=\"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=\"ms-1\"\n data-testid=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={() => <Right className=\"rtl:scale-x-[-1]\" size={20} />}\n style=\"text\"\n aria-label={t(\"neetoMolecules.calendarView.aria.nextPeriod\", {\n period: picker,\n })}\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\";\nimport { useTranslation } from \"react-i18next\";\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 { t } = useTranslation();\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\n aria-label={t(\"neetoMolecules.calendarView.aria.calendarControls\")}\n className=\"flex gap-x-4\"\n role=\"group\"\n >\n <CustomDatePicker\n {...{ selectedDate, setSelectedDate, validDates }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <Dropdown\n buttonStyle=\"secondary\"\n label={capitalize(selectedView.label)}\n buttonProps={{\n \"data-testid\": \"calendar-view-dropdown\",\n \"aria-label\": t(\"neetoMolecules.calendarView.aria.viewSelector\", {\n view: capitalize(selectedView.label),\n }),\n }}\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, useEffect } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport i18next from \"i18next\";\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 \"./calendar-view.scss\";\nimport { LOCALE_CONFIG, VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nconst direction = i18next.dir() || \"ltr\";\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 locale,\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 localeSpecificProps = LOCALE_CONFIG[locale] || {};\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 const calendarWrapperRef = useRef(null);\n const calendarRef = useRef();\n\n useEffect(() => {\n const calendarApi = calendarRef.current?.getApi?.();\n const wrapperElement = calendarWrapperRef.current;\n\n if (!calendarApi || !wrapperElement) return undefined;\n\n const handleResize = () => {\n calendarApi.updateSize();\n };\n\n const observer = new ResizeObserver(handleResize);\n\n observer.observe(wrapperElement);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return (\n <div\n className=\"flex-col\"\n data-testid=\"calendar-view\"\n ref={calendarWrapperRef}\n >\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 direction,\n eventClassNames,\n eventMaxStack,\n events,\n locale,\n ...localeSpecificProps,\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 * The locale to be used for the calendar.\n */\n locale: PropTypes.string,\n};\n\nexport default CalendarView;\n"],"names":["WEEKLY_VIEW","t","MONTHLY_VIEW","DAILY_VIEW","VIEW_OPTIONS","_defineProperty","label","fullCalendarView","picker","LOCALE_CONFIG","ja","dayCellContent","arg","date","getDate","dayHeaderFormat","weekday","getWeekString","_ref","_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","_useTranslation","useTranslation","_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","role","disabled","icon","Left","size","period","Down","currentDate","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","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","buttonStyle","capitalize","buttonProps","view","values","map","idx","isActive","direction","i18next","dir","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","locale","defaultView","find","_useState3","_useState4","localeSpecificProps","handleDateChange","prevDate","newDate","calendarWrapperRef","_calendarRef$current$","calendarApi","getApi","call","wrapperElement","undefined","handleResize","updateSize","observer","ResizeObserver","observe","disconnect","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,SAAC,CAAC,oCAAoC,CAAC;AAC3D,IAAMC,YAAY,GAAGD,SAAC,CAAC,qCAAqC,CAAC;AAC7D,IAAME,UAAU,GAAGF,SAAC,CAAC,mCAAmC,CAAC;AAElD,IAAMG,YAAY,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EACtBF,UAAU,EAAG;AACZG,EAAAA,KAAK,EAAEH,UAAU;AACjBI,EAAAA,gBAAgB,EAAE,aAAa;AAC/BC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAA,EACAR,WAAW,EAAG;AACbM,EAAAA,KAAK,EAAEN,WAAW;AAClBO,EAAAA,gBAAgB,EAAE,cAAc;AAChCC,EAAAA,MAAM,EAAE;AACV,CAAC,CAAA,EACAN,YAAY,EAAG;AACdI,EAAAA,KAAK,EAAEJ,YAAY;AACnBK,EAAAA,gBAAgB,EAAE,cAAc;AAChCC,EAAAA,MAAM,EAAE;AACV,CAAC,CACF;AAEM,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,EAAE,EAAE;AACFC,IAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAEC,GAAG,EAAA;AAAA,MAAA,OAAIA,GAAG,CAACC,IAAI,CAACC,OAAO,EAAE;AAAA,IAAA,CAAA;AACzCC,IAAAA,eAAe,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAO;AACrC;AACF,CAAC;;AC3BD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAA;AAAA,EAAA,IACjBL,IAAI,GAAAK,IAAA,CAAJL,IAAI;IAAAM,kBAAA,GAAAD,IAAA,CACJE,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,kBAAA;IAAAE,cAAA,GAAAH,IAAA,CACpBI,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IAAAE,aAAA,GAAAL,IAAA,CACjBM,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,aAAA;AAAA,EAAA,OAAA,EAAA,CAAAE,MAAA,CAEbH,SAAS,IAAIF,aAAa,GAAGP,IAAI,CAACa,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAAD,MAAA,CAAIZ,IAAI,CAACA,IAAI,EAAE,EAAA,GAAA,CAAA,CAAAY,MAAA,CACpED,QAAQ,IAAI,CAACJ,aAAa,GAAGP,IAAI,CAACa,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;AAAA,CACrD;AAEG,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGd,IAAI,EAAA;EAAA,OAAIe,WAAK,CAACf,IAAI,CAAC,CAACgB,OAAO,CAAC,MAAM,CAAC;AAAA,CAAA;AAE1D,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAGjB,IAAI,EAAA;EAAA,OAAIe,WAAK,CAACf,IAAI,CAAC,CAACkB,KAAK,CAAC,MAAM,CAAC;AAAA,CAAA;AAEtD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGnB,IAAI,EAAA;AAAA,EAAA,OAAIA,IAAI,CAACa,MAAM,CAAC,UAAU,CAAC;AAAA,CAAA;AAE5D,IAAMO,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGpB,IAAI,EAAI;AAC9C,EAAA,IAAMqB,WAAW,GAAGP,cAAc,CAACd,IAAI,CAAC;AACxC,EAAA,IAAMsB,SAAS,GAAGL,YAAY,CAACjB,IAAI,CAAC;AAEpC,EAAA,IAAMuB,0BAA0B,GAAGF,WAAW,CAACG,KAAK,EAAE,KAAKF,SAAS,CAACE,KAAK,EAAE;AAC5E,EAAA,IAAMC,yBAAyB,GAAGJ,WAAW,CAACK,IAAI,EAAE,KAAKJ,SAAS,CAACI,IAAI,EAAE;EAEzE,IAAMC,cAAc,GAAGvB,aAAa,CAAC;AACnCJ,IAAAA,IAAI,EAAEqB,WAAW;AACjBZ,IAAAA,SAAS,EAAEc,0BAA0B;AACrCZ,IAAAA,QAAQ,EAAEc;AACZ,GAAC,CAAC;EAEF,IAAMG,YAAY,GAAGxB,aAAa,CAAC;AACjCJ,IAAAA,IAAI,EAAEsB,SAAS;AACff,IAAAA,aAAa,EAAE,KAAK;AACpBE,IAAAA,SAAS,EAAEc,0BAA0B;AACrCZ,IAAAA,QAAQ,EAAEc;AACZ,GAAC,CAAC;AAEF,EAAA,OAAA,EAAA,CAAAb,MAAA,CAAUe,cAAc,EAAA,KAAA,CAAA,CAAAf,MAAA,CAAMgB,YAAY,CAAA;AAC5C,CAAC;AAEM,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG7B,IAAI,EAAA;AAAA,EAAA,OAAIA,IAAI,CAACa,MAAM,CAAC,aAAa,CAAC;AAAA,CAAA;AAE7D,IAAMiB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAI9B,IAAI,EAAEL,MAAM,EAAK;AACpD,EAAA,IAAMoC,eAAe,GAAG;AACtBP,IAAAA,KAAK,EAAEL,oBAAoB;AAC3Ba,IAAAA,IAAI,EAAEZ,wBAAwB;AAC9Ba,IAAAA,GAAG,EAAEJ;GACN;AACD,EAAA,IAAMK,iBAAiB,GAAGH,eAAe,CAACpC,MAAM,CAAC;EAEjD,OAAOuC,iBAAiB,CAAClC,IAAI,CAAC;AAChC,CAAC;AAEM,IAAMmC,SAAS,GACpB,SADWA,SAASA,GAAA;AAAA,EAAA,KAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAChBC,IAAI,GAAA,IAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAJF,IAAAA,IAAI,CAAAE,IAAA,CAAA,GAAAJ,SAAA,CAAAI,IAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OACR,UAAAC,IAAI,EAAA;IAAA,OACFH,IAAI,CACDI,MAAM,CAACC,OAAO,CAAC,CACfC,OAAO,CAAC,UAAAC,GAAG,EAAA;AAAA,MAAA,OACV,OAAOA,GAAG,KAAK,UAAU,GAAGA,GAAG,CAACJ,IAAI,CAAC,GAAII,GAAG,CAACC,OAAO,GAAGL,IAAK;AAAA,IAAA,CAC9D,CAAC;AAAA,EAAA,CAAA;AAAA,CAAA;;;;;ACpDP,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA3C,IAAA,EAMhB;AAAA,EAAA,IALJ4C,YAAY,GAAA5C,IAAA,CAAZ4C,YAAY;IACZC,eAAe,GAAA7C,IAAA,CAAf6C,eAAe;IACfvD,MAAM,GAAAU,IAAA,CAANV,MAAM;IACNwD,UAAU,GAAA9C,IAAA,CAAV8C,UAAU;AACPC,IAAAA,UAAU,GAAAC,wBAAA,CAAAhD,IAAA,EAAAiD,WAAA,CAAA;AAEb,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBpE,CAAC,GAAAmE,eAAA,CAADnE,CAAC;AACT,EAAA,IAAAqE,SAAA,GAA4BC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAApCI,IAAAA,MAAM,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,SAAS,GAAAH,UAAA,CAAA,CAAA,CAAA;AAExB,EAAA,IAAMI,aAAa,GAAGC,YAAM,CAAC,IAAI,CAAC;AAClC,EAAA,IAAMC,SAAS,GAAGD,YAAM,CAAC,IAAI,CAAC;AAE9B,EAAA,IAAME,gBAAgB,GAAGpC,oBAAoB,CAACmB,YAAY,EAAEtD,MAAM,CAAC;AAEnE,EAAA,IAAQwE,KAAK,GAAUhB,UAAU,CAAzBgB,KAAK;IAAEC,GAAG,GAAKjB,UAAU,CAAlBiB,GAAG;AAElB,EAAA,IAAMC,mBAAmB,GACvBF,KAAK,IAAIlB,YAAY,CAACqB,cAAc,CAACvD,WAAK,CAACoD,KAAK,CAAC,EAAExE,MAAM,CAAC;AAE5D,EAAA,IAAM4E,oBAAoB,GACxBH,GAAG,IAAInB,YAAY,CAACuB,aAAa,CAACzD,WAAK,CAACqD,GAAG,CAAC,EAAEzE,MAAM,CAAC;AAEvD,EAAA,IAAM8E,UAAU,GAAG,SAAbA,UAAUA,GAAA;IAAA,OACdvB,eAAe,CAAC,UAAAD,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAACyB,QAAQ,CAAC,CAAC,EAAE/E,MAAM,CAAC;IAAA,CAAA,CAAC;AAAA,EAAA,CAAA;AAEnE,EAAA,IAAMgF,MAAM,GAAG,SAATA,MAAMA,GAAA;IAAA,OACVzB,eAAe,CAAC,UAAAD,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAAC2B,GAAG,CAAC,CAAC,EAAEjF,MAAM,CAAC;IAAA,CAAA,CAAC;AAAA,EAAA,CAAA;AAE9D,EAAA,IAAMkF,OAAO,GAAG,SAAVA,OAAOA,GAAA;AAAA,IAAA,OAAS3B,eAAe,CAACnC,WAAK,EAAE,CAAC;AAAA,EAAA,CAAA;AAE9C,EAAA,IAAM+D,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG9E,IAAI,EAAI;AAC/B,IAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK;IAEvB,OAAQmE,KAAK,IAAInE,IAAI,IAAImE,KAAK,IAAMC,GAAG,IAAIpE,IAAI,IAAIoE,GAAI;EACzD,CAAC;AAED,EAAA,IAAMW,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,CAAC,EAAI;AACjC,IAAA,IAAI,EAAEf,SAAS,CAAClB,OAAO,IAAIkB,SAAS,CAAClB,OAAO,CAACkC,QAAQ,CAACD,CAAC,CAACE,MAAM,CAAC,CAAC,EAAE;IAClEF,CAAC,CAACG,eAAe,EAAE;IACnB,IAAItB,MAAM,EAAEE,aAAa,CAAChB,OAAO,CAACqC,KAAK,EAAE;EAC3C,CAAC;AAED,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yCAAyC;IAAAC,QAAA,EAAA,cACtDC,cAAA,CAACC,MAAM,EAAA;MACL,YAAA,EAAYrG,CAAC,CAAC,4CAA4C,CAAE;AAC5D,MAAA,aAAA,EAAY,4CAA4C;AACxDK,MAAAA,KAAK,EAAEL,CAAC,CAAC,mCAAmC,CAAE;AAC9CsG,MAAAA,KAAK,EAAC,WAAW;AACjBC,MAAAA,OAAO,EAAEd;KACV,CAAC,eACFQ,eAAA,CAAA,KAAA,EAAA;MACE,YAAA,EAAYjG,CAAC,CAAC,iDAAiD,CAAE;AACjEkG,MAAAA,SAAS,EAAC,MAAM;AAChBM,MAAAA,IAAI,EAAC,OAAO;MAAAL,QAAA,EAAA,cAEZC,cAAA,CAACC,MAAM,EAAA;AACLH,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,aAAA,EAAY,+CAA+C;AAC3DO,QAAAA,QAAQ,EAAExB,mBAAoB;QAC9ByB,IAAI,EAAE,SAANA,IAAIA,GAAA;UAAA,oBAAQN,cAAA,CAACO,IAAI,EAAA;AAACT,YAAAA,SAAS,EAAC,kBAAkB;AAACU,YAAAA,IAAI,EAAE;AAAG,WAAE,CAAC;QAAA,CAAC;AAC5DN,QAAAA,KAAK,EAAC,MAAM;QACZ,YAAA,EAAYtG,CAAC,CAAC,iDAAiD,EAAE;AAC/D6G,UAAAA,MAAM,EAAEtG;AACV,SAAC,CAAE;AACHgG,QAAAA,OAAO,EAAElB;AAAW,OACrB,CAAC,eACFe,cAAA,CAACC,MAAM,EAAA;AACL,QAAA,eAAA,EAAe5B,MAAO;AACtB,QAAA,eAAA,EAAc,QAAQ;AACtByB,QAAAA,SAAS,EAAC,yBAAyB;AACnC,QAAA,aAAA,EAAY,kDAAkD;AAC9DQ,QAAAA,IAAI,EAAEI,IAAK;AACXpD,QAAAA,GAAG,EAAEmB,SAAU;AACfyB,QAAAA,KAAK,EAAC,MAAM;QACZ,YAAA,EAAYtG,CAAC,CAAC,6CAA6C,EAAE;AAC3D+G,UAAAA,WAAW,EAAEjC;AACf,SAAC,CAAE;QACHyB,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQ7B,SAAS,CAAC,UAAAD,MAAM,EAAA;AAAA,YAAA,OAAI,CAACA,MAAM;UAAA,CAAA,CAAC;QAAA,CAAC;AAC5CuC,QAAAA,WAAW,EAAErB,qBAAsB;QAAAQ,QAAA,eAEnCC,cAAA,CAACa,UAAU,EAAA;AACT,UAAA,aAAA,EAAY,wDAAwD;AACpEX,UAAAA,KAAK,EAAC,IAAI;AAAAH,UAAAA,QAAA,EAETrB;SACS;AAAC,OACP,CAAC,eACTsB,cAAA,CAACc,UAAU,EAAAC,eAAA,CAAA;AACTjB,QAAAA,SAAS,EAAC,oBAAoB;AAC9BkB,QAAAA,YAAY,EAAEvD,YAAa;AAC3BwD,QAAAA,YAAY,EAAE3B,gBAAiB;AAC/B4B,QAAAA,IAAI,EAAE7C,MAAO;AACb8C,QAAAA,SAAS,EAAC,UAAU;AACpB7D,QAAAA,GAAG,EAAEiB,aAAc;AACnB6C,QAAAA,KAAK,EAAE3D,YAAa;AACpB4D,QAAAA,QAAQ,EAAE3D,eAAgB;AAC1B4D,QAAAA,YAAY,EAAEhD;AAAU,OAAA,EAAAyC,eAAA,CAAA;AAClB5G,QAAAA,MAAM,EAANA;AAAM,OAAA,EAAKyD,UAAU,CAAA,CAC5B,CAAC,eACFoC,cAAA,CAACC,MAAM,EAAA;AACLH,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,aAAA,EAAY,2CAA2C;AACvDO,QAAAA,QAAQ,EAAEtB,oBAAqB;QAC/BuB,IAAI,EAAE,SAANA,IAAIA,GAAA;UAAA,oBAAQN,cAAA,CAACuB,KAAK,EAAA;AAACzB,YAAAA,SAAS,EAAC,kBAAkB;AAACU,YAAAA,IAAI,EAAE;AAAG,WAAE,CAAC;QAAA,CAAC;AAC7DN,QAAAA,KAAK,EAAC,MAAM;QACZ,YAAA,EAAYtG,CAAC,CAAC,6CAA6C,EAAE;AAC3D6G,UAAAA,MAAM,EAAEtG;AACV,SAAC,CAAE;AACHgG,QAAAA,OAAO,EAAEhB;AAAO,OACjB,CAAC;AAAA,KACC,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;ACnHD,IAAMqC,MAAM,GAAG,SAATA,MAAMA,CAAA3G,IAAA,EAQN;AAAA,EAAA,IAPJ4G,WAAW,GAAA5G,IAAA,CAAX4G,WAAW;IACXC,YAAY,GAAA7G,IAAA,CAAZ6G,YAAY;IACZC,eAAe,GAAA9G,IAAA,CAAf8G,eAAe;IACfjE,eAAe,GAAA7C,IAAA,CAAf6C,eAAe;IACfD,YAAY,GAAA5C,IAAA,CAAZ4C,YAAY;IACZmE,mBAAmB,GAAA/G,IAAA,CAAnB+G,mBAAmB;IACnBjE,UAAU,GAAA9C,IAAA,CAAV8C,UAAU;AAEV,EAAA,IAAAI,eAAA,GAAcC,2BAAc,EAAE;IAAtBpE,CAAC,GAAAmE,eAAA,CAADnE,CAAC;AACT,EAAA,IAAQiI,IAAI,GAAeC,QAAQ,CAA3BD,IAAI;IAAEE,QAAQ,GAAKD,QAAQ,CAArBC,QAAQ;AAEtB,EAAA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,MAAM,EAAI;IACpCN,eAAe,CAACM,MAAM,CAAC;IACvBR,WAAW,CAAClE,OAAO,CAAC2E,QAAQ,CAACC,UAAU,CAACF,MAAM,CAAC/H,gBAAgB,CAAC;EAClE,CAAC;AAED,EAAA,IAAMkI,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAA;AAAA,IAAA,IAAAC,oBAAA;AAAA,IAAA,OAC1BZ,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,IAAA,CAAAY,oBAAA,GAAXZ,WAAW,CAAElE,OAAO,MAAA,IAAA,IAAA8E,oBAAA,KAAA,MAAA,IAAA,CAAAA,oBAAA,GAApBA,oBAAA,CAAsBH,QAAQ,MAAA,IAAA,IAAAG,oBAAA,KAAA,MAAA,GAAA,MAAA,GAA9BA,oBAAA,CAAgCC,QAAQ,CAAC7E,YAAY,CAACpC,MAAM,CAAC,YAAY,CAAC,CAAC;AAAA,EAAA,CAAA;AAE7EkH,EAAAA,eAAS,CAAC,YAAM;IACdC,UAAU,CAACJ,sBAAsB,CAAC;AACpC,EAAA,CAAC,EAAE,CAAC3E,YAAY,CAAC,CAAC;AAElB,EAAA,oBACEoC,eAAA,CAAA,KAAA,EAAA;IACE,YAAA,EAAYjG,CAAC,CAAC,mDAAmD,CAAE;AACnEkG,IAAAA,SAAS,EAAC,cAAc;AACxBM,IAAAA,IAAI,EAAC,OAAO;IAAAL,QAAA,EAAA,cAEZC,cAAA,CAACxC,gBAAgB,EAAA;AACTC,MAAAA,YAAY,EAAZA,YAAY;AAAEC,MAAAA,eAAe,EAAfA,eAAe;AAAEC,MAAAA,UAAU,EAAVA,UAAU;AAC/C8E,MAAAA,iBAAiB,EAAEC,UAAI,CAAC,YAAY,CAAE;MACtCvI,MAAM,EAAEuH,YAAY,CAACvH;AAAO,KAC7B,CAAC,EACDwI,MAAM,CAACC,IAAI,CAAChB,mBAAmB,CAAC,CAAC9E,MAAM,GAAG,CAAC,iBAC1CkD,cAAA,CAAC8B,QAAQ,EAAA;AACPe,MAAAA,WAAW,EAAC,WAAW;AACvB5I,MAAAA,KAAK,EAAE6I,oBAAU,CAACpB,YAAY,CAACzH,KAAK,CAAE;AACtC8I,MAAAA,WAAW,EAAE;AACX,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,YAAY,EAAEnJ,CAAC,CAAC,+CAA+C,EAAE;AAC/DoJ,UAAAA,IAAI,EAAEF,oBAAU,CAACpB,YAAY,CAACzH,KAAK;SACpC;OACD;MAAA8F,QAAA,eAEFC,cAAA,CAAC6B,IAAI,EAAA;QAAA9B,QAAA,EACFkD,YAAM,CAACrB,mBAAmB,CAAC,CAACsB,GAAG,CAAC,UAACjB,MAAM,EAAEkB,GAAG,EAAA;AAAA,UAAA,oBAC3CnD,cAAA,CAAC+B,QAAQ,CAAC9B,MAAM,EAAA;YACdmD,QAAQ,EAAE1B,YAAY,KAAKO,MAAO;YAElC9B,OAAO,EAAE,SAATA,OAAOA,GAAA;cAAA,OAAQ6B,mBAAmB,CAACC,MAAM,CAAC;YAAA,CAAC;AAAAlC,YAAAA,QAAA,EAE1C+C,oBAAU,CAACb,MAAM,CAAChI,KAAK;AAAC,WAAA,EAHpBkJ,GAIU,CAAC;QAAA,CACnB;OACG;AAAC,KACC,CACX;AAAA,GACE,CAAC;AAEV,CAAC;;;;;ACjDD,IAAME,SAAS,GAAGC,OAAO,CAACC,GAAG,EAAE,IAAI,KAAK;AAExC,IAAMC,YAAY,gBAAGC,gBAAU,CAC7B,UAAA5I,IAAA,EAgBEyC,GAAG,EACA;AAAA,EAAA,IAAAoG,gBAAA,GAAA7I,IAAA,CAfD8I,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG3J,YAAY,GAAA2J,gBAAA;IAAAE,WAAA,GAAA/I,IAAA,CAC1BgJ,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,WAAA;IAAAE,oBAAA,GAAAjJ,IAAA,CACXkJ,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAGE,cAAI,GAAAF,oBAAA;IAAAG,qBAAA,GAAApJ,IAAA,CACtBqJ,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAGD,cAAI,GAAAC,qBAAA;IAAAE,oBAAA,GAAAtJ,IAAA,CACvBuJ,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,oBAAA;IAAAE,qBAAA,GAAAxJ,IAAA,CACpByJ,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,eAAA,GAAA1J,IAAA,CACtB8C,UAAU;IAAVA,UAAU,GAAA4G,eAAA,KAAA,MAAA,GAAG;AAAE5F,MAAAA,KAAK,EAAE,IAAI;AAAEC,MAAAA,GAAG,EAAE;AAAK,KAAC,GAAA2F,eAAA;IAAAC,iBAAA,GAAA3J,IAAA,CACvC4J,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAGR,cAAI,GAAAQ,iBAAA;IACnBE,YAAY,GAAA7J,IAAA,CAAZ6J,YAAY;IACZC,aAAa,GAAA9J,IAAA,CAAb8J,aAAa;IAAAC,eAAA,GAAA/J,IAAA,CACbgK,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAClBE,MAAM,GAAAjK,IAAA,CAANiK,MAAM;AACHlH,IAAAA,UAAU,GAAAC,wBAAA,CAAAhD,IAAA,EAAAiD,SAAA,CAAA;AAIf,EAAA,IAAM8D,mBAAmB,GAAG+B,WAAW,IAAI5J,YAAY;AAEvD,EAAA,IAAMgL,WAAW,GACfpC,MAAM,CAACM,MAAM,CAACrB,mBAAmB,CAAC,CAACoD,IAAI,CAACtC,UAAI,CAAC,SAAS,CAAC,CAAC,IACxDd,mBAAmB,CAACe,MAAM,CAACC,IAAI,CAAChB,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D,EAAA,IAAA3D,SAAA,GAAwCC,cAAQ,CAAC6G,WAAW,CAAC;IAAA5G,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAtDyD,IAAAA,YAAY,GAAAvD,UAAA,CAAA,CAAA,CAAA;AAAEwD,IAAAA,eAAe,GAAAxD,UAAA,CAAA,CAAA,CAAA;AAEpC,EAAA,IAAA8G,UAAA,GAAwC/G,cAAQ,CAAC3C,WAAK,EAAE,CAAC;IAAA2J,UAAA,GAAA9G,cAAA,CAAA6G,UAAA,EAAA,CAAA,CAAA;AAAlDxH,IAAAA,YAAY,GAAAyH,UAAA,CAAA,CAAA,CAAA;AAAExH,IAAAA,eAAe,GAAAwH,UAAA,CAAA,CAAA,CAAA;AAEpC,EAAA,IAAAnH,eAAA,GAAcC,2BAAc,EAAE;IAAtBpE,CAAC,GAAAmE,eAAA,CAADnE,CAAC;EAET,IAAMuL,mBAAmB,GAAG/K,aAAa,CAAC0K,MAAM,CAAC,IAAI,EAAE;AAEvD,EAAA,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG5K,IAAI,EAAI;IAC/BkD,eAAe,CAAC,UAAA2H,QAAQ,EAAI;AAC1B,MAAA,IAAMC,OAAO,GAAG,OAAO9K,IAAI,KAAK,UAAU,GAAGA,IAAI,CAAC6K,QAAQ,CAAC,GAAG7K,IAAI;MAClEiK,YAAY,CAACa,OAAO,CAAC;AAErB,MAAA,OAAOA,OAAO;AAChB,IAAA,CAAC,CAAC;EACJ,CAAC;AACD,EAAA,IAAMC,kBAAkB,GAAG/G,YAAM,CAAC,IAAI,CAAC;AACvC,EAAA,IAAMiD,WAAW,GAAGjD,YAAM,EAAE;AAE5B+D,EAAAA,eAAS,CAAC,YAAM;IAAA,IAAAF,oBAAA,EAAAmD,qBAAA;IACd,IAAMC,WAAW,IAAApD,oBAAA,GAAGZ,WAAW,CAAClE,OAAO,MAAA,IAAA,IAAA8E,oBAAA,KAAA,MAAA,IAAA,CAAAmD,qBAAA,GAAnBnD,oBAAA,CAAqBqD,MAAM,MAAA,IAAA,IAAAF,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,qBAAA,CAAAG,IAAA,CAAAtD,oBAA8B,CAAC;AACnD,IAAA,IAAMuD,cAAc,GAAGL,kBAAkB,CAAChI,OAAO;AAEjD,IAAA,IAAI,CAACkI,WAAW,IAAI,CAACG,cAAc,EAAE,OAAOC,SAAS;AAErD,IAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;MACzBL,WAAW,CAACM,UAAU,EAAE;IAC1B,CAAC;AAED,IAAA,IAAMC,QAAQ,GAAG,IAAIC,cAAc,CAACH,YAAY,CAAC;AAEjDE,IAAAA,QAAQ,CAACE,OAAO,CAACN,cAAc,CAAC;AAEhC,IAAA,OAAO,YAAM;MACXI,QAAQ,CAACG,UAAU,EAAE;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,oBACEtG,eAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,UAAU;AACpB,IAAA,aAAA,EAAY,eAAe;AAC3BxC,IAAAA,GAAG,EAAEiI,kBAAmB;AAAAxF,IAAAA,QAAA,GAEvB,CAAC8E,UAAU,iBACV7E,cAAA,CAACoG,SAAS,EAAA;MACRC,eAAe,eACbrG,cAAA,CAACa,UAAU,EAAA;AAACX,QAAAA,KAAK,EAAC,IAAI;AAAAH,QAAAA,QAAA,EACnBtC,YAAY,CAACpC,MAAM,CAAC,YAAY;AAAC,OACxB,CACb;AACDiL,MAAAA,gBAAgB,eACdtG,cAAA,CAACwB,MAAM,EAAAxH,eAAA,CAAA;AAEHyH,QAAAA,WAAW,EAAXA,WAAW;AACXG,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBnE,QAAAA,YAAY,EAAZA,YAAY;AACZiE,QAAAA,YAAY,EAAZA,YAAY;AACZhE,QAAAA,eAAe,EAAfA,eAAe;AACfiE,QAAAA,eAAe,EAAfA,eAAe;AACfhE,QAAAA,UAAU,EAAVA;AAAU,OAAA,EAAA,iBAAA,EAEKyH,gBAAgB,CAClC;AACF,KACF,CACF,eACDpF,cAAA,CAACuG,YAAY,EAAAxF,aAAA,CAAA;MACXyF,UAAU,EAAA,IAAA;AACVC,MAAAA,UAAU,EAAE7M,CAAC,CAAC,oCAAoC,CAAE;AACpD8M,MAAAA,SAAS,EAAE3C,eAAgB;AAC3B4C,MAAAA,mBAAmB,EAAC,KAAK;AACzBC,MAAAA,gBAAgB,EAAE,KAAM;AACxBC,MAAAA,UAAU,EAAE3C,gBAAiB;AAC7B4C,MAAAA,aAAa,EAAE,KAAM;AACrBC,MAAAA,MAAM,EAAC,MAAM;MACbC,WAAW,EAAEtF,YAAY,CAACxH,gBAAiB;AAC3C+M,MAAAA,OAAO,EAAE,CAACC,aAAa,EAAEC,cAAc,EAAEC,iBAAiB,CAAE;AAC5D9J,MAAAA,GAAG,EAAEX,SAAS,CAACW,GAAG,EAAEmE,WAAW;KAAE,EAAAV,aAAA,CAAAA,aAAA,CAAA;AAE/BuD,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBI,MAAAA,YAAY,EAAZA,YAAY;AACZrB,MAAAA,SAAS,EAATA,SAAS;AACTe,MAAAA,eAAe,EAAfA,eAAe;AACfO,MAAAA,aAAa,EAAbA,aAAa;AACbd,MAAAA,MAAM,EAANA,MAAM;AACNiB,MAAAA,MAAM,EAANA;AAAM,KAAA,EACHK,mBAAmB,CAAA,EACnBvH,UAAU,CAAA,CAEhB,CAAC;AAAA,GACC,CAAC;AAEV,CACF;AAEA4F,YAAY,CAAC6D,WAAW,GAAG,cAAc;;;;"}
@@ -15,7 +15,6 @@ var Input = require('@bigbinary/neetoui/Input');
15
15
  var Switch = require('@bigbinary/neetoui/Switch');
16
16
  var Button = require('@bigbinary/neetoui/Button');
17
17
  var ramda = require('ramda');
18
- var CardLayout = require('./CardLayout.js');
19
18
  var CopyToClipboardButton = require('./CopyToClipboardButton.js');
20
19
  var jsxRuntime = require('react/jsx-runtime');
21
20
  require('classnames');
@@ -155,32 +154,27 @@ var SharePaneBody = function SharePaneBody(_ref) {
155
154
  generateUrls(initialTime, initialParams);
156
155
  }, [isOpen, showHours, currentTimestamp, generateUrls]);
157
156
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
158
- className: "flex w-full flex-col gap-y-6",
159
- children: [/*#__PURE__*/jsxRuntime.jsx(CardLayout, {
160
- title: t("neetoMolecules.shareRecording.configureUrlParameters"),
161
- actionBlock: /*#__PURE__*/jsxRuntime.jsxs("div", {
162
- className: "flex items-center gap-x-2",
163
- children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
164
- "data-testid": "regenerate-url-button",
165
- label: t("neetoMolecules.shareRecording.regenerateUrl"),
166
- onClick: handleRegenerateUrl
167
- }), /*#__PURE__*/jsxRuntime.jsx(Button, {
168
- "data-testid": "cancel-button",
169
- label: t("neetoMolecules.shareRecording.cancel"),
170
- style: "secondary",
171
- onClick: onClose
172
- })]
173
- }),
174
- description: t("neetoMolecules.shareRecording.configureUrlParametersDescription"),
157
+ className: "flex w-full flex-col gap-8",
158
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
159
+ className: "neeto-ui-border-gray-200 flex flex-col gap-8 border-b px-6 pb-8",
175
160
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
176
- className: "flex flex-col gap-y-4",
161
+ className: "flex w-full flex-col gap-6",
177
162
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
178
- className: "flex items-center gap-x-2",
163
+ className: "flex flex-col gap-y-2",
164
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
165
+ style: "h4",
166
+ children: t("neetoMolecules.shareRecording.configureUrlParameters")
167
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
168
+ style: "body3",
169
+ children: t("neetoMolecules.shareRecording.configureUrlParametersDescription")
170
+ })]
171
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
172
+ className: "flex items-center gap-x-3",
179
173
  children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
180
174
  children: t("neetoMolecules.shareRecording.startVideoAt")
181
175
  }), /*#__PURE__*/jsxRuntime.jsx(Input, {
182
176
  unlimitedChars: true,
183
- className: "w-40",
177
+ className: "w-full max-w-32",
184
178
  "data-testid": "time-input",
185
179
  placeholder: showHours ? "HH:MM:SS" : "MM:SS",
186
180
  value: rawInput,
@@ -188,7 +182,8 @@ var SharePaneBody = function SharePaneBody(_ref) {
188
182
  onChange: handlePlaybackTimestampChange,
189
183
  onKeyDown: handleKeyDown
190
184
  })]
191
- }), enableAutoplayAndMuteFlags && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
185
+ }), enableAutoplayAndMuteFlags && /*#__PURE__*/jsxRuntime.jsxs("div", {
186
+ className: "flex flex-col gap-4",
192
187
  children: [/*#__PURE__*/jsxRuntime.jsx(Switch, {
193
188
  checked: muted,
194
189
  "data-testid": "muted-checkbox",
@@ -208,33 +203,55 @@ var SharePaneBody = function SharePaneBody(_ref) {
208
203
  return handleFlagsChange("autoplay", e.target.checked);
209
204
  }
210
205
  })]
206
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
207
+ className: "mt-2 flex items-center gap-x-3",
208
+ children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
209
+ "data-testid": "regenerate-url-button",
210
+ label: t("neetoMolecules.shareRecording.regenerateUrl"),
211
+ size: "small",
212
+ onClick: handleRegenerateUrl
213
+ }), /*#__PURE__*/jsxRuntime.jsx(Button, {
214
+ "data-testid": "cancel-button",
215
+ label: t("neetoMolecules.shareRecording.cancel"),
216
+ size: "small",
217
+ style: "text",
218
+ onClick: onClose
219
+ })]
211
220
  })]
212
221
  })
213
222
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
214
- className: "flex flex-col gap-y-2",
215
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
216
- style: "h3",
217
- children: t("neetoMolecules.shareRecording.generatedUrls")
218
- }), shareLinks.map(function (shareLink, index) {
219
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
220
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full items-center justify-between gap-1 p-2",
221
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
222
- className: "min-w-0 flex-1 break-words",
223
- style: "body2",
224
- children: shareLink
225
- }), /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
226
- className: "flex-shrink-0",
227
- style: "secondary",
228
- value: shareLink
229
- })]
230
- }, index);
231
- })]
232
- }), Preview && /*#__PURE__*/jsxRuntime.jsxs("div", {
233
- className: "flex flex-col gap-y-2 pt-2",
234
- children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
235
- children: t("neetoMolecules.shareRecording.preview")
236
- }), /*#__PURE__*/jsxRuntime.jsx(Preview, {
237
- currentPlaybackTime: currentPlaybackTime
223
+ className: "flex flex-col gap-6 px-6",
224
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
225
+ className: "flex flex-col gap-y-2",
226
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
227
+ style: "h4",
228
+ children: t("neetoMolecules.shareRecording.generatedUrls")
229
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
230
+ className: "flex flex-col gap-y-3",
231
+ children: shareLinks.map(function (shareLink, index) {
232
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
233
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded flex w-full items-start justify-between gap-2 p-2",
234
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
235
+ className: "min-w-0 flex-1 break-words",
236
+ style: "body2",
237
+ children: shareLink
238
+ }), /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
239
+ className: "flex-shrink-0",
240
+ size: "small",
241
+ style: "text",
242
+ value: shareLink
243
+ })]
244
+ }, index);
245
+ })
246
+ })]
247
+ }), Preview && /*#__PURE__*/jsxRuntime.jsxs("div", {
248
+ className: "flex flex-col gap-y-2",
249
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
250
+ style: "h4",
251
+ children: t("neetoMolecules.shareRecording.preview")
252
+ }), /*#__PURE__*/jsxRuntime.jsx(Preview, {
253
+ currentPlaybackTime: currentPlaybackTime
254
+ })]
238
255
  })]
239
256
  })]
240
257
  });
@@ -275,7 +292,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
275
292
  children: t("neetoMolecules.shareRecording.title")
276
293
  })
277
294
  }), /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
278
- className: "flex flex-col gap-y-2",
295
+ className: "neeto-ui-border-gray-200 border-t px-0 py-6",
279
296
  children: isLoading ? /*#__PURE__*/jsxRuntime.jsx(Spinner, {
280
297
  className: "mx-auto"
281
298
  }) : /*#__PURE__*/jsxRuntime.jsx(SharePaneBody, {
@@ -1 +1 @@
1
- {"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect, useCallback } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Switch, Button } from \"neetoui\";\nimport { assoc, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CardLayout from \"components/CardLayout\";\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview: Preview,\n enableAutoplayAndMuteFlags,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [params, setParams] = useState({\n muted: false,\n autoplay: false,\n });\n\n const { muted, autoplay } = params;\n\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const handleFlagsChange = (key, value) => setParams(assoc(key, value));\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (e.key !== \"Enter\") return;\n formatAndSetTime();\n };\n\n const generateUrls = useCallback(\n (timeInSeconds, urlParams) => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n time: timeInSeconds,\n muted: urlParams.muted ? 1 : undefined,\n autoplay: urlParams.autoplay ? 1 : undefined,\n })\n );\n setShareLinks(playbackUrls);\n },\n [recordingUrls]\n );\n\n const handleRegenerateUrl = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n generateUrls(timeInSeconds, params);\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n const initialTime = currentTimestamp > 0 ? currentTimestamp : 0;\n const initialParams = { muted: false, autoplay: false };\n\n setCurrentPlaybackTime(initialTime);\n setRawInput(formatTime(initialTime, showHours));\n setParams(initialParams);\n generateUrls(initialTime, initialParams);\n }, [isOpen, showHours, currentTimestamp, generateUrls]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-6\">\n <CardLayout\n title={t(\"neetoMolecules.shareRecording.configureUrlParameters\")}\n actionBlock={\n <div className=\"flex items-center gap-x-2\">\n <Button\n data-testid=\"regenerate-url-button\"\n label={t(\"neetoMolecules.shareRecording.regenerateUrl\")}\n onClick={handleRegenerateUrl}\n />\n <Button\n data-testid=\"cancel-button\"\n label={t(\"neetoMolecules.shareRecording.cancel\")}\n style=\"secondary\"\n onClick={onClose}\n />\n </div>\n }\n description={t(\n \"neetoMolecules.shareRecording.configureUrlParametersDescription\"\n )}\n >\n <div className=\"flex flex-col gap-y-4\">\n <div className=\"flex items-center gap-x-2\">\n <Label>{t(\"neetoMolecules.shareRecording.startVideoAt\")}</Label>\n <Input\n unlimitedChars\n className=\"w-40\"\n data-testid=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {enableAutoplayAndMuteFlags && (\n <>\n <Switch\n checked={muted}\n data-testid=\"muted-checkbox\"\n id=\"muted\"\n label={t(\"neetoMolecules.shareRecording.muted\")}\n name=\"muted\"\n onChange={e => handleFlagsChange(\"muted\", e.target.checked)}\n />\n <Switch\n checked={autoplay}\n data-testid=\"autoplay-checkbox\"\n id=\"autoplay\"\n label={t(\"neetoMolecules.shareRecording.autoplay\")}\n name=\"autoplay\"\n onChange={e => handleFlagsChange(\"autoplay\", e.target.checked)}\n />\n </>\n )}\n </div>\n </CardLayout>\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h3\">\n {t(\"neetoMolecules.shareRecording.generatedUrls\")}\n </Typography>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Typography className=\"min-w-0 flex-1 break-words\" style=\"body2\">\n {shareLink}\n </Typography>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n </div>\n {Preview && (\n <div className=\"flex flex-col gap-y-2 pt-2\">\n <Label>{t(\"neetoMolecules.shareRecording.preview\")}</Label>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </div>\n );\n};\n\nexport default SharePaneBody;\n","import { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n enableAutoplayAndMuteFlags = false,\n size = \"large\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, size, ...otherProps }}\n data-testid=\"share-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col gap-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{\n enableAutoplayAndMuteFlags,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview,\n totalDuration,\n }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n /**\n * Size of the pane.\n */\n size: PropTypes.oneOf([\"extraLarge\", \"large\", \"small\"]),\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","onClose","Preview","preview","enableAutoplayAndMuteFlags","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","muted","autoplay","_useState6","params","setParams","_useState7","_useState8","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","handleFlagsChange","key","assoc","formatAndSetTime","handleKeyDown","generateUrls","useCallback","urlParams","playbackUrls","recordingUrl","buildUrl","time","handleRegenerateUrl","useEffect","not","initialTime","initialParams","_jsxs","className","children","_jsx","CardLayout","title","actionBlock","Button","label","onClick","style","description","Label","Input","unlimitedChars","placeholder","onBlur","onChange","onKeyDown","_Fragment","Switch","checked","id","name","Typography","shareLink","index","CopyToClipboardButton","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","_ref$isLoading","isLoading","_ref$enableAutoplayAn","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","Header","Body","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect, useCallback } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Switch, Button } from \"neetoui\";\nimport { assoc, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview: Preview,\n enableAutoplayAndMuteFlags,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [params, setParams] = useState({\n muted: false,\n autoplay: false,\n });\n\n const { muted, autoplay } = params;\n\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const handleFlagsChange = (key, value) => setParams(assoc(key, value));\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (e.key !== \"Enter\") return;\n formatAndSetTime();\n };\n\n const generateUrls = useCallback(\n (timeInSeconds, urlParams) => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n time: timeInSeconds,\n muted: urlParams.muted ? 1 : undefined,\n autoplay: urlParams.autoplay ? 1 : undefined,\n })\n );\n setShareLinks(playbackUrls);\n },\n [recordingUrls]\n );\n\n const handleRegenerateUrl = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n generateUrls(timeInSeconds, params);\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n const initialTime = currentTimestamp > 0 ? currentTimestamp : 0;\n const initialParams = { muted: false, autoplay: false };\n\n setCurrentPlaybackTime(initialTime);\n setRawInput(formatTime(initialTime, showHours));\n setParams(initialParams);\n generateUrls(initialTime, initialParams);\n }, [isOpen, showHours, currentTimestamp, generateUrls]);\n\n return (\n <div className=\"flex w-full flex-col gap-8\">\n <div className=\"neeto-ui-border-gray-200 flex flex-col gap-8 border-b px-6 pb-8\">\n <div className=\"flex w-full flex-col gap-6\">\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h4\">\n {t(\"neetoMolecules.shareRecording.configureUrlParameters\")}\n </Typography>\n <Typography style=\"body3\">\n {t(\n \"neetoMolecules.shareRecording.configureUrlParametersDescription\"\n )}\n </Typography>\n </div>\n <div className=\"flex items-center gap-x-3\">\n <Label>{t(\"neetoMolecules.shareRecording.startVideoAt\")}</Label>\n <Input\n unlimitedChars\n className=\"w-full max-w-32\"\n data-testid=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {enableAutoplayAndMuteFlags && (\n <div className=\"flex flex-col gap-4\">\n <Switch\n checked={muted}\n data-testid=\"muted-checkbox\"\n id=\"muted\"\n label={t(\"neetoMolecules.shareRecording.muted\")}\n name=\"muted\"\n onChange={e => handleFlagsChange(\"muted\", e.target.checked)}\n />\n <Switch\n checked={autoplay}\n data-testid=\"autoplay-checkbox\"\n id=\"autoplay\"\n label={t(\"neetoMolecules.shareRecording.autoplay\")}\n name=\"autoplay\"\n onChange={e => handleFlagsChange(\"autoplay\", e.target.checked)}\n />\n </div>\n )}\n <div className=\"mt-2 flex items-center gap-x-3\">\n <Button\n data-testid=\"regenerate-url-button\"\n label={t(\"neetoMolecules.shareRecording.regenerateUrl\")}\n size=\"small\"\n onClick={handleRegenerateUrl}\n />\n <Button\n data-testid=\"cancel-button\"\n label={t(\"neetoMolecules.shareRecording.cancel\")}\n size=\"small\"\n style=\"text\"\n onClick={onClose}\n />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-6 px-6\">\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h4\">\n {t(\"neetoMolecules.shareRecording.generatedUrls\")}\n </Typography>\n <div className=\"flex flex-col gap-y-3\">\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded flex w-full items-start justify-between gap-2 p-2\"\n key={index}\n >\n <Typography\n className=\"min-w-0 flex-1 break-words\"\n style=\"body2\"\n >\n {shareLink}\n </Typography>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={shareLink}\n />\n </div>\n ))}\n </div>\n </div>\n {Preview && (\n <div className=\"flex flex-col gap-y-2\">\n <Typography style=\"h4\">\n {t(\"neetoMolecules.shareRecording.preview\")}\n </Typography>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default SharePaneBody;\n","import { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n enableAutoplayAndMuteFlags = false,\n size = \"large\",\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, size, ...otherProps }}\n data-testid=\"share-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"neeto-ui-border-gray-200 border-t px-0 py-6\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{\n enableAutoplayAndMuteFlags,\n getCurrentTimestamp,\n isOpen,\n onClose,\n preview,\n totalDuration,\n }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n /**\n * Size of the pane.\n */\n size: PropTypes.oneOf([\"extraLarge\", \"large\", \"small\"]),\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","onClose","Preview","preview","enableAutoplayAndMuteFlags","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","muted","autoplay","_useState6","params","setParams","_useState7","_useState8","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","handleFlagsChange","key","assoc","formatAndSetTime","handleKeyDown","generateUrls","useCallback","urlParams","playbackUrls","recordingUrl","buildUrl","time","handleRegenerateUrl","useEffect","not","initialTime","initialParams","_jsxs","className","children","_jsx","Typography","style","Label","Input","unlimitedChars","placeholder","onBlur","onChange","onKeyDown","Switch","checked","id","label","name","Button","size","onClick","shareLink","index","CopyToClipboardButton","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","_ref$isLoading","isLoading","_ref$enableAutoplayAn","_ref$size","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","Header","Body","Spinner"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -93,6 +93,7 @@ declare const CalendarView: React.FC<{
93
93
  end: Dayjs | Date | null;
94
94
  };
95
95
  hideHeader?: boolean;
96
+ locale?: string;
96
97
  }>;
97
98
 
98
99
  export { CalendarView as default };