guestbell-forms 3.0.22 → 3.0.23

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.
@@ -28,6 +28,7 @@ export interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>
28
28
  minLanesCount?: number;
29
29
  lanesSource?: LaneSourceData<T, TLaneData>[];
30
30
  children?: React.ReactNode;
31
+ bookingCalendarTopLeftHeader?: React.ReactNode;
31
32
  zoomLevels?: ZoomLevel[];
32
33
  filterBookingsToZoom?: (booking: T) => boolean;
33
34
  BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;
@@ -59,6 +59,7 @@ function BookingCalendar(props) {
59
59
  BookingCalendarLaneHeader = _bookingCalendarLaneHeader.BookingCalendarLaneHeader,
60
60
  BookingCalendarLanesHeader = _bookingCalendarLanesHeader.BookingCalendarLanesHeader,
61
61
  BookingCalendarDatePicker = _bookingCalendarDatePicker.BookingCalendarDatePicker,
62
+ bookingCalendarTopLeftHeader,
62
63
  children
63
64
  } = props;
64
65
  const lanes = React.useMemo(() => (0, _utils.splitBookingsToLanes)(bookings, from, minLanesCount, lanesSource), [bookings, from, minLanesCount, lanesSource]);
@@ -98,7 +99,13 @@ function BookingCalendar(props) {
98
99
  onRangeChange: onRangeChange,
99
100
  step: step,
100
101
  filterBookingsToZoom: filterBookingsToZoom,
101
- zoomLevels: zoomLevels
102
+ zoomLevels: zoomLevels,
103
+ bookingCalendarDatePicker: /*#__PURE__*/React.createElement(React.Fragment, null, typeof BookingCalendarDatePicker === 'function' ? /*#__PURE__*/React.createElement(BookingCalendarDatePicker, {
104
+ from: from,
105
+ till: till,
106
+ onRangeChange: onRangeChange,
107
+ getNewMomentFunction: getNewMomentFunction
108
+ }) : BookingCalendarDatePicker, from.format('MMMM'), ", ", from.format('YYYY'))
102
109
  })), /*#__PURE__*/React.createElement("div", {
103
110
  className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.tableClassName, tableClassName)
104
111
  }, showGrid && /*#__PURE__*/React.createElement(BookingCalendarGrid, {
@@ -111,12 +118,7 @@ function BookingCalendar(props) {
111
118
  minSelectionSize: minSelectionSize
112
119
  }), /*#__PURE__*/React.createElement("div", {
113
120
  className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName, lanesHeaderHeaderContainerClassName)
114
- }, typeof BookingCalendarDatePicker === 'function' ? /*#__PURE__*/React.createElement(BookingCalendarDatePicker, {
115
- from: from,
116
- till: till,
117
- onRangeChange: onRangeChange,
118
- getNewMomentFunction: getNewMomentFunction
119
- }) : BookingCalendarDatePicker), /*#__PURE__*/React.createElement("div", {
121
+ }, bookingCalendarTopLeftHeader), /*#__PURE__*/React.createElement("div", {
120
122
  className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.lanesHeaderContainerClassName, lanesHeaderContainerClassName),
121
123
  ref: observe
122
124
  }, /*#__PURE__*/React.createElement(BookingCalendarLanesHeader, _extends({}, controlsClasses, {
@@ -1 +1 @@
1
- {"version":3,"file":"BookingCalendar.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","_common","_BookingCalendarControls","_utils","_BookingCalendarLane","_moment","_BookingCalendarGrid","_bookingCalendarLaneHeader","_bookingCalendarLanesHeader","_bookingCalendarDatePicker","_","_BookingCalendarTimeAxis","_reactCoolDimensions","_BookingCalendarSelection","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","defaultStep","duration","BookingCalendar","props","_entry$target","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showSelection","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minSelectionSize","minLanesCount","lanesSource","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","children","lanes","useMemo","splitBookingsToLanes","observe","entry","useDimensions","width","scrollWidth","items","gridItems","bestStep","_from$clone","generateGridItems","clone","startOf","onSelected","useCallback","data","screenSpaceStartX","Math","min","origin","screenSpaceEndX","max","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","createElement","classNames","bookingCalendarDefaultClasses","dataRowsCount","ref","map","lane","laneIndex","LaneBookingCalendarLaneHeader","LaneBookingCalendarLane","Fragment","rowClassName","laneKey","BookingCalendarTimeAxis"],"sources":["../../../src/lib/components/bookingCalendar/BookingCalendar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarClasses,\r\n bookingCalendarDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n defaultGetMomentFormatFunction,\r\n GetNewMomentFunctionType,\r\n} from './common';\r\nimport {\r\n BookingCalendarControls as DefaultBookingCalendarControls,\r\n BookingCalendarControlsProps,\r\n} from './bookingCalendarControls/BookingCalendarControls';\r\nimport {\r\n generateGridItems,\r\n LaneSourceData,\r\n splitBookingsToLanes,\r\n} from './utils';\r\nimport {\r\n BookingCalendarLane as DefaultBookingCalendarLane,\r\n BookingCalendarLaneProps,\r\n} from './bookingCalendarLane/BookingCalendarLane';\r\nimport { Moment, Duration, duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarGrid as DefaultBookingCalendarGrid,\r\n BookingCalendarGridProps,\r\n} from './bookingCalendarGrid/BookingCalendarGrid';\r\nimport {\r\n BookingCalendarLaneHeader as DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLaneHeaderProps,\r\n} from './bookingCalendarLaneHeader';\r\nimport {\r\n BookingCalendarLanesHeader as DefaultBookingCalendarLanesHeader,\r\n BookingCalendarLanesHeaderProps,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\r\nimport {\r\n defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\r\n} from '.';\r\nimport { BookingCalendarTimeAxis } from './bookingCalendarTimeAxis/BookingCalendarTimeAxis';\r\nimport useDimensions from 'react-cool-dimensions';\r\nimport BookingCalendarSelection, {\r\n BookingCalendarSelectionData,\r\n} from './bookingCalendarSelection/BookingCalendarSelection';\r\n\r\nexport interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>\r\n extends BookingCalendarClasses {\r\n bookings: T[];\r\n from: Moment;\r\n till: Moment;\r\n getMomentFormatFunction?: GetMomentFormatFunctionType;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n step?: Duration;\r\n showGrid?: boolean;\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n children?: React.ReactNode;\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = duration(1, 'day');\r\n\r\nexport function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(\r\n props: BookingCalendarProps<T, TLaneData>\r\n) {\r\n const {\r\n bookings,\r\n className,\r\n laneContainerClassName,\r\n laneHeaderContainerClassName,\r\n lanesHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName,\r\n controlsClasses,\r\n tableClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n step = defaultStep,\r\n showGrid = true,\r\n showSelection = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minSelectionSize = 10,\r\n minLanesCount,\r\n lanesSource,\r\n filterBookingsToZoom,\r\n zoomLevels,\r\n BookingCalendarControls = DefaultBookingCalendarControls,\r\n BookingCalendarItem,\r\n BookingCalendarLane = DefaultBookingCalendarLane,\r\n BookingCalendarRenderItem,\r\n BookingCalendarGrid = DefaultBookingCalendarGrid,\r\n BookingCalendarLaneHeader = DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLanesHeader = DefaultBookingCalendarLanesHeader,\r\n BookingCalendarDatePicker = DefaultBookingCalendarDatePicker,\r\n children,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource\r\n ),\r\n [bookings, from, minLanesCount, lanesSource]\r\n );\r\n const { observe, entry } = useDimensions<HTMLDivElement>();\r\n const width = entry?.target?.scrollWidth ?? 0;\r\n const { items: gridItems, bestStep } = React.useMemo(\r\n () =>\r\n generateGridItems(\r\n from,\r\n till,\r\n step,\r\n width,\r\n gridAvailableSteps,\r\n goalGridWidthPx,\r\n from?.clone()?.startOf('day')\r\n ),\r\n [from, till, step, width, gridAvailableSteps, goalGridWidthPx]\r\n );\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);\r\n const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from\r\n .clone()\r\n .add(toTimeSpace(screenSpaceStartX), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');\r\n onRangeChange({ from: timeSpaceStart, till: timeSpaceEnd });\r\n },\r\n [from, till, width, onRangeChange]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n >\r\n <BookingCalendarControls<T>\r\n {...controlsClasses}\r\n items={bookings}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n filterBookingsToZoom={filterBookingsToZoom}\r\n zoomLevels={zoomLevels}\r\n />\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.tableClassName,\r\n tableClassName\r\n )}\r\n >\r\n {showGrid && (\r\n <BookingCalendarGrid\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n width={width}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n />\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {typeof BookingCalendarDatePicker === 'function' ? (\r\n <BookingCalendarDatePicker\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n getNewMomentFunction={getNewMomentFunction}\r\n />\r\n ) : (\r\n BookingCalendarDatePicker\r\n )}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n ref={observe}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"BookingCalendar.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","_common","_BookingCalendarControls","_utils","_BookingCalendarLane","_moment","_BookingCalendarGrid","_bookingCalendarLaneHeader","_bookingCalendarLanesHeader","_bookingCalendarDatePicker","_","_BookingCalendarTimeAxis","_reactCoolDimensions","_BookingCalendarSelection","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","defaultStep","duration","BookingCalendar","props","_entry$target","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showSelection","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minSelectionSize","minLanesCount","lanesSource","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","bookingCalendarTopLeftHeader","children","lanes","useMemo","splitBookingsToLanes","observe","entry","useDimensions","width","scrollWidth","items","gridItems","bestStep","_from$clone","generateGridItems","clone","startOf","onSelected","useCallback","data","screenSpaceStartX","Math","min","origin","screenSpaceEndX","max","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","createElement","classNames","bookingCalendarDefaultClasses","bookingCalendarDatePicker","Fragment","format","dataRowsCount","ref","map","lane","laneIndex","LaneBookingCalendarLaneHeader","LaneBookingCalendarLane","rowClassName","laneKey","BookingCalendarTimeAxis"],"sources":["../../../src/lib/components/bookingCalendar/BookingCalendar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarClasses,\r\n bookingCalendarDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n defaultGetMomentFormatFunction,\r\n GetNewMomentFunctionType,\r\n} from './common';\r\nimport {\r\n BookingCalendarControls as DefaultBookingCalendarControls,\r\n BookingCalendarControlsProps,\r\n} from './bookingCalendarControls/BookingCalendarControls';\r\nimport {\r\n generateGridItems,\r\n LaneSourceData,\r\n splitBookingsToLanes,\r\n} from './utils';\r\nimport {\r\n BookingCalendarLane as DefaultBookingCalendarLane,\r\n BookingCalendarLaneProps,\r\n} from './bookingCalendarLane/BookingCalendarLane';\r\nimport { Moment, Duration, duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarGrid as DefaultBookingCalendarGrid,\r\n BookingCalendarGridProps,\r\n} from './bookingCalendarGrid/BookingCalendarGrid';\r\nimport {\r\n BookingCalendarLaneHeader as DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLaneHeaderProps,\r\n} from './bookingCalendarLaneHeader';\r\nimport {\r\n BookingCalendarLanesHeader as DefaultBookingCalendarLanesHeader,\r\n BookingCalendarLanesHeaderProps,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\r\nimport {\r\n defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\r\n} from '.';\r\nimport { BookingCalendarTimeAxis } from './bookingCalendarTimeAxis/BookingCalendarTimeAxis';\r\nimport useDimensions from 'react-cool-dimensions';\r\nimport BookingCalendarSelection, {\r\n BookingCalendarSelectionData,\r\n} from './bookingCalendarSelection/BookingCalendarSelection';\r\n\r\nexport interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>\r\n extends BookingCalendarClasses {\r\n bookings: T[];\r\n from: Moment;\r\n till: Moment;\r\n getMomentFormatFunction?: GetMomentFormatFunctionType;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n step?: Duration;\r\n showGrid?: boolean;\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n children?: React.ReactNode;\r\n bookingCalendarTopLeftHeader?: React.ReactNode;\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = duration(1, 'day');\r\n\r\nexport function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(\r\n props: BookingCalendarProps<T, TLaneData>\r\n) {\r\n const {\r\n bookings,\r\n className,\r\n laneContainerClassName,\r\n laneHeaderContainerClassName,\r\n lanesHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName,\r\n controlsClasses,\r\n tableClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n step = defaultStep,\r\n showGrid = true,\r\n showSelection = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minSelectionSize = 10,\r\n minLanesCount,\r\n lanesSource,\r\n filterBookingsToZoom,\r\n zoomLevels,\r\n BookingCalendarControls = DefaultBookingCalendarControls,\r\n BookingCalendarItem,\r\n BookingCalendarLane = DefaultBookingCalendarLane,\r\n BookingCalendarRenderItem,\r\n BookingCalendarGrid = DefaultBookingCalendarGrid,\r\n BookingCalendarLaneHeader = DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLanesHeader = DefaultBookingCalendarLanesHeader,\r\n BookingCalendarDatePicker = DefaultBookingCalendarDatePicker,\r\n bookingCalendarTopLeftHeader,\r\n children,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource\r\n ),\r\n [bookings, from, minLanesCount, lanesSource]\r\n );\r\n const { observe, entry } = useDimensions<HTMLDivElement>();\r\n const width = entry?.target?.scrollWidth ?? 0;\r\n const { items: gridItems, bestStep } = React.useMemo(\r\n () =>\r\n generateGridItems(\r\n from,\r\n till,\r\n step,\r\n width,\r\n gridAvailableSteps,\r\n goalGridWidthPx,\r\n from?.clone()?.startOf('day')\r\n ),\r\n [from, till, step, width, gridAvailableSteps, goalGridWidthPx]\r\n );\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);\r\n const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from\r\n .clone()\r\n .add(toTimeSpace(screenSpaceStartX), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');\r\n onRangeChange({ from: timeSpaceStart, till: timeSpaceEnd });\r\n },\r\n [from, till, width, onRangeChange]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n >\r\n <BookingCalendarControls<T>\r\n {...controlsClasses}\r\n items={bookings}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n filterBookingsToZoom={filterBookingsToZoom}\r\n zoomLevels={zoomLevels}\r\n bookingCalendarDatePicker={\r\n <>\r\n {typeof BookingCalendarDatePicker === 'function' ? (\r\n <BookingCalendarDatePicker\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n getNewMomentFunction={getNewMomentFunction}\r\n />\r\n ) : (\r\n BookingCalendarDatePicker\r\n )}\r\n {from.format('MMMM')}, {from.format('YYYY')}\r\n </>\r\n }\r\n />\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.tableClassName,\r\n tableClassName\r\n )}\r\n >\r\n {showGrid && (\r\n <BookingCalendarGrid\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n width={width}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n />\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {bookingCalendarTopLeftHeader}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n ref={observe}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { BookingCalendarDateRange, BookingCalendarItemT, ZoomLevel } from '../common';
3
3
  import { Duration, Moment } from 'moment';
4
4
  import { BookingCalendarControlsClasses } from './classes';
@@ -10,5 +10,6 @@ export interface BookingCalendarControlsProps<T extends BookingCalendarItemT> ex
10
10
  zoomLevels?: ZoomLevel[];
11
11
  onRangeChange?: (range: BookingCalendarDateRange) => void;
12
12
  filterBookingsToZoom?: (booking: T) => boolean;
13
+ bookingCalendarDatePicker?: React.ReactNode;
13
14
  }
14
15
  export declare function BookingCalendarControls<T extends BookingCalendarItemT>(props: BookingCalendarControlsProps<T>): JSX.Element;
@@ -80,7 +80,8 @@ function BookingCalendarControls(props) {
80
80
  till,
81
81
  onRangeChange,
82
82
  items,
83
- filterBookingsToZoom = () => true
83
+ filterBookingsToZoom = () => true,
84
+ bookingCalendarDatePicker
84
85
  } = props;
85
86
  if (!step || !from || !till) {
86
87
  return null;
@@ -106,9 +107,9 @@ function BookingCalendarControls(props) {
106
107
  }, [from, till, filteredItems]);
107
108
  return /*#__PURE__*/React.createElement("div", {
108
109
  className: (0, _classnames.default)(_.bookingCalendarControlsDefaultClasses.className, className)
109
- }, /*#__PURE__*/React.createElement("div", {
110
+ }, bookingCalendarDatePicker && /*#__PURE__*/React.createElement("div", {
110
111
  className: (0, _classnames.default)(_.bookingCalendarControlsDefaultClasses.monthLabelClassName, monthLabelClassName)
111
- }, from.format('MMMM'), ", ", from.format('YYYY')), (zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.length) > 0 && /*#__PURE__*/React.createElement("div", {
112
+ }, bookingCalendarDatePicker), (zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.length) > 0 && /*#__PURE__*/React.createElement("div", {
112
113
  className: (0, _classnames.default)(_.bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName, zoomLevelsContainerClassName)
113
114
  }, zoomLevels.map((level, index) => /*#__PURE__*/React.createElement(_Button.Button, {
114
115
  type: till.valueOf() - from.valueOf() === level.step.asMilliseconds() ? 'primary' : undefined
@@ -1 +1 @@
1
- {"version":3,"file":"BookingCalendarControls.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_moment","_","_Button","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LeftArrowLongIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","RightArrowLongIcon","RightArrowIcon","UnfoldLessIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","filteredItems","useMemo","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","valueOf","minFrom","subtract","maxTillMs","max","maxTill","classNames","bookingCalendarControlsDefaultClasses","format","length","level","index","Button","type","asMilliseconds","undefined","noShadow","onClick","startOf","label","disabled"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n ZoomLevel,\r\n} from '../common';\r\nimport { duration, Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from '.';\r\nimport { Button } from '../../button/Button';\r\nimport * as LeftArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg';\r\nimport * as RightArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_forward_24px.svg';\r\nimport * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';\r\nimport * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';\r\n\r\nexport interface BookingCalendarControlsProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarControlsClasses {\r\n items: T[];\r\n step: Duration;\r\n from: Moment;\r\n till: Moment;\r\n zoomLevels?: ZoomLevel[];\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n}\r\n\r\nexport function BookingCalendarControls<T extends BookingCalendarItemT>(\r\n props: BookingCalendarControlsProps<T>\r\n) {\r\n const {\r\n className,\r\n monthLabelClassName,\r\n buttonsContainerClassName,\r\n zoomBookingsButtonClassName,\r\n zoomLevelsContainerClassName,\r\n zoomLevels,\r\n step,\r\n from,\r\n till,\r\n onRangeChange,\r\n items,\r\n filterBookingsToZoom = () => true,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const onStepFactory = React.useCallback(\r\n (_step: Duration) => () =>\r\n onRangeChange({\r\n from: from.clone().add(_step),\r\n till: till.clone().add(_step),\r\n }),\r\n [from, till, onRangeChange]\r\n );\r\n const onBigStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const filteredItems = React.useMemo(\r\n () => items?.filter(filterBookingsToZoom),\r\n [filterBookingsToZoom, items]\r\n );\r\n const onZoomBookingsClick = React.useCallback(() => {\r\n const minFromMs =\r\n Math.min(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map(a => a.from.valueOf())\r\n ) ?? from?.valueOf();\r\n const minFrom = from.clone().subtract(from.valueOf() - minFromMs, 'ms');\r\n const maxTillMs =\r\n Math.max(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map(a => a.till.valueOf())\r\n ) ?? till?.valueOf();\r\n const maxTill = till.clone().subtract(till.valueOf() - maxTillMs, 'ms');\r\n onRangeChange({\r\n from: minFrom,\r\n till: maxTill,\r\n });\r\n }, [from, till, filteredItems]);\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.monthLabelClassName,\r\n monthLabelClassName\r\n )}\r\n >\r\n {from.format('MMMM')}, {from.format('YYYY')}\r\n </div>\r\n {zoomLevels?.length > 0 && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName,\r\n zoomLevelsContainerClassName\r\n )}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <Button\r\n type={\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ? 'primary'\r\n : undefined\r\n }\r\n // blank={true}\r\n noShadow={true}\r\n key={index}\r\n onClick={() =>\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from\r\n .clone()\r\n .startOf('day')\r\n .add(level.step),\r\n })\r\n }\r\n >\r\n {level.label}\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.buttonsContainerClassName,\r\n buttonsContainerClassName\r\n )}\r\n >\r\n <Button noShadow={true} onClick={onBigStepLeftClick}>\r\n <LeftArrowLongIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepLeftClick}>\r\n <LeftArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepRightClick}>\r\n <RightArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onBigStepRightClick}>\r\n <RightArrowLongIcon />\r\n </Button>\r\n <Button\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomBookingsButtonClassName,\r\n zoomBookingsButtonClassName\r\n )}\r\n noShadow={true}\r\n disabled={!filteredItems?.length}\r\n onClick={onZoomBookingsClick}\r\n >\r\n <UnfoldLessIcon />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"BookingCalendarControls.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_moment","_","_Button","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LeftArrowLongIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","RightArrowLongIcon","RightArrowIcon","UnfoldLessIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","bookingCalendarDatePicker","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","filteredItems","useMemo","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","valueOf","minFrom","subtract","maxTillMs","max","maxTill","classNames","bookingCalendarControlsDefaultClasses","length","level","index","Button","type","asMilliseconds","undefined","noShadow","onClick","startOf","label","disabled"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n ZoomLevel,\r\n} from '../common';\r\nimport { duration, Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from '.';\r\nimport { Button } from '../../button/Button';\r\nimport * as LeftArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg';\r\nimport * as RightArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_forward_24px.svg';\r\nimport * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';\r\nimport * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';\r\n\r\nexport interface BookingCalendarControlsProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarControlsClasses {\r\n items: T[];\r\n step: Duration;\r\n from: Moment;\r\n till: Moment;\r\n zoomLevels?: ZoomLevel[];\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n bookingCalendarDatePicker?: React.ReactNode;\r\n}\r\n\r\nexport function BookingCalendarControls<T extends BookingCalendarItemT>(\r\n props: BookingCalendarControlsProps<T>\r\n) {\r\n const {\r\n className,\r\n monthLabelClassName,\r\n buttonsContainerClassName,\r\n zoomBookingsButtonClassName,\r\n zoomLevelsContainerClassName,\r\n zoomLevels,\r\n step,\r\n from,\r\n till,\r\n onRangeChange,\r\n items,\r\n filterBookingsToZoom = () => true,\r\n bookingCalendarDatePicker,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const onStepFactory = React.useCallback(\r\n (_step: Duration) => () =>\r\n onRangeChange({\r\n from: from.clone().add(_step),\r\n till: till.clone().add(_step),\r\n }),\r\n [from, till, onRangeChange]\r\n );\r\n const onBigStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const filteredItems = React.useMemo(\r\n () => items?.filter(filterBookingsToZoom),\r\n [filterBookingsToZoom, items]\r\n );\r\n const onZoomBookingsClick = React.useCallback(() => {\r\n const minFromMs =\r\n Math.min(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map((a) => a.from.valueOf())\r\n ) ?? from?.valueOf();\r\n const minFrom = from.clone().subtract(from.valueOf() - minFromMs, 'ms');\r\n const maxTillMs =\r\n Math.max(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map((a) => a.till.valueOf())\r\n ) ?? till?.valueOf();\r\n const maxTill = till.clone().subtract(till.valueOf() - maxTillMs, 'ms');\r\n onRangeChange({\r\n from: minFrom,\r\n till: maxTill,\r\n });\r\n }, [from, till, filteredItems]);\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n {bookingCalendarDatePicker && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.monthLabelClassName,\r\n monthLabelClassName\r\n )}\r\n >\r\n {bookingCalendarDatePicker}\r\n </div>\r\n )}\r\n {zoomLevels?.length > 0 && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName,\r\n zoomLevelsContainerClassName\r\n )}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <Button\r\n type={\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ? 'primary'\r\n : undefined\r\n }\r\n // blank={true}\r\n noShadow={true}\r\n key={index}\r\n onClick={() =>\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from.clone().startOf('day').add(level.step),\r\n })\r\n }\r\n >\r\n {level.label}\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.buttonsContainerClassName,\r\n buttonsContainerClassName\r\n )}\r\n >\r\n <Button noShadow={true} onClick={onBigStepLeftClick}>\r\n <LeftArrowLongIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepLeftClick}>\r\n <LeftArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepRightClick}>\r\n <RightArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onBigStepRightClick}>\r\n <RightArrowLongIcon />\r\n </Button>\r\n <Button\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomBookingsButtonClassName,\r\n zoomBookingsButtonClassName\r\n )}\r\n noShadow={true}\r\n disabled={!filteredItems?.length}\r\n onClick={onZoomBookingsClick}\r\n >\r\n <UnfoldLessIcon />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAMA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,CAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAA6C,SAAAM,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAlB,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IACjCiB,iBAAiB,YAAjBA,iBAAiBA,CAAAC,KAAA;EAAA,oBAAA5B,KAAA,CAAA6B,aAAA,QAAAD,KAAA,eAAA5B,KAAA,CAAA6B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAjBH,iBAAiB,CAAAI,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAAA,IACjBC,aAAa,YAAbA,aAAaA,CAAAR,KAAA;EAAA,oBAAA5B,KAAA,CAAA6B,aAAA,QAAAD,KAAA,eAAA5B,KAAA,CAAA6B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAbM,aAAa,CAAAL,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAAA,IACbE,kBAAkB,YAAlBA,kBAAkBA,CAAAT,KAAA;EAAA,oBAAA5B,KAAA,CAAA6B,aAAA,QAAAD,KAAA,eAAA5B,KAAA,CAAA6B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAlBO,kBAAkB,CAAAN,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAAA,IAClBG,cAAc,YAAdA,cAAcA,CAAAV,KAAA;EAAA,oBAAA5B,KAAA,CAAA6B,aAAA,QAAAD,KAAA,eAAA5B,KAAA,CAAA6B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAdQ,cAAc,CAAAP,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAAA,IACdI,cAAc,YAAdA,cAAcA,CAAAX,KAAA;EAAA,oBAAA5B,KAAA,CAAA6B,aAAA,QAAAD,KAAA,eAAA5B,KAAA,CAAA6B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAdS,cAAc,CAAAR,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAcnB,SAASK,uBAAuBA,CACrCZ,KAAsC,EACtC;EACA,MAAM;IACJa,SAAS;IACTC,mBAAmB;IACnBC,yBAAyB;IACzBC,2BAA2B;IAC3BC,4BAA4B;IAC5BC,UAAU;IACVC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,aAAa;IACbC,KAAK;IACLC,oBAAoB,GAAGA,CAAA,KAAM,IAAI;IACjCC;EACF,CAAC,GAAGzB,KAAK;EACT,IAAI,CAACmB,IAAI,IAAI,CAACC,IAAI,IAAI,CAACC,IAAI,EAAE;IAC3B,OAAO,IAAI;EACb;EACA,MAAMK,aAAa,GAAGtD,KAAK,CAACuD,WAAW,CACpCC,KAAe,IAAK,MACnBN,aAAa,CAAC;IACZF,IAAI,EAAEA,IAAI,CAACS,KAAK,CAAC,CAAC,CAACC,GAAG,CAACF,KAAK,CAAC;IAC7BP,IAAI,EAAEA,IAAI,CAACQ,KAAK,CAAC,CAAC,CAACC,GAAG,CAACF,KAAK;EAC9B,CAAC,CAAC,EACJ,CAACR,IAAI,EAAEC,IAAI,EAAEC,aAAa,CAC5B,CAAC;EACD,MAAMS,kBAAkB,GAAG3D,KAAK,CAACuD,WAAW,CAC1CD,aAAa,CAAC,IAAAM,gBAAQ,EAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EACnC,CAACN,aAAa,EAAEL,IAAI,EAAED,IAAI,CAC5B,CAAC;EACD,MAAMa,oBAAoB,GAAG7D,KAAK,CAACuD,WAAW,CAC5CD,aAAa,CAAC,IAAAM,gBAAQ,EAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAClC,CAACN,aAAa,EAAEP,IAAI,CACtB,CAAC;EACD,MAAMe,mBAAmB,GAAG9D,KAAK,CAACuD,WAAW,CAC3CD,aAAa,CAAC,IAAAM,gBAAQ,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAClC,CAACN,aAAa,EAAEL,IAAI,EAAED,IAAI,CAC5B,CAAC;EACD,MAAMe,qBAAqB,GAAG/D,KAAK,CAACuD,WAAW,CAC7CD,aAAa,CAAC,IAAAM,gBAAQ,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EACjC,CAACN,aAAa,EAAEP,IAAI,CACtB,CAAC;EACD,MAAMiB,aAAa,GAAGhE,KAAK,CAACiE,OAAO,CACjC,MAAMd,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEe,MAAM,CAACd,oBAAoB,CAAC,EACzC,CAACA,oBAAoB,EAAED,KAAK,CAC9B,CAAC;EACD,MAAMgB,mBAAmB,GAAGnE,KAAK,CAACuD,WAAW,CAAC,MAAM;IAClD,MAAMa,SAAS,GACbC,IAAI,CAACC,GAAG,CACN,IAAGN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CACZE,MAAM,CAACd,oBAAoB,CAAC,CAC7BmB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACxB,IAAI,CAACyB,OAAO,CAAC,CAAC,CAAC,CACjC,CAAC,KAAIzB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEyB,OAAO,CAAC,CAAC;IACtB,MAAMC,OAAO,GAAG1B,IAAI,CAACS,KAAK,CAAC,CAAC,CAACkB,QAAQ,CAAC3B,IAAI,CAACyB,OAAO,CAAC,CAAC,GAAGL,SAAS,EAAE,IAAI,CAAC;IACvE,MAAMQ,SAAS,GACbP,IAAI,CAACQ,GAAG,CACN,IAAGb,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CACZE,MAAM,CAACd,oBAAoB,CAAC,CAC7BmB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACvB,IAAI,CAACwB,OAAO,CAAC,CAAC,CAAC,CACjC,CAAC,KAAIxB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEwB,OAAO,CAAC,CAAC;IACtB,MAAMK,OAAO,GAAG7B,IAAI,CAACQ,KAAK,CAAC,CAAC,CAACkB,QAAQ,CAAC1B,IAAI,CAACwB,OAAO,CAAC,CAAC,GAAGG,SAAS,EAAE,IAAI,CAAC;IACvE1B,aAAa,CAAC;MACZF,IAAI,EAAE0B,OAAO;MACbzB,IAAI,EAAE6B;IACR,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC9B,IAAI,EAAEC,IAAI,EAAEe,aAAa,CAAC,CAAC;EAC/B,oBACEhE,KAAA,CAAA6B,aAAA;IACEY,SAAS,EAAE,IAAAsC,mBAAU,EACnBC,uCAAqC,CAACvC,SAAS,EAC/CA,SACF;EAAE,GAEDY,yBAAyB,iBACxBrD,KAAA,CAAA6B,aAAA;IACEY,SAAS,EAAE,IAAAsC,mBAAU,EACnBC,uCAAqC,CAACtC,mBAAmB,EACzDA,mBACF;EAAE,GAEDW,yBACE,CACN,EACA,CAAAP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEmC,MAAM,IAAG,CAAC,iBACrBjF,KAAA,CAAA6B,aAAA;IACEY,SAAS,EAAE,IAAAsC,mBAAU,EACnBC,uCAAqC,CAACnC,4BAA4B,EAClEA,4BACF;EAAE,GAEDC,UAAU,CAACyB,GAAG,CAAC,CAACW,KAAK,EAAEC,KAAK,kBAC3BnF,KAAA,CAAA6B,aAAA,CAACzB,OAAA,CAAAgF,MAAM;IACLC,IAAI,EACFpC,IAAI,CAACwB,OAAO,CAAC,CAAC,GAAGzB,IAAI,CAACyB,OAAO,CAAC,CAAC,KAAKS,KAAK,CAACnC,IAAI,CAACuC,cAAc,CAAC,CAAC,GAC3D,SAAS,GACTC;IAEN;IAAA;IACAC,QAAQ,EAAE,IAAK;IACfnE,GAAG,EAAE8D,KAAM;IACXM,OAAO,EAAEA,CAAA,KACPvC,aAAa,CAAC;MACZF,IAAI,EAAEA,IAAI,CAACS,KAAK,CAAC,CAAC,CAACiC,OAAO,CAAC,KAAK,CAAC;MACjCzC,IAAI,EAAED,IAAI,CAACS,KAAK,CAAC,CAAC,CAACiC,OAAO,CAAC,KAAK,CAAC,CAAChC,GAAG,CAACwB,KAAK,CAACnC,IAAI;IAClD,CAAC;EACF,GAEAmC,KAAK,CAACS,KACD,CACT,CACE,CACN,eACD3F,KAAA,CAAA6B,aAAA;IACEY,SAAS,EAAE,IAAAsC,mBAAU,EACnBC,uCAAqC,CAACrC,yBAAyB,EAC/DA,yBACF;EAAE,gBAEF3C,KAAA,CAAA6B,aAAA,CAACzB,OAAA,CAAAgF,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACC,OAAO,EAAE9B;EAAmB,gBAClD3D,KAAA,CAAA6B,aAAA,CAACF,iBAAiB,MAAE,CACd,CAAC,eACT3B,KAAA,CAAA6B,aAAA,CAACzB,OAAA,CAAAgF,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACC,OAAO,EAAE5B;EAAqB,gBACpD7D,KAAA,CAAA6B,aAAA,CAACO,aAAa,MAAE,CACV,CAAC,eACTpC,KAAA,CAAA6B,aAAA,CAACzB,OAAA,CAAAgF,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACC,OAAO,EAAE1B;EAAsB,gBACrD/D,KAAA,CAAA6B,aAAA,CAACS,cAAc,MAAE,CACX,CAAC,eACTtC,KAAA,CAAA6B,aAAA,CAACzB,OAAA,CAAAgF,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACC,OAAO,EAAE3B;EAAoB,gBACnD9D,KAAA,CAAA6B,aAAA,CAACQ,kBAAkB,MAAE,CACf,CAAC,eACTrC,KAAA,CAAA6B,aAAA,CAACzB,OAAA,CAAAgF,MAAM;IACL3C,SAAS,EAAE,IAAAsC,mBAAU,EACnBC,uCAAqC,CAACpC,2BAA2B,EACjEA,2BACF,CAAE;IACF4C,QAAQ,EAAE,IAAK;IACfI,QAAQ,EAAE,EAAC5B,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEiB,MAAM,CAAC;IACjCQ,OAAO,EAAEtB;EAAoB,gBAE7BnE,KAAA,CAAA6B,aAAA,CAACU,cAAc,MAAE,CACX,CACL,CACF,CAAC;AAEV"}
@@ -2699,10 +2699,13 @@ a.guestbell__dropdown-toggle {
2699
2699
  .bookingCalendar__controls {
2700
2700
  display: flex;
2701
2701
  padding: 1rem;
2702
+ padding-bottom: 0.5rem;
2702
2703
  align-items: center; }
2703
2704
  .bookingCalendar__controls .bookingCalendar__controls__monthLabel {
2704
2705
  font-size: 130%;
2705
- font-weight: bold; }
2706
+ font-weight: bold;
2707
+ display: flex;
2708
+ align-items: center; }
2706
2709
  .bookingCalendar__controls .bookingCalendar__controls__buttonsContainer {
2707
2710
  margin-left: auto; }
2708
2711
  .bookingCalendar__controls .bookingCalendar__controls__zoomBookingsButton svg {