@bigbinary/neeto-molecules 3.14.2 → 3.14.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.js","sources":["../../src/components/Schedule/constants.js","../../src/components/Schedule/ScheduleContext.js","../../src/components/Schedule/dayjsExtended/constants.js","../../src/components/Schedule/Form/constants.js","../../src/components/Schedule/dayjsExtended/range.js","../../src/components/Schedule/dayjsExtended/index.js","../../src/components/Schedule/utils.js","../../src/components/Schedule/DisplayAvailability.jsx","../../src/components/Schedule/Form/utils.js","../../src/components/Schedule/Form/ScheduleRow.jsx","../../src/components/Schedule/Form/index.jsx","../../src/components/Schedule/Fields.jsx","../../src/components/Schedule/Header.jsx","../../src/components/Schedule/index.jsx"],"sourcesContent":["export const DEFAULT_BOOKED_SLOTS = [\n { startTime: \"09:00 AM\", endTime: \"05:00 PM\" },\n];\n\nexport const MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;\n\nexport const DAYS = [\n \"sunday\",\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n];\n\nexport const DEFAULT_SLOT_INTERVAL = 30;\n","import { createContext } from \"react\";\n\n// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component\n// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management\nconst ScheduleContext = createContext({ allowAddPeriod: true, firstDay: 0 });\n\nexport default ScheduleContext;\n","export const INTERVALS = [\n \"year\",\n \"quarter\",\n \"month\",\n \"week\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n];\n","export const REMOVE_SELECT_DOWN_ARROW = {\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n};\n\nexport const BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {\n singleValue: (base, state) => ({\n ...base,\n color: state.selectProps.menuIsOpen ? \"#c2c8cc\" : base.color,\n }),\n};\n\nexport const SLOT_TIME_FORMAT = \"hh:mm A\";\n\nexport const END_OF_DAY = \"11:59 PM\";\n","import { INTERVALS } from \"./constants\";\n\nimport { SLOT_TIME_FORMAT } from \"../Form/constants\";\n\nexport class DayjsRange {\n constructor(startDate, endDate) {\n const { s, e } =\n startDate > endDate\n ? { s: endDate, e: startDate }\n : { s: startDate, e: endDate };\n\n this.startDate = s;\n this.endDate = e;\n }\n\n isValidRange() {\n return this.startDate.isValid() && this.endDate.isValid();\n }\n\n isOverlap(other) {\n if (!(other instanceof DayjsRange) || !other.isValidRange()) {\n return false;\n }\n\n return this.startDate < other.endDate && this.endDate > other.startDate;\n }\n\n toArrayOfTimeIntervals(interval = 15) {\n let startTime = this.startDate;\n const endTime = this.endDate.add(1, \"days\");\n const allTimes = [];\n\n while (startTime < endTime) {\n allTimes.push(startTime.format(SLOT_TIME_FORMAT));\n startTime = startTime.add(interval, \"minutes\");\n }\n\n return allTimes;\n }\n}\n\nexport default (_, __, d) => {\n d.range = (start, end) => new DayjsRange(d(start), d(end));\n};\n\nexport function extendDayjs(dayjs) {\n dayjs.range = function range(start, end) {\n const dayjsObject = this;\n\n if (typeof start === \"string\" && INTERVALS.includes(start)) {\n return new DayjsRange(\n dayjs(dayjsObject).startOf(start),\n dayjs(dayjsObject).endOf(start)\n );\n }\n\n return new DayjsRange(start, end);\n };\n\n dayjs.range.constructor = DayjsRange;\n\n // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed\n dayjs.timeIntervalsForDay = interval => {\n const [startOfDay, endOfDay] = [\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n ];\n\n const allIntervalsForADay = dayjs\n .range(startOfDay, endOfDay)\n .toArrayOfTimeIntervals(interval);\n\n return allIntervalsForADay;\n };\n\n return dayjs;\n}\n","import { dayjs } from \"neetocommons/utils\";\n\nimport { extendDayjs } from \"./range\";\n\n// Add range and overlap functions to dayjs\nconst dayjsExtended = extendDayjs(dayjs);\n\nexport default dayjsExtended;\n","import { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport i18next from \"i18next\";\nimport { findIndexBy, isNotPresent } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport { prop, assoc, fromPairs, map, pick } from \"ramda\";\nimport * as yup from \"yup\";\n\nimport { DAYS } from \"./constants\";\nimport dayjsExtended from \"./dayjsExtended\";\nimport { SLOT_TIME_FORMAT } from \"./Form/constants\";\n\nyup.addMethod(yup.array, \"ensureSlotsCantOverlap\", function () {\n return this.test(\"ensureSlotsCantOverlap\", function (periods) {\n const {\n exists: isOverlapping,\n range1,\n range2,\n } = checkForOverlapBetweenPeriods(periods);\n\n if (!isOverlapping) return true;\n\n const { firstIndex, secondIndex } = findIndicesOfOverlappingRangesInPeriods(\n { range1, range2, periods }\n );\n\n const firstError = this.createError({\n path: `${this.path}[${firstIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range2.startDate),\n end: timeFormat.time(range2.endDate),\n }),\n });\n\n const secondError = this.createError({\n path: `${this.path}[${secondIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range1.startDate),\n end: timeFormat.time(range1.endDate),\n }),\n });\n\n return new yup.ValidationError([firstError, secondError]);\n });\n});\n\nconst isFromAndToSame = (startTime, endTime) => {\n if (!startTime || !endTime) return true;\n\n return dayjs(startTime, SLOT_TIME_FORMAT).isSame(\n dayjs(endTime, SLOT_TIME_FORMAT)\n );\n};\n\nexport const sortDays = chosenIndex => {\n if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;\n\n return [...DAYS.slice(chosenIndex), ...DAYS.slice(0, chosenIndex)];\n};\n\nexport const wdayValidation = yup.object().shape({\n periods: yup\n .array()\n .of(\n yup\n .object()\n .shape({\n startTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.startTime\")\n ),\n endTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.endTime\")\n )\n .test(\n \"ensureToTimeNotBehindFromTime\",\n i18next.t(\"neetoMolecules.schedule.errors.period.isBehind\"),\n function (value) {\n const { startTime } = this.parent;\n if (isFromAndToSame(value, startTime)) return true;\n\n return isTimeBehind(startTime, value);\n }\n ),\n })\n .test(\n \"ensureTimeNotSame\",\n i18next.t(\"neetoMolecules.schedule.errors.period.sameTime\"),\n value => {\n const { startTime, endTime } = value;\n\n return !isFromAndToSame(startTime, endTime);\n }\n )\n )\n .ensureSlotsCantOverlap(),\n});\n\nexport const getScheduleValidationSchema = () =>\n yup.object().shape({\n wdays: yup\n .object()\n .shape(fromPairs(map(day => [day, wdayValidation], DAYS))),\n });\n\nexport const getUserTimeZone = () => window.globalProps?.user.timeZone;\n\nexport const getTimeZoneAndTime = () => {\n const timeZone = getUserTimeZone();\n const humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);\n\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n return `${humanReadableTimezone}: ${dayjs()\n .tz(timeZone)\n .format(SLOT_TIME_FORMAT)}`;\n};\n\nexport const isTimeBehind = (timeA, timeB) =>\n dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));\n\nexport const sortPeriodsByKey = ({ periods, key, order = \"desc\" }) =>\n periods.slice().sort((periodA, periodB) => {\n const isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);\n if (order === \"desc\") return isPeriodBehind ? 1 : -1;\n\n return isPeriodBehind ? -1 : 1;\n });\n\n/**\n * Check for overlapping between entered periods\n * @typedef {Object} Slots\n * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime\n * @param {Slots} periods - changed time periods\n * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists\n */\nexport const checkForOverlapBetweenPeriods = periods => {\n let response = { exists: false, range1: null, range2: null };\n\n if (!periods?.length) return response;\n\n const slotsSortedByStartTime = sortPeriodsByKey({\n periods,\n key: \"startTime\",\n });\n for (const [index, value] of slotsSortedByStartTime.slice(0, -1).entries()) {\n const seg1 = value;\n const seg2 = slotsSortedByStartTime[index + 1];\n const range1 = dayjsExtended.range(\n dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT)\n );\n\n const range2 = dayjsExtended.range(\n dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT)\n );\n if (range1.isOverlap(range2)) {\n response = { exists: true, range1, range2 };\n break;\n }\n }\n\n return response;\n};\n\nexport const findIndicesOfOverlappingRangesInPeriods = ({\n range1,\n range2,\n periods,\n}) => {\n const firstIndex = findIndexBy(\n { startTime: range1.startDate.format(SLOT_TIME_FORMAT) },\n periods\n );\n\n const secondIndex = periods.findIndex(\n (slot, index) =>\n index > firstIndex &&\n slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT)\n );\n\n return { firstIndex, secondIndex };\n};\n\nexport const checkIfTwoTimeZonesAreSame = (timeZone1, timeZone2) =>\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs().tz(timeZone1).format(\"Z\") === dayjs().tz(timeZone2).format(\"Z\");\n\nexport const handleCopy = ({ values, day, setFieldValue, wdaysToCopy }) => {\n const newPeriods = values.wdays[day].periods?.map(\n pick([\"startTime\", \"endTime\"])\n );\n\n if (isNotPresent(newPeriods)) return;\n\n wdaysToCopy.forEach(wday =>\n setFieldValue(`wdays.${wday}`, {\n available: true,\n periods: newPeriods.map(assoc(\"wday\", wday)),\n })\n );\n};\n\nexport const buildFormValuesArray = ({ firstDay, periods }) =>\n sortDays(firstDay).map(wday => ({\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n }));\n\nexport const buildFormValuesObject = ({ periods }) => {\n const formValues = {};\n\n DAYS.forEach(wday => {\n formValues[wday] = {\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n };\n });\n\n return formValues;\n};\n\nexport const processFormValues = (values, firstDay) => ({\n wdays: buildFormValuesArray({\n firstDay,\n periods: map(prop(\"periods\"), values.wdays),\n }),\n});\n","import { useContext } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleContext from \"./ScheduleContext\";\nimport { sortDays, sortPeriodsByKey } from \"./utils\";\n\nconst DisplayAvailability = ({ periods }) => {\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n return (\n <div className=\"w-full space-y-3\">\n {sortDays(firstDay).map(day => (\n <div\n className=\"neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start\"\n data-cy={`day-cards-${day}`}\n key={day}\n >\n <Typography\n className=\"mt-0.5 w-24 text-center sm:w-1/4 sm:text-left\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n <div className=\"flex flex-grow flex-col items-center space-y-4 sm:w-1/2\">\n {isPresent(periods[day]) ? (\n sortPeriodsByKey({\n periods: periods[day],\n key: \"startTime\",\n order: \"asc\",\n })?.map(period => (\n <div className=\"flex items-center space-x-4\" key={period.id}>\n <Typography\n className=\"w-20 text-right\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.startTime,\n \"start-time-text\"\n )}\n >\n {period.startTime}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n >\n -\n </Typography>\n <Typography\n className=\"w-20 text-left\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.endTime,\n \"start-time-text\"\n )}\n >\n {period.endTime}\n </Typography>\n </div>\n ))\n ) : (\n <Typography\n className=\"mx-8 flex-grow text-center\"\n data-cy={joinHyphenCase(day, \"unavailable-time-text\")}\n lineHeight=\"relaxed\"\n style=\"h5\"\n >\n {t(\"neetoMolecules.schedule.unavailable\")}\n </Typography>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DisplayAvailability;\n","/* eslint-disable @bigbinary/neeto/use-standard-date-time-formats */\nimport { toLabelAndValue, isNotPresent } from \"neetocist\";\nimport { uniq, pluck, difference } from \"ramda\";\n\nimport { SLOT_TIME_FORMAT, END_OF_DAY } from \"./constants\";\n\nimport dayjs from \"../dayjsExtended\";\nimport { isTimeBehind } from \"../utils\";\n\nconst buildSlotIntervals = ({ interval, bookedSlots }) => {\n const allIntervalsForADay = dayjs.timeIntervalsForDay(interval);\n allIntervalsForADay.push(END_OF_DAY);\n\n return (slotType, selectedValue = null) => {\n const uniqBookedSlots = uniq(pluck(slotType, bookedSlots));\n const slotsAvailableForBooking = difference(\n allIntervalsForADay,\n uniqBookedSlots\n );\n const slots = slotsAvailableForBooking.map(toLabelAndValue);\n\n if (!selectedValue) return slots;\n\n return sortSlots([toLabelAndValue(selectedValue), ...slots]);\n };\n};\n\nconst sortSlots = slots =>\n slots.sort((a, b) => (isTimeBehind(a[\"value\"], b[\"value\"]) ? -1 : 1));\n\nconst slotsSelectComponentDefaultValue = slot =>\n slot ? toLabelAndValue(slot) : \"\";\n\nconst padZeroes = str => (str.length % 2 === 0 ? str : `0${str}`);\n\nconst customFilter = (option, searchTerm) => {\n if (isNotPresent(searchTerm)) return true;\n\n const doesNumberMatches = option.value\n .replace(\":\", \"\")\n .startsWith(padZeroes(searchTerm.replaceAll(/\\D+/gi, \"\")));\n\n const doesAmPmMatches = option.value.includes(\n searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, \"\")\n );\n\n return doesNumberMatches && doesAmPmMatches;\n};\n\nconst roundToNearestHour = time => {\n const minutes = time.minute();\n\n if (minutes === 59) return time.startOf(\"hour\").add(1, \"hour\");\n\n return time.add(1, \"hour\");\n};\n\nconst generateNewPeriod = (periods, wday) => {\n const lastEndTime = periods[periods.length - 1].endTime;\n const newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));\n const newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, \"hour\");\n\n return {\n startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),\n endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),\n wday,\n };\n};\n\nconst addDefaultPeriod = wday => ({\n wday,\n startTime: \"09:00 AM\",\n endTime: \"05:00 PM\",\n});\n\nexport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n};\n","import { memo, useContext, useMemo } from \"react\";\n\nimport { FieldArray, ErrorMessage, useFormikContext } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n REMOVE_SELECT_DOWN_ARROW,\n BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,\n} from \"./constants\";\nimport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n} from \"./utils\";\n\nimport ScheduleContext from \"../ScheduleContext\";\n\nconst ScheduleRow = ({ day }) => {\n const { values, setFieldValue } = useFormikContext();\n const bookedSlots = values.wdays[day].periods;\n\n const { allowAddPeriod, slotInterval } = useContext(ScheduleContext);\n\n const { t } = useTranslation();\n\n const sortSlotsInterval = useMemo(\n () => buildSlotIntervals({ interval: slotInterval, bookedSlots }),\n [slotInterval, bookedSlots]\n );\n\n const handleAddRow = arrayHelpers => {\n if (isNotPresent(values.wdays[day].periods)) {\n arrayHelpers.push(addDefaultPeriod(day));\n } else {\n arrayHelpers.push(generateNewPeriod(values.wdays[day].periods, day));\n }\n setFieldValue(`wdays.${day}.available`, true);\n };\n\n const handleDeleteRow = (arrayHelpers, index) => {\n const isLastRowDeleted = values.wdays[day].periods.length === 1;\n arrayHelpers.remove(index);\n setFieldValue(`wdays.${day}.available`, !isLastRowDeleted);\n };\n\n return (\n <FieldArray\n name={`wdays.${day}.periods`}\n render={arrayHelpers => (\n <>\n {isPresent(values.wdays[day]?.periods) && (\n <div className=\"w-full space-y-2\">\n {values.wdays[day].periods?.map((period, index) => (\n <div\n className=\"flex w-full flex-col @xl:mx-auto @xl:w-80\"\n key={`wdays.${day}.periods[${index}]`}\n >\n <div\n className=\"flex items-start gap-2 @xl:gap-3\"\n data-cy=\"schedule-row\"\n >\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays.${day}.periods[${index}].startTime`}\n placeholder={t(\"neetoMolecules.schedule.startTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n options={sortSlotsInterval(\n \"startTime\",\n period?.startTime\n )}\n value={slotsSelectComponentDefaultValue(\n period?.startTime\n )}\n onChange={e =>\n setFieldValue(\n `wdays.${day}.periods[${index}].startTime`,\n e?.value || \"\"\n )\n }\n />\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays.${day}.periods[${index}].endTime`}\n options={sortSlotsInterval(\"endTime\", period?.endTime)}\n placeholder={t(\"neetoMolecules.schedule.endTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n value={slotsSelectComponentDefaultValue(period?.endTime)}\n onChange={e =>\n setFieldValue(\n `wdays.${day}.periods[${index}].endTime`,\n e?.value || \"\"\n )\n }\n />\n <Button\n className=\"flex-shrink-0 self-start\"\n data-cy=\"delete-period-button\"\n data-testid=\"delete-period-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleDeleteRow(arrayHelpers, index)}\n />\n </div>\n <ErrorMessage name={`wdays.${day}.periods[${index}]`}>\n {message =>\n typeof message !== \"object\" && (\n <span className=\"neeto-ui-text-error-500 mt-1 w-11/12 px-2 text-xs\">\n {message}\n </span>\n )\n }\n </ErrorMessage>\n </div>\n ))}\n </div>\n )}\n {values.wdays[day].available && allowAddPeriod && (\n <Button\n className=\"absolute right-14 top-3 ml-auto flex-shrink-0 @xl:static\"\n data-cy=\"add-new-period-button\"\n data-testid=\"add-new-period-button\"\n icon={Plus}\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.schedule.addNewPeriod\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n }}\n onClick={() => handleAddRow(arrayHelpers)}\n />\n )}\n </>\n )}\n />\n );\n};\n\nexport default memo(ScheduleRow);\n","import { memo, useContext, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Copy } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Label, Checkbox } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\nimport { append, identity, without } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleRow from \"./ScheduleRow\";\nimport { addDefaultPeriod } from \"./utils\";\n\nimport ScheduleContext from \"../ScheduleContext\";\nimport { handleCopy, sortDays } from \"../utils\";\n\nconst Form = ({ day }) => {\n const [deletedPeriods, setDeletedPeriods] = useState([]);\n const [wdaysToCopy, setWdaysToCopy] = useState([]);\n\n const { values, setFieldValue } = useFormikContext();\n\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n const restoreDeletedPeriods = () => {\n setFieldValue(`wdays.${day}.periods`, deletedPeriods);\n };\n\n const uncheckCheckbox = () => {\n setFieldValue(`wdays.${day}.available`, false);\n setFieldValue(`wdays.${day}.periods`, []);\n if (values.wdays[day].periods[0]?.id) {\n setDeletedPeriods(\n values.wdays[day].periods\n .filter(item => item.startTime && item.endTime)\n .map(identity)\n );\n }\n };\n\n const checkCheckbox = () => {\n setFieldValue(`wdays.${day}.available`, true);\n if (deletedPeriods[0]?.startTime) {\n restoreDeletedPeriods(setFieldValue);\n } else if (isNotPresent(values.wdays[day].periods)) {\n setFieldValue(`wdays.${day}.periods`, [addDefaultPeriod(day)]);\n } else {\n setFieldValue(`wdays.${day}.periods`, [\"\"]);\n }\n };\n\n const handleCheckbox = () => {\n if (values.wdays[day].available) {\n uncheckCheckbox();\n } else {\n checkCheckbox();\n }\n };\n\n const handleCopyChange = (e, day) =>\n setWdaysToCopy(e.target.checked ? append(day) : without([day]));\n\n return (\n <div className=\"neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-ui-bg-white relative mb-3 w-full border px-4 @container md:px-6\">\n <div\n className=\"@xl:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 @xl:flex-nowrap @xl:gap-4\" // Added `@xl:flex-no-wrap` since neetoCal is using old version of tailwind\n data-cy=\"working-day-container\"\n >\n <div\n className={classnames(\n \"flex w-36 flex-shrink-0 items-center justify-start @xl:mt-1\",\n { \"mb-3 @xl:mb-0\": isPresent(values.wdays[day]?.periods) }\n )}\n >\n <Switch\n aria-label={`wdays.${day}.available`}\n checked={values.wdays[day].available}\n className=\"flex-grow-0\"\n data-cy={joinHyphenCase(day, \"weekly-hours-checkbox\")}\n id=\"day\"\n name={`wdays.${day}.available`}\n onChange={handleCheckbox}\n />\n <Typography\n component=\"span\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"body2\"\n weight={values.wdays[day].available ? \"semibold\" : \"normal\"}\n className={classnames(\"ml-2 capitalize\", {\n \"neeto-ui-text-gray-600\": !values.wdays[day].available,\n })}\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n </div>\n <ScheduleRow {...{ day }} />\n {values.wdays[day].available && (\n <Dropdown\n closeOnSelect\n buttonStyle=\"secondary\"\n icon={Copy}\n position=\"right-start\"\n buttonProps={{\n tooltipProps: {\n content: t(\"neetoMolecules.schedule.copyScheduleTooltip\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n },\n className: \"absolute right-4 top-3 @xl:static flex-shrink-0\",\n \"data-testid\": joinHyphenCase(day, \"copy-schedule-icon\"),\n \"data-cy\": joinHyphenCase(day, \"copy-schedule-icon\"),\n }}\n dropdownProps={{\n className:\n \"neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown\",\n }}\n onClose={() => setWdaysToCopy([])}\n >\n <li>\n <Typography style=\"h5\">\n {t(\"neetoMolecules.schedule.copySchedule\")}\n </Typography>\n </li>\n {sortDays(firstDay)\n .filter(copyDay => copyDay !== day)\n .map(day => (\n <li key={day} onClick={e => e.stopPropagation()}>\n <Label className=\"w-full cursor-pointer capitalize\">\n <Checkbox\n checked={wdaysToCopy.includes(day)}\n id={day}\n label={t(`neetoMolecules.schedule.days.${day}`)}\n onChange={e => handleCopyChange(e, day)}\n />\n </Label>\n </li>\n ))}\n <li>\n <Button\n data-cy=\"copy-schedule-submit-button\"\n disabled={isNotPresent(wdaysToCopy)}\n label={t(\"neetoMolecules.common.actions.submit\")}\n size=\"small\"\n onClick={() => {\n handleCopy({ values, day, setFieldValue, wdaysToCopy });\n setWdaysToCopy([]);\n }}\n />\n </li>\n </Dropdown>\n )}\n </div>\n </div>\n );\n};\n\nexport default memo(Form);\n","import { useContext, useEffect, useImperativeHandle } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport Form from \"./Form\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport { processFormValues, sortDays } from \"./utils\";\n\nconst Fields = ({ handleValuesChanged, scheduleRef }) => {\n const { firstDay } = useContext(ScheduleContext);\n const { values, resetForm, errors, dirty } = useFormikContext();\n\n useEffect(() => {\n handleValuesChanged(processFormValues(values, firstDay), dirty);\n }, [values]);\n\n useImperativeHandle(scheduleRef, () => ({ resetForm, errors }));\n\n return sortDays(firstDay).map(wday => <Form day={wday} key={wday} />);\n};\n\nexport default Fields;\n","import { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Profile } from \"neetoteam\";\nimport { Button, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport { getTimeZoneAndTime } from \"./utils\";\n\nconst Header = ({\n isCreating,\n isEditable,\n isEditing,\n setIsEditing,\n showTimeZone = true,\n}) => {\n const { dirty, resetForm, submitForm, isSubmitting } = useFormikContext();\n const { t } = useTranslation();\n const [timeZoneAndTime, setTimeZoneAndTime] = useState(getTimeZoneAndTime());\n const [_, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const handleReset = () => {\n if (dirty) resetForm();\n else setIsEditing(false);\n };\n\n useEffect(() => {\n const time = setInterval(() => {\n setTimeZoneAndTime(getTimeZoneAndTime());\n }, 30000);\n\n return () => clearInterval(time);\n }, []);\n\n return (\n <div className=\"mb-6 flex flex-wrap justify-between gap-2\">\n {showTimeZone && (\n <div\n className=\"flex items-center gap-3\"\n data-testid=\"schedule-timezone-header\"\n >\n <Tooltip\n content={t(\"neetoMolecules.schedule.timezoneTooltip\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <Typography\n component=\"h4\"\n data-cy=\"timezone-text\"\n style=\"h5\"\n weight=\"medium\"\n >\n {timeZoneAndTime}\n </Typography>\n </Tooltip>\n {isEditable && (\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"nui-more-dropdown\" }}\n menuItems={[\n {\n onClick: () => setIsProfilePaneOpen(true),\n label: t(\"neetoMolecules.common.actions.changeTimezone\"),\n target: \"_blank\",\n key: \"change-timezone-option\",\n \"data-testid\": \"change-timezone-option\",\n },\n ]}\n />\n )}\n </div>\n )}\n {isEditing ? (\n <div className=\"flex items-center gap-2\">\n <Button\n data-cy=\"reset-button\"\n style=\"secondary\"\n label={\n !dirty\n ? t(\"neetoMolecules.common.actions.cancel\")\n : t(\"neetoMolecules.common.actions.reset\")\n }\n onClick={handleReset}\n />\n <Button\n data-cy=\"weekly-hours-save-changes-button\"\n disabled={(!dirty && !isCreating) || isSubmitting}\n label={t(\"neetoMolecules.common.actions.saveChanges\")}\n loading={isSubmitting}\n onClick={submitForm}\n />\n </div>\n ) : (\n <div>\n {isEditable && (\n <Button\n data-cy=\"weekly-schedule-header\"\n label={t(\"neetoMolecules.schedule.changeAvailability\")}\n style=\"primary\"\n weight=\"semibold\"\n onClick={() => setIsEditing(true)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef, useMemo } from \"react\";\n\nimport { Formik, Form as FormikForm } from \"formik\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { DEFAULT_SLOT_INTERVAL } from \"./constants\";\nimport DisplayAvailability from \"./DisplayAvailability\";\nimport Fields from \"./Fields\";\nimport Header from \"./Header\";\nimport \"./schedule.scss\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport {\n buildFormValuesArray,\n buildFormValuesObject,\n getScheduleValidationSchema,\n processFormValues,\n} from \"./utils\";\n\nconst Schedule = forwardRef(\n (\n {\n periods,\n handleSubmit = noop,\n isEditing = false,\n setIsEditing,\n showHeader = true,\n handleValuesChanged = noop,\n allowAddPeriod = true,\n isEditable = true,\n isCreating = false,\n firstDay = 1,\n showTimeZone = true,\n slotInterval = DEFAULT_SLOT_INTERVAL,\n },\n scheduleRef\n ) => {\n const validationSchema = useMemo(getScheduleValidationSchema, []);\n\n const getInitialFormValues = (isSubmitHandler = false) => {\n if (isSubmitHandler) {\n return buildFormValuesArray({ firstDay, periods });\n }\n\n return buildFormValuesObject({ periods });\n };\n\n return (\n <ScheduleContext.Provider\n value={{ allowAddPeriod, firstDay, slotInterval }}\n >\n <div className=\"neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0\">\n <Formik\n {...{ validationSchema }}\n enableReinitialize\n initialValues={{ wdays: getInitialFormValues() }}\n onSubmit={values => {\n handleSubmit(\n processFormValues(values, firstDay),\n getInitialFormValues(true)\n );\n }}\n >\n <>\n {showHeader && (\n <Header\n {...{\n isCreating,\n isEditable,\n isEditing,\n setIsEditing,\n showTimeZone,\n }}\n />\n )}\n {isEditing || !showHeader ? (\n <FormikForm>\n <Fields {...{ handleValuesChanged, scheduleRef }} />\n </FormikForm>\n ) : (\n <DisplayAvailability {...{ periods }} />\n )}\n </>\n </Formik>\n </div>\n </ScheduleContext.Provider>\n );\n }\n);\n\nSchedule.displayName = \"Schedule\";\n\nSchedule.propTypes = {\n /**\n * Periods data for days of the week.\n */\n periods: PropTypes.shape({\n sunday: PropTypes.array,\n monday: PropTypes.array,\n tuesday: PropTypes.array,\n wednesday: PropTypes.array,\n thursday: PropTypes.array,\n friday: PropTypes.array,\n saturday: PropTypes.array,\n }),\n /**\n * The function to be called on save changes action.\n */\n handleSubmit: PropTypes.func,\n /**\n * State value to show form for editing.\n */\n isEditing: PropTypes.bool,\n /**\n * Setter function to toggle `isEditing` state.\n */\n setIsEditing: PropTypes.func,\n /**\n * Flag to display or hide header. If set to false, component will open in editing state.\n */\n showHeader: PropTypes.bool,\n /**\n * Callback function called when values are changed within form.\n */\n handleValuesChanged: PropTypes.func,\n /**\n * Flag to allow adding new periods. If set to false, Add new period button will be hidden.\n */\n allowAddPeriod: PropTypes.bool,\n /**\n * Flag to control the ability to edit the schedule and timezone. When set to false, periods and timezone cannot be edited.\n */\n isEditable: PropTypes.bool,\n /**\n * Flag to control the ability to submit the schedule without changing initial values. When set to false, Schedule can only be submitted once the initial values are changed.\n */\n isCreating: PropTypes.bool,\n /**\n * Integer prop to choose which day of the week to display first in the component. Defaults to 1(Monday).\n */\n firstDay: PropTypes.number,\n /**\n * Flag to display or hide the current timezone in the header. Defaults to true.\n */\n showTimeZone: PropTypes.bool,\n /**\n * Integer prop to specify the time (in minutes) taken by each slot. Defaults to 30 minutes.\n */\n slotInterval: PropTypes.number,\n};\n\nexport default Schedule;\n"],"names":["DAYS","DEFAULT_SLOT_INTERVAL","ScheduleContext","createContext","allowAddPeriod","firstDay","INTERVALS","REMOVE_SELECT_DOWN_ARROW","DropdownIndicator","IndicatorSeparator","BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN","singleValue","base","state","_objectSpread","color","selectProps","menuIsOpen","SLOT_TIME_FORMAT","END_OF_DAY","DayjsRange","startDate","endDate","_classCallCheck","_ref","s","e","_createClass","key","value","isValidRange","isValid","isOverlap","other","toArrayOfTimeIntervals","interval","arguments","length","undefined","startTime","endTime","add","allTimes","push","format","extendDayjs","dayjs","range","start","end","dayjsObject","includes","startOf","endOf","constructor","timeIntervalsForDay","_ref2","startOfDay","endOfDay","allIntervalsForADay","dayjsExtended","yup","addMethod","array","test","periods","_checkForOverlapBetwe","checkForOverlapBetweenPeriods","isOverlapping","exists","range1","range2","_findIndicesOfOverlap","findIndicesOfOverlappingRangesInPeriods","firstIndex","secondIndex","firstError","createError","path","concat","message","i18next","t","timeFormat","time","secondError","ValidationError","isFromAndToSame","isSame","sortDays","chosenIndex","_toConsumableArray","slice","wdayValidation","object","shape","of","string","required","parent","isTimeBehind","ensureSlotsCantOverlap","getScheduleValidationSchema","wdays","fromPairs","map","day","getUserTimeZone","_window$globalProps","window","globalProps","user","timeZone","getTimeZoneAndTime","humanReadableTimezone","ianaTimezoneToHumanReadable","tz","timeA","timeB","isBefore","sortPeriodsByKey","_ref$order","order","sort","periodA","periodB","isPeriodBehind","response","slotsSortedByStartTime","_iterator","_createForOfIteratorHelper","entries","_step","n","done","_step$value","_slicedToArray","index","seg1","seg2","err","f","findIndexBy","findIndex","slot","handleCopy","_ref3","_values$wdays$day$per","values","setFieldValue","wdaysToCopy","newPeriods","pick","isNotPresent","forEach","wday","available","assoc","buildFormValuesArray","_ref4","_periods$wday","buildFormValuesObject","_ref5","formValues","_periods$wday2","processFormValues","prop","DisplayAvailability","_useTranslation","useTranslation","_useContext","useContext","_jsx","className","children","_sortPeriodsByKey","_jsxs","Typography","joinHyphenCase","style","weight","isPresent","period","lineHeight","component","id","buildSlotIntervals","bookedSlots","slotType","selectedValue","uniqBookedSlots","uniq","pluck","slotsAvailableForBooking","difference","slots","toLabelAndValue","sortSlots","a","b","slotsSelectComponentDefaultValue","padZeroes","str","customFilter","option","searchTerm","doesNumberMatches","replace","startsWith","replaceAll","doesAmPmMatches","toUpperCase","roundToNearestHour","minutes","minute","generateNewPeriod","lastEndTime","newStartTime","newEndTime","addDefaultPeriod","ScheduleRow","_useFormikContext","useFormikContext","slotInterval","sortSlotsInterval","useMemo","handleAddRow","arrayHelpers","handleDeleteRow","isLastRowDeleted","remove","FieldArray","name","render","_values$wdays$day","_Fragment","Select","isClearable","isSearchable","components","filterOption","placeholder","styles","options","onChange","Button","icon","Delete","onClick","ErrorMessage","_typeof","Plus","tooltipProps","content","position","hideAfter","touch","memo","Form","_useState","useState","_useState2","deletedPeriods","setDeletedPeriods","_useState3","_useState4","setWdaysToCopy","restoreDeletedPeriods","uncheckCheckbox","filter","item","identity","checkCheckbox","_deletedPeriods$","handleCheckbox","handleCopyChange","target","checked","append","without","classnames","Switch","Dropdown","closeOnSelect","buttonStyle","Copy","buttonProps","dropdownProps","onClose","copyDay","stopPropagation","Label","Checkbox","label","disabled","size","Fields","handleValuesChanged","scheduleRef","resetForm","errors","dirty","useEffect","useImperativeHandle","Header","isCreating","isEditable","isEditing","setIsEditing","_ref$showTimeZone","showTimeZone","submitForm","isSubmitting","timeZoneAndTime","setTimeZoneAndTime","_Profile$usePaneState","Profile","usePaneState","_Profile$usePaneState2","_","setIsProfilePaneOpen","handleReset","setInterval","clearInterval","Tooltip","MoreDropdown","dropdownButtonProps","menuItems","loading","Schedule","forwardRef","_ref$handleSubmit","handleSubmit","noop","_ref$isEditing","_ref$showHeader","showHeader","_ref$handleValuesChan","_ref$allowAddPeriod","_ref$isEditable","_ref$isCreating","_ref$firstDay","_ref$slotInterval","validationSchema","getInitialFormValues","isSubmitHandler","Provider","Formik","enableReinitialize","initialValues","onSubmit","FormikForm","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Schedule.js","sources":["../../src/components/Schedule/constants.js","../../src/components/Schedule/ScheduleContext.js","../../src/components/Schedule/dayjsExtended/constants.js","../../src/components/Schedule/Form/constants.js","../../src/components/Schedule/dayjsExtended/range.js","../../src/components/Schedule/dayjsExtended/index.js","../../src/components/Schedule/utils.js","../../src/components/Schedule/DisplayAvailability.jsx","../../src/components/Schedule/Form/utils.js","../../src/components/Schedule/Form/ScheduleRow.jsx","../../src/components/Schedule/Form/index.jsx","../../src/components/Schedule/Fields.jsx","../../src/components/Schedule/Header.jsx","../../src/components/Schedule/index.jsx"],"sourcesContent":["export const DEFAULT_BOOKED_SLOTS = [\n { startTime: \"09:00 AM\", endTime: \"05:00 PM\" },\n];\n\nexport const MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;\n\nexport const DAYS = [\n \"sunday\",\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n];\n\nexport const DEFAULT_SLOT_INTERVAL = 30;\n","import { createContext } from \"react\";\n\n// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component\n// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management\nconst ScheduleContext = createContext({ allowAddPeriod: true, firstDay: 0 });\n\nexport default ScheduleContext;\n","export const INTERVALS = [\n \"year\",\n \"quarter\",\n \"month\",\n \"week\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n];\n","export const REMOVE_SELECT_DOWN_ARROW = {\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n};\n\nexport const BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {\n singleValue: (base, state) => ({\n ...base,\n color: state.selectProps.menuIsOpen ? \"#c2c8cc\" : base.color,\n }),\n};\n\nexport const SLOT_TIME_FORMAT = \"hh:mm A\";\n\nexport const END_OF_DAY = \"11:59 PM\";\n","import { INTERVALS } from \"./constants\";\n\nimport { SLOT_TIME_FORMAT } from \"../Form/constants\";\n\nexport class DayjsRange {\n constructor(startDate, endDate) {\n const { s, e } =\n startDate > endDate\n ? { s: endDate, e: startDate }\n : { s: startDate, e: endDate };\n\n this.startDate = s;\n this.endDate = e;\n }\n\n isValidRange() {\n return this.startDate.isValid() && this.endDate.isValid();\n }\n\n isOverlap(other) {\n if (!(other instanceof DayjsRange) || !other.isValidRange()) {\n return false;\n }\n\n return this.startDate < other.endDate && this.endDate > other.startDate;\n }\n\n toArrayOfTimeIntervals(interval = 15) {\n let startTime = this.startDate;\n const endTime = this.endDate.add(1, \"days\");\n const allTimes = [];\n\n while (startTime < endTime) {\n allTimes.push(startTime.format(SLOT_TIME_FORMAT));\n startTime = startTime.add(interval, \"minutes\");\n }\n\n return allTimes;\n }\n}\n\nexport default (_, __, d) => {\n d.range = (start, end) => new DayjsRange(d(start), d(end));\n};\n\nexport function extendDayjs(dayjs) {\n dayjs.range = function range(start, end) {\n const dayjsObject = this;\n\n if (typeof start === \"string\" && INTERVALS.includes(start)) {\n return new DayjsRange(\n dayjs(dayjsObject).startOf(start),\n dayjs(dayjsObject).endOf(start)\n );\n }\n\n return new DayjsRange(start, end);\n };\n\n dayjs.range.constructor = DayjsRange;\n\n // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed\n dayjs.timeIntervalsForDay = interval => {\n const [startOfDay, endOfDay] = [\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n ];\n\n const allIntervalsForADay = dayjs\n .range(startOfDay, endOfDay)\n .toArrayOfTimeIntervals(interval);\n\n return allIntervalsForADay;\n };\n\n return dayjs;\n}\n","import { dayjs } from \"neetocommons/utils\";\n\nimport { extendDayjs } from \"./range\";\n\n// Add range and overlap functions to dayjs\nconst dayjsExtended = extendDayjs(dayjs);\n\nexport default dayjsExtended;\n","import { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport i18next from \"i18next\";\nimport { findIndexBy, isNotPresent } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport { prop, assoc, fromPairs, map, pick } from \"ramda\";\nimport * as yup from \"yup\";\n\nimport { DAYS } from \"./constants\";\nimport dayjsExtended from \"./dayjsExtended\";\nimport { SLOT_TIME_FORMAT } from \"./Form/constants\";\n\nyup.addMethod(yup.array, \"ensureSlotsCantOverlap\", function () {\n return this.test(\"ensureSlotsCantOverlap\", function (periods) {\n const {\n exists: isOverlapping,\n range1,\n range2,\n } = checkForOverlapBetweenPeriods(periods);\n\n if (!isOverlapping) return true;\n\n const { firstIndex, secondIndex } = findIndicesOfOverlappingRangesInPeriods(\n { range1, range2, periods }\n );\n\n const firstError = this.createError({\n path: `${this.path}[${firstIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range2.startDate),\n end: timeFormat.time(range2.endDate),\n }),\n });\n\n const secondError = this.createError({\n path: `${this.path}[${secondIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range1.startDate),\n end: timeFormat.time(range1.endDate),\n }),\n });\n\n return new yup.ValidationError([firstError, secondError]);\n });\n});\n\nconst isFromAndToSame = (startTime, endTime) => {\n if (!startTime || !endTime) return true;\n\n return dayjs(startTime, SLOT_TIME_FORMAT).isSame(\n dayjs(endTime, SLOT_TIME_FORMAT)\n );\n};\n\nexport const sortDays = chosenIndex => {\n if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;\n\n return [...DAYS.slice(chosenIndex), ...DAYS.slice(0, chosenIndex)];\n};\n\nexport const wdayValidation = yup.object().shape({\n periods: yup\n .array()\n .of(\n yup\n .object()\n .shape({\n startTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.startTime\")\n ),\n endTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.endTime\")\n )\n .test(\n \"ensureToTimeNotBehindFromTime\",\n i18next.t(\"neetoMolecules.schedule.errors.period.isBehind\"),\n function (value) {\n const { startTime } = this.parent;\n if (isFromAndToSame(value, startTime)) return true;\n\n return isTimeBehind(startTime, value);\n }\n ),\n })\n .test(\n \"ensureTimeNotSame\",\n i18next.t(\"neetoMolecules.schedule.errors.period.sameTime\"),\n value => {\n const { startTime, endTime } = value;\n\n return !isFromAndToSame(startTime, endTime);\n }\n )\n )\n .ensureSlotsCantOverlap(),\n});\n\nexport const getScheduleValidationSchema = () =>\n yup.object().shape({\n wdays: yup\n .object()\n .shape(fromPairs(map(day => [day, wdayValidation], DAYS))),\n });\n\nexport const getUserTimeZone = () => window.globalProps?.user.timeZone;\n\nexport const getTimeZoneAndTime = () => {\n const timeZone = getUserTimeZone();\n const humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);\n\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n return `${humanReadableTimezone}: ${dayjs()\n .tz(timeZone)\n .format(SLOT_TIME_FORMAT)}`;\n};\n\nexport const isTimeBehind = (timeA, timeB) =>\n dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));\n\nexport const sortPeriodsByKey = ({ periods, key, order = \"desc\" }) =>\n periods.slice().sort((periodA, periodB) => {\n const isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);\n if (order === \"desc\") return isPeriodBehind ? 1 : -1;\n\n return isPeriodBehind ? -1 : 1;\n });\n\n/**\n * Check for overlapping between entered periods\n * @typedef {Object} Slots\n * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime\n * @param {Slots} periods - changed time periods\n * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists\n */\nexport const checkForOverlapBetweenPeriods = periods => {\n let response = { exists: false, range1: null, range2: null };\n\n if (!periods?.length) return response;\n\n const slotsSortedByStartTime = sortPeriodsByKey({\n periods,\n key: \"startTime\",\n });\n for (const [index, value] of slotsSortedByStartTime.slice(0, -1).entries()) {\n const seg1 = value;\n const seg2 = slotsSortedByStartTime[index + 1];\n const range1 = dayjsExtended.range(\n dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT)\n );\n\n const range2 = dayjsExtended.range(\n dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT)\n );\n if (range1.isOverlap(range2)) {\n response = { exists: true, range1, range2 };\n break;\n }\n }\n\n return response;\n};\n\nexport const findIndicesOfOverlappingRangesInPeriods = ({\n range1,\n range2,\n periods,\n}) => {\n const firstIndex = findIndexBy(\n { startTime: range1.startDate.format(SLOT_TIME_FORMAT) },\n periods\n );\n\n const secondIndex = periods.findIndex(\n (slot, index) =>\n index > firstIndex &&\n slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT)\n );\n\n return { firstIndex, secondIndex };\n};\n\nexport const checkIfTwoTimeZonesAreSame = (timeZone1, timeZone2) =>\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs().tz(timeZone1).format(\"Z\") === dayjs().tz(timeZone2).format(\"Z\");\n\nexport const handleCopy = ({ values, day, setFieldValue, wdaysToCopy }) => {\n const newPeriods = values.wdays[day].periods?.map(\n pick([\"startTime\", \"endTime\"])\n );\n\n if (isNotPresent(newPeriods)) return;\n\n wdaysToCopy.forEach(wday =>\n setFieldValue(`wdays.${wday}`, {\n available: true,\n periods: newPeriods.map(assoc(\"wday\", wday)),\n })\n );\n};\n\nexport const buildFormValuesArray = ({ firstDay, periods }) =>\n sortDays(firstDay).map(wday => ({\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n }));\n\nexport const buildFormValuesObject = ({ periods }) => {\n const formValues = {};\n\n DAYS.forEach(wday => {\n formValues[wday] = {\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n };\n });\n\n return formValues;\n};\n\nexport const processFormValues = (values, firstDay) => ({\n wdays: buildFormValuesArray({\n firstDay,\n periods: map(prop(\"periods\"), values.wdays),\n }),\n});\n","import { useContext } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleContext from \"./ScheduleContext\";\nimport { sortDays, sortPeriodsByKey } from \"./utils\";\n\nconst DisplayAvailability = ({ periods }) => {\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n return (\n <div className=\"w-full space-y-3\">\n {sortDays(firstDay).map(day => (\n <div\n className=\"neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start\"\n data-cy={`day-cards-${day}`}\n key={day}\n >\n <Typography\n className=\"mt-0.5 w-24 text-center sm:w-1/4 sm:text-left\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n <div className=\"flex flex-grow flex-col items-center space-y-4 sm:w-1/2\">\n {isPresent(periods[day]) ? (\n sortPeriodsByKey({\n periods: periods[day],\n key: \"startTime\",\n order: \"asc\",\n })?.map(period => (\n <div className=\"flex items-center space-x-4\" key={period.id}>\n <Typography\n className=\"w-20 text-right\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.startTime,\n \"start-time-text\"\n )}\n >\n {period.startTime}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n >\n -\n </Typography>\n <Typography\n className=\"w-20 text-left\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.endTime,\n \"start-time-text\"\n )}\n >\n {period.endTime}\n </Typography>\n </div>\n ))\n ) : (\n <Typography\n className=\"mx-8 flex-grow text-center\"\n data-cy={joinHyphenCase(day, \"unavailable-time-text\")}\n lineHeight=\"relaxed\"\n style=\"h5\"\n >\n {t(\"neetoMolecules.schedule.unavailable\")}\n </Typography>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DisplayAvailability;\n","/* eslint-disable @bigbinary/neeto/use-standard-date-time-formats */\nimport { toLabelAndValue, isNotPresent } from \"neetocist\";\nimport { uniq, pluck, difference } from \"ramda\";\n\nimport { SLOT_TIME_FORMAT, END_OF_DAY } from \"./constants\";\n\nimport dayjs from \"../dayjsExtended\";\nimport { isTimeBehind } from \"../utils\";\n\nconst buildSlotIntervals = ({ interval, bookedSlots }) => {\n const allIntervalsForADay = dayjs.timeIntervalsForDay(interval);\n allIntervalsForADay.push(END_OF_DAY);\n\n return (slotType, selectedValue = null) => {\n const uniqBookedSlots = uniq(pluck(slotType, bookedSlots));\n const slotsAvailableForBooking = difference(\n allIntervalsForADay,\n uniqBookedSlots\n );\n const slots = slotsAvailableForBooking.map(toLabelAndValue);\n\n if (!selectedValue) return slots;\n\n return sortSlots([toLabelAndValue(selectedValue), ...slots]);\n };\n};\n\nconst sortSlots = slots =>\n slots.sort((a, b) => (isTimeBehind(a[\"value\"], b[\"value\"]) ? -1 : 1));\n\nconst slotsSelectComponentDefaultValue = slot =>\n slot ? toLabelAndValue(slot) : \"\";\n\nconst padZeroes = str => (str.length % 2 === 0 ? str : `0${str}`);\n\nconst customFilter = (option, searchTerm) => {\n if (isNotPresent(searchTerm)) return true;\n\n const doesNumberMatches = option.value\n .replace(\":\", \"\")\n .startsWith(padZeroes(searchTerm.replaceAll(/\\D+/gi, \"\")));\n\n const doesAmPmMatches = option.value.includes(\n searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, \"\")\n );\n\n return doesNumberMatches && doesAmPmMatches;\n};\n\nconst roundToNearestHour = time => {\n const minutes = time.minute();\n\n if (minutes === 59) return time.startOf(\"hour\").add(1, \"hour\");\n\n return time.add(1, \"hour\");\n};\n\nconst generateNewPeriod = (periods, wday) => {\n const lastEndTime = periods[periods.length - 1].endTime;\n const newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));\n const newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, \"hour\");\n\n return {\n startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),\n endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),\n wday,\n };\n};\n\nconst addDefaultPeriod = wday => ({\n wday,\n startTime: \"09:00 AM\",\n endTime: \"05:00 PM\",\n});\n\nexport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n};\n","import { memo, useContext, useMemo } from \"react\";\n\nimport { FieldArray, ErrorMessage, useFormikContext } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { useBreakpoints } from \"neetocommons/react-utils\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n REMOVE_SELECT_DOWN_ARROW,\n BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,\n} from \"./constants\";\nimport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n} from \"./utils\";\n\nimport ScheduleContext from \"../ScheduleContext\";\n\nconst ScheduleRow = ({ day }) => {\n const { values, setFieldValue } = useFormikContext();\n const bookedSlots = values.wdays[day].periods;\n const { isSize } = useBreakpoints();\n const isMobile = isSize(\"mobile\");\n\n const { allowAddPeriod, slotInterval } = useContext(ScheduleContext);\n\n const { t } = useTranslation();\n\n const sortSlotsInterval = useMemo(\n () => buildSlotIntervals({ interval: slotInterval, bookedSlots }),\n [slotInterval, bookedSlots]\n );\n\n const handleAddRow = arrayHelpers => {\n if (isNotPresent(values.wdays[day].periods)) {\n arrayHelpers.push(addDefaultPeriod(day));\n } else {\n arrayHelpers.push(generateNewPeriod(values.wdays[day].periods, day));\n }\n setFieldValue(`wdays.${day}.available`, true);\n };\n\n const handleDeleteRow = (arrayHelpers, index) => {\n const isLastRowDeleted = values.wdays[day].periods.length === 1;\n arrayHelpers.remove(index);\n setFieldValue(`wdays.${day}.available`, !isLastRowDeleted);\n };\n\n return (\n <FieldArray\n name={`wdays.${day}.periods`}\n render={arrayHelpers => (\n <>\n {isPresent(values.wdays[day]?.periods) && (\n <div className=\"w-full space-y-2\">\n {values.wdays[day].periods?.map((period, index) => (\n <div\n className=\"flex w-full flex-col @xl:mx-auto @xl:w-80\"\n key={`wdays.${day}.periods[${index}]`}\n >\n <div\n className=\"flex items-start gap-2 @xl:gap-3\"\n data-cy=\"schedule-row\"\n >\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays.${day}.periods[${index}].startTime`}\n placeholder={t(\"neetoMolecules.schedule.startTime\")}\n strategy={isMobile ? \"fixed\" : \"default\"}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n options={sortSlotsInterval(\n \"startTime\",\n period?.startTime\n )}\n value={slotsSelectComponentDefaultValue(\n period?.startTime\n )}\n onChange={e =>\n setFieldValue(\n `wdays.${day}.periods[${index}].startTime`,\n e?.value || \"\"\n )\n }\n />\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays.${day}.periods[${index}].endTime`}\n options={sortSlotsInterval(\"endTime\", period?.endTime)}\n placeholder={t(\"neetoMolecules.schedule.endTime\")}\n strategy={isMobile ? \"fixed\" : \"default\"}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n value={slotsSelectComponentDefaultValue(period?.endTime)}\n onChange={e =>\n setFieldValue(\n `wdays.${day}.periods[${index}].endTime`,\n e?.value || \"\"\n )\n }\n />\n <Button\n className=\"flex-shrink-0 self-start\"\n data-cy=\"delete-period-button\"\n data-testid=\"delete-period-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleDeleteRow(arrayHelpers, index)}\n />\n </div>\n <ErrorMessage name={`wdays.${day}.periods[${index}]`}>\n {message =>\n typeof message !== \"object\" && (\n <span className=\"neeto-ui-text-error-500 mt-1 w-11/12 px-2 text-xs\">\n {message}\n </span>\n )\n }\n </ErrorMessage>\n </div>\n ))}\n </div>\n )}\n {values.wdays[day].available && allowAddPeriod && (\n <Button\n className=\"absolute right-14 top-3 ml-auto flex-shrink-0 @xl:static\"\n data-cy=\"add-new-period-button\"\n data-testid=\"add-new-period-button\"\n icon={Plus}\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.schedule.addNewPeriod\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n }}\n onClick={() => handleAddRow(arrayHelpers)}\n />\n )}\n </>\n )}\n />\n );\n};\n\nexport default memo(ScheduleRow);\n","import { memo, useContext, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Copy } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Label, Checkbox } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\nimport { append, identity, without } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleRow from \"./ScheduleRow\";\nimport { addDefaultPeriod } from \"./utils\";\n\nimport ScheduleContext from \"../ScheduleContext\";\nimport { handleCopy, sortDays } from \"../utils\";\n\nconst Form = ({ day }) => {\n const [deletedPeriods, setDeletedPeriods] = useState([]);\n const [wdaysToCopy, setWdaysToCopy] = useState([]);\n\n const { values, setFieldValue } = useFormikContext();\n\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n const restoreDeletedPeriods = () => {\n setFieldValue(`wdays.${day}.periods`, deletedPeriods);\n };\n\n const uncheckCheckbox = () => {\n setFieldValue(`wdays.${day}.available`, false);\n setFieldValue(`wdays.${day}.periods`, []);\n if (values.wdays[day].periods[0]?.id) {\n setDeletedPeriods(\n values.wdays[day].periods\n .filter(item => item.startTime && item.endTime)\n .map(identity)\n );\n }\n };\n\n const checkCheckbox = () => {\n setFieldValue(`wdays.${day}.available`, true);\n if (deletedPeriods[0]?.startTime) {\n restoreDeletedPeriods(setFieldValue);\n } else if (isNotPresent(values.wdays[day].periods)) {\n setFieldValue(`wdays.${day}.periods`, [addDefaultPeriod(day)]);\n } else {\n setFieldValue(`wdays.${day}.periods`, [\"\"]);\n }\n };\n\n const handleCheckbox = () => {\n if (values.wdays[day].available) {\n uncheckCheckbox();\n } else {\n checkCheckbox();\n }\n };\n\n const handleCopyChange = (e, day) =>\n setWdaysToCopy(e.target.checked ? append(day) : without([day]));\n\n return (\n <div className=\"neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-ui-bg-white relative mb-3 w-full border px-4 @container md:px-6\">\n <div\n className=\"@xl:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 @xl:flex-nowrap @xl:gap-4\" // Added `@xl:flex-no-wrap` since neetoCal is using old version of tailwind\n data-cy=\"working-day-container\"\n >\n <div\n className={classnames(\n \"flex w-36 flex-shrink-0 items-center justify-start @xl:mt-1\",\n { \"mb-3 @xl:mb-0\": isPresent(values.wdays[day]?.periods) }\n )}\n >\n <Switch\n aria-label={`wdays.${day}.available`}\n checked={values.wdays[day].available}\n className=\"flex-grow-0\"\n data-cy={joinHyphenCase(day, \"weekly-hours-checkbox\")}\n id=\"day\"\n name={`wdays.${day}.available`}\n onChange={handleCheckbox}\n />\n <Typography\n component=\"span\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"body2\"\n weight={values.wdays[day].available ? \"semibold\" : \"normal\"}\n className={classnames(\"ml-2 capitalize\", {\n \"neeto-ui-text-gray-600\": !values.wdays[day].available,\n })}\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n </div>\n <ScheduleRow {...{ day }} />\n {values.wdays[day].available && (\n <Dropdown\n closeOnSelect\n buttonStyle=\"secondary\"\n icon={Copy}\n position=\"right-start\"\n buttonProps={{\n tooltipProps: {\n content: t(\"neetoMolecules.schedule.copyScheduleTooltip\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n },\n className: \"absolute right-4 top-3 @xl:static flex-shrink-0\",\n \"data-testid\": joinHyphenCase(day, \"copy-schedule-icon\"),\n \"data-cy\": joinHyphenCase(day, \"copy-schedule-icon\"),\n }}\n dropdownProps={{\n className:\n \"neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown\",\n }}\n onClose={() => setWdaysToCopy([])}\n >\n <li>\n <Typography style=\"h5\">\n {t(\"neetoMolecules.schedule.copySchedule\")}\n </Typography>\n </li>\n {sortDays(firstDay)\n .filter(copyDay => copyDay !== day)\n .map(day => (\n <li key={day} onClick={e => e.stopPropagation()}>\n <Label className=\"w-full cursor-pointer capitalize\">\n <Checkbox\n checked={wdaysToCopy.includes(day)}\n id={day}\n label={t(`neetoMolecules.schedule.days.${day}`)}\n onChange={e => handleCopyChange(e, day)}\n />\n </Label>\n </li>\n ))}\n <li>\n <Button\n data-cy=\"copy-schedule-submit-button\"\n disabled={isNotPresent(wdaysToCopy)}\n label={t(\"neetoMolecules.common.actions.submit\")}\n size=\"small\"\n onClick={() => {\n handleCopy({ values, day, setFieldValue, wdaysToCopy });\n setWdaysToCopy([]);\n }}\n />\n </li>\n </Dropdown>\n )}\n </div>\n </div>\n );\n};\n\nexport default memo(Form);\n","import { useContext, useEffect, useImperativeHandle } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport Form from \"./Form\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport { processFormValues, sortDays } from \"./utils\";\n\nconst Fields = ({ handleValuesChanged, scheduleRef }) => {\n const { firstDay } = useContext(ScheduleContext);\n const { values, resetForm, errors, dirty } = useFormikContext();\n\n useEffect(() => {\n handleValuesChanged(processFormValues(values, firstDay), dirty);\n }, [values]);\n\n useImperativeHandle(scheduleRef, () => ({ resetForm, errors }));\n\n return sortDays(firstDay).map(wday => <Form day={wday} key={wday} />);\n};\n\nexport default Fields;\n","import { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Profile } from \"neetoteam\";\nimport { Button, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport { getTimeZoneAndTime } from \"./utils\";\n\nconst Header = ({\n isCreating,\n isEditable,\n isEditing,\n setIsEditing,\n showTimeZone = true,\n}) => {\n const { dirty, resetForm, submitForm, isSubmitting } = useFormikContext();\n const { t } = useTranslation();\n const [timeZoneAndTime, setTimeZoneAndTime] = useState(getTimeZoneAndTime());\n const [_, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const handleReset = () => {\n if (dirty) resetForm();\n else setIsEditing(false);\n };\n\n useEffect(() => {\n const time = setInterval(() => {\n setTimeZoneAndTime(getTimeZoneAndTime());\n }, 30000);\n\n return () => clearInterval(time);\n }, []);\n\n return (\n <div className=\"mb-6 flex flex-wrap justify-between gap-2\">\n {showTimeZone && (\n <div\n className=\"flex items-center gap-3\"\n data-testid=\"schedule-timezone-header\"\n >\n <Tooltip\n content={t(\"neetoMolecules.schedule.timezoneTooltip\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <Typography\n component=\"h4\"\n data-cy=\"timezone-text\"\n style=\"h5\"\n weight=\"medium\"\n >\n {timeZoneAndTime}\n </Typography>\n </Tooltip>\n {isEditable && (\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"nui-more-dropdown\" }}\n menuItems={[\n {\n onClick: () => setIsProfilePaneOpen(true),\n label: t(\"neetoMolecules.common.actions.changeTimezone\"),\n target: \"_blank\",\n key: \"change-timezone-option\",\n \"data-testid\": \"change-timezone-option\",\n },\n ]}\n />\n )}\n </div>\n )}\n {isEditing ? (\n <div className=\"flex items-center gap-2\">\n <Button\n data-cy=\"reset-button\"\n style=\"secondary\"\n label={\n !dirty\n ? t(\"neetoMolecules.common.actions.cancel\")\n : t(\"neetoMolecules.common.actions.reset\")\n }\n onClick={handleReset}\n />\n <Button\n data-cy=\"weekly-hours-save-changes-button\"\n disabled={(!dirty && !isCreating) || isSubmitting}\n label={t(\"neetoMolecules.common.actions.saveChanges\")}\n loading={isSubmitting}\n onClick={submitForm}\n />\n </div>\n ) : (\n <div>\n {isEditable && (\n <Button\n data-cy=\"weekly-schedule-header\"\n label={t(\"neetoMolecules.schedule.changeAvailability\")}\n style=\"primary\"\n weight=\"semibold\"\n onClick={() => setIsEditing(true)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef, useMemo } from \"react\";\n\nimport { Formik, Form as FormikForm } from \"formik\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { DEFAULT_SLOT_INTERVAL } from \"./constants\";\nimport DisplayAvailability from \"./DisplayAvailability\";\nimport Fields from \"./Fields\";\nimport Header from \"./Header\";\nimport \"./schedule.scss\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport {\n buildFormValuesArray,\n buildFormValuesObject,\n getScheduleValidationSchema,\n processFormValues,\n} from \"./utils\";\n\nconst Schedule = forwardRef(\n (\n {\n periods,\n handleSubmit = noop,\n isEditing = false,\n setIsEditing,\n showHeader = true,\n handleValuesChanged = noop,\n allowAddPeriod = true,\n isEditable = true,\n isCreating = false,\n firstDay = 1,\n showTimeZone = true,\n slotInterval = DEFAULT_SLOT_INTERVAL,\n },\n scheduleRef\n ) => {\n const validationSchema = useMemo(getScheduleValidationSchema, []);\n\n const getInitialFormValues = (isSubmitHandler = false) => {\n if (isSubmitHandler) {\n return buildFormValuesArray({ firstDay, periods });\n }\n\n return buildFormValuesObject({ periods });\n };\n\n return (\n <ScheduleContext.Provider\n value={{ allowAddPeriod, firstDay, slotInterval }}\n >\n <div className=\"neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0\">\n <Formik\n {...{ validationSchema }}\n enableReinitialize\n initialValues={{ wdays: getInitialFormValues() }}\n onSubmit={values => {\n handleSubmit(\n processFormValues(values, firstDay),\n getInitialFormValues(true)\n );\n }}\n >\n <>\n {showHeader && (\n <Header\n {...{\n isCreating,\n isEditable,\n isEditing,\n setIsEditing,\n showTimeZone,\n }}\n />\n )}\n {isEditing || !showHeader ? (\n <FormikForm>\n <Fields {...{ handleValuesChanged, scheduleRef }} />\n </FormikForm>\n ) : (\n <DisplayAvailability {...{ periods }} />\n )}\n </>\n </Formik>\n </div>\n </ScheduleContext.Provider>\n );\n }\n);\n\nSchedule.displayName = \"Schedule\";\n\nSchedule.propTypes = {\n /**\n * Periods data for days of the week.\n */\n periods: PropTypes.shape({\n sunday: PropTypes.array,\n monday: PropTypes.array,\n tuesday: PropTypes.array,\n wednesday: PropTypes.array,\n thursday: PropTypes.array,\n friday: PropTypes.array,\n saturday: PropTypes.array,\n }),\n /**\n * The function to be called on save changes action.\n */\n handleSubmit: PropTypes.func,\n /**\n * State value to show form for editing.\n */\n isEditing: PropTypes.bool,\n /**\n * Setter function to toggle `isEditing` state.\n */\n setIsEditing: PropTypes.func,\n /**\n * Flag to display or hide header. If set to false, component will open in editing state.\n */\n showHeader: PropTypes.bool,\n /**\n * Callback function called when values are changed within form.\n */\n handleValuesChanged: PropTypes.func,\n /**\n * Flag to allow adding new periods. If set to false, Add new period button will be hidden.\n */\n allowAddPeriod: PropTypes.bool,\n /**\n * Flag to control the ability to edit the schedule and timezone. When set to false, periods and timezone cannot be edited.\n */\n isEditable: PropTypes.bool,\n /**\n * Flag to control the ability to submit the schedule without changing initial values. When set to false, Schedule can only be submitted once the initial values are changed.\n */\n isCreating: PropTypes.bool,\n /**\n * Integer prop to choose which day of the week to display first in the component. Defaults to 1(Monday).\n */\n firstDay: PropTypes.number,\n /**\n * Flag to display or hide the current timezone in the header. Defaults to true.\n */\n showTimeZone: PropTypes.bool,\n /**\n * Integer prop to specify the time (in minutes) taken by each slot. Defaults to 30 minutes.\n */\n slotInterval: PropTypes.number,\n};\n\nexport default Schedule;\n"],"names":["DAYS","DEFAULT_SLOT_INTERVAL","ScheduleContext","createContext","allowAddPeriod","firstDay","INTERVALS","REMOVE_SELECT_DOWN_ARROW","DropdownIndicator","IndicatorSeparator","BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN","singleValue","base","state","_objectSpread","color","selectProps","menuIsOpen","SLOT_TIME_FORMAT","END_OF_DAY","DayjsRange","startDate","endDate","_classCallCheck","_ref","s","e","_createClass","key","value","isValidRange","isValid","isOverlap","other","toArrayOfTimeIntervals","interval","arguments","length","undefined","startTime","endTime","add","allTimes","push","format","extendDayjs","dayjs","range","start","end","dayjsObject","includes","startOf","endOf","constructor","timeIntervalsForDay","_ref2","startOfDay","endOfDay","allIntervalsForADay","dayjsExtended","yup","addMethod","array","test","periods","_checkForOverlapBetwe","checkForOverlapBetweenPeriods","isOverlapping","exists","range1","range2","_findIndicesOfOverlap","findIndicesOfOverlappingRangesInPeriods","firstIndex","secondIndex","firstError","createError","path","concat","message","i18next","t","timeFormat","time","secondError","ValidationError","isFromAndToSame","isSame","sortDays","chosenIndex","_toConsumableArray","slice","wdayValidation","object","shape","of","string","required","parent","isTimeBehind","ensureSlotsCantOverlap","getScheduleValidationSchema","wdays","fromPairs","map","day","getUserTimeZone","_window$globalProps","window","globalProps","user","timeZone","getTimeZoneAndTime","humanReadableTimezone","ianaTimezoneToHumanReadable","tz","timeA","timeB","isBefore","sortPeriodsByKey","_ref$order","order","sort","periodA","periodB","isPeriodBehind","response","slotsSortedByStartTime","_iterator","_createForOfIteratorHelper","entries","_step","n","done","_step$value","_slicedToArray","index","seg1","seg2","err","f","findIndexBy","findIndex","slot","handleCopy","_ref3","_values$wdays$day$per","values","setFieldValue","wdaysToCopy","newPeriods","pick","isNotPresent","forEach","wday","available","assoc","buildFormValuesArray","_ref4","_periods$wday","buildFormValuesObject","_ref5","formValues","_periods$wday2","processFormValues","prop","DisplayAvailability","_useTranslation","useTranslation","_useContext","useContext","_jsx","className","children","_sortPeriodsByKey","_jsxs","Typography","joinHyphenCase","style","weight","isPresent","period","lineHeight","component","id","buildSlotIntervals","bookedSlots","slotType","selectedValue","uniqBookedSlots","uniq","pluck","slotsAvailableForBooking","difference","slots","toLabelAndValue","sortSlots","a","b","slotsSelectComponentDefaultValue","padZeroes","str","customFilter","option","searchTerm","doesNumberMatches","replace","startsWith","replaceAll","doesAmPmMatches","toUpperCase","roundToNearestHour","minutes","minute","generateNewPeriod","lastEndTime","newStartTime","newEndTime","addDefaultPeriod","ScheduleRow","_useFormikContext","useFormikContext","_useBreakpoints","useBreakpoints","isSize","isMobile","slotInterval","sortSlotsInterval","useMemo","handleAddRow","arrayHelpers","handleDeleteRow","isLastRowDeleted","remove","FieldArray","name","render","_values$wdays$day","_Fragment","Select","isClearable","isSearchable","components","filterOption","placeholder","strategy","styles","options","onChange","Button","icon","Delete","onClick","ErrorMessage","_typeof","Plus","tooltipProps","content","position","hideAfter","touch","memo","Form","_useState","useState","_useState2","deletedPeriods","setDeletedPeriods","_useState3","_useState4","setWdaysToCopy","restoreDeletedPeriods","uncheckCheckbox","filter","item","identity","checkCheckbox","_deletedPeriods$","handleCheckbox","handleCopyChange","target","checked","append","without","classnames","Switch","Dropdown","closeOnSelect","buttonStyle","Copy","buttonProps","dropdownProps","onClose","copyDay","stopPropagation","Label","Checkbox","label","disabled","size","Fields","handleValuesChanged","scheduleRef","resetForm","errors","dirty","useEffect","useImperativeHandle","Header","isCreating","isEditable","isEditing","setIsEditing","_ref$showTimeZone","showTimeZone","submitForm","isSubmitting","timeZoneAndTime","setTimeZoneAndTime","_Profile$usePaneState","Profile","usePaneState","_Profile$usePaneState2","_","setIsProfilePaneOpen","handleReset","setInterval","clearInterval","Tooltip","MoreDropdown","dropdownButtonProps","menuItems","loading","Schedule","forwardRef","_ref$handleSubmit","handleSubmit","noop","_ref$isEditing","_ref$showHeader","showHeader","_ref$handleValuesChan","_ref$allowAddPeriod","_ref$isEditable","_ref$isCreating","_ref$firstDay","_ref$slotInterval","validationSchema","getInitialFormValues","isSubmitHandler","Provider","Formik","enableReinitialize","initialValues","onSubmit","FormikForm","displayName"],"mappings":"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"}
@@ -21,11 +21,15 @@ var Tooltip = require('@bigbinary/neetoui/Tooltip');
21
21
  var CopyToClipboardButton = require('./CopyToClipboardButton.js');
22
22
  require('@babel/runtime/helpers/objectWithoutProperties');
23
23
  require('formik');
24
- var phoneNumber = require('./phone-number-BtEbUAse.js');
24
+ var phoneNumber = require('./phone-number-CPwIzezl.js');
25
25
  var jsxRuntime = require('react/jsx-runtime');
26
+ require('@babel/runtime/helpers/asyncToGenerator');
27
+ require('@babel/runtime/regenerator');
26
28
  require('i18next');
27
29
  require('libphonenumber-js/min');
30
+ require('@bigbinary/neeto-commons-frontend/utils');
28
31
  require('yup');
32
+ require('axios');
29
33
  var TimeFormat = require('./TimeFormat.js');
30
34
  var Computer = require('@bigbinary/neeto-icons/Computer');
31
35
  var Email = require('@bigbinary/neeto-icons/Email');
@@ -46,14 +50,9 @@ require('@bigbinary/neeto-icons/Help');
46
50
  require('@bigbinary/neetoui/Popover');
47
51
  require('@bigbinary/neeto-commons-frontend/utils/general');
48
52
  require('@bigbinary/neeto-icons/Copy');
49
- require('zustand/shallow');
53
+ require('@tanstack/react-query');
50
54
  require('@bigbinary/neetoui/Select');
51
55
  require('./_commonjsHelpers-BJu3ubxk.js');
52
- require('@tanstack/react-query');
53
- require('axios');
54
- require('@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions');
55
- require('zustand');
56
- require('zustand/middleware');
57
56
  require('./DateFormat.js');
58
57
  require('@bigbinary/neeto-commons-frontend/react-utils/useTimer');
59
58
  require('@bigbinary/neeto-commons-frontend/utils/datetime');
@@ -1 +1 @@
1
- {"version":3,"file":"SessionEnvironment.js","sources":["../../src/components/SessionEnvironment/constants.js","../../src/components/SessionEnvironment/utils.jsx","../../src/components/SessionEnvironment/Item.jsx","../../src/components/SessionEnvironment/DetailsBlock.jsx","../../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input, Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getIcon, getInputType } from \"./utils\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const containerRef = useHotkeys(ESCAPE, () => handleCancel(name), {\n mode: \"scoped\",\n });\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const inputRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n ref={containerRef}\n className={classNames(\n \"mb-2 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field whitespace-nowrap\"\n style=\"h5\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"normal\"\n className={classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n {\n \"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={inputRef}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex\">\n <Typography\n className=\"mr-2\"\n style=\"h4\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_useTranslation","useTranslation","t","containerRef","useHotkeys","mode","icon","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","error","label","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","handleMetadataSubmit","fieldId","handleMetadataCancel","inputRef","InputComponent","PhoneNumberInput","Input","handleChange","event","target","useEffect","_jsxs","ref","className","classNames","children","Tooltip","content","concat","Typography","style","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","position","weight","onClick","CopyToClipboardButton","autoFocus","placeholder","what","type","onChange","Button","Close","tooltipProps","Check","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","filter","detail","map","index","_createElement","key","memo","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}
1
+ {"version":3,"file":"SessionEnvironment.js","sources":["../../src/components/SessionEnvironment/constants.js","../../src/components/SessionEnvironment/utils.jsx","../../src/components/SessionEnvironment/Item.jsx","../../src/components/SessionEnvironment/DetailsBlock.jsx","../../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input, Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getIcon, getInputType } from \"./utils\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const containerRef = useHotkeys(ESCAPE, () => handleCancel(name), {\n mode: \"scoped\",\n });\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const inputRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n ref={containerRef}\n className={classNames(\n \"mb-2 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field whitespace-nowrap\"\n style=\"h5\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"normal\"\n className={classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n {\n \"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={inputRef}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex\">\n <Typography\n className=\"mr-2\"\n style=\"h4\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_useTranslation","useTranslation","t","containerRef","useHotkeys","mode","icon","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","error","label","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","handleMetadataSubmit","fieldId","handleMetadataCancel","inputRef","InputComponent","PhoneNumberInput","Input","handleChange","event","target","useEffect","_jsxs","ref","className","classNames","children","Tooltip","content","concat","Typography","style","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","position","weight","onClick","CopyToClipboardButton","autoFocus","placeholder","what","type","onChange","Button","Close","tooltipProps","Check","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","filter","detail","map","index","_createElement","key","memo","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}