guestbell-forms 3.0.47 → 3.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/bookingCalendar/BookingCalendar.js +9 -2
- package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js +19 -1
- package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.d.ts +1 -0
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js +3 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js +7 -3
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.d.ts +1 -0
- package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js +3 -1
- package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.d.ts +1 -0
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js +2 -1
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js.map +1 -1
- package/build/components/bookingCalendar/utils.js +5 -2
- package/build/components/bookingCalendar/utils.js.map +1 -1
- package/build/dist/guestbell-forms.css +2 -5
- package/build/dist/guestbell-forms.css.map +1 -1
- package/build/dist/guestbell-forms.min.css +1 -1
- package/build/dist/report.html +2 -2
- package/build/scss/components/bookingCalendar/bookingCalendar.scss +0 -3
- package/package.json +1 -1
- package/src/lib/components/bookingCalendar/BookingCalendar.tsx +6 -1
- package/src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx +23 -8
- package/src/lib/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.tsx +4 -1
- package/src/lib/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.tsx +12 -2
- package/src/lib/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.tsx +4 -1
- package/src/lib/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.tsx +2 -0
- package/src/lib/components/bookingCalendar/utils.ts +5 -2
- package/src/lib/scss/components/bookingCalendar/bookingCalendar.scss +0 -3
- package/src/stories/OverlappingSchedule.tsx +4 -4
@@ -124,6 +124,7 @@ function BookingCalendar(props) {
|
|
124
124
|
}), timeSpaceStart, timeSpaceEnd, e);
|
125
125
|
}
|
126
126
|
}, [from, till, width, onRangeChange, onSelection, onSelection ? bookings : null]);
|
127
|
+
const firstDataRowIndex = showHeader ? 2 : 1;
|
127
128
|
return /*#__PURE__*/React.createElement("div", {
|
128
129
|
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.className, className),
|
129
130
|
ref: containerRef
|
@@ -146,16 +147,20 @@ function BookingCalendar(props) {
|
|
146
147
|
})), /*#__PURE__*/React.createElement("div", {
|
147
148
|
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.tableClassName, tableClassName)
|
148
149
|
}, showGrid && /*#__PURE__*/React.createElement(BookingCalendarGrid, {
|
150
|
+
firstDataRowIndex: firstDataRowIndex,
|
149
151
|
items: gridItems,
|
150
152
|
dataRowsCount: lanes.length,
|
151
|
-
width: width
|
153
|
+
width: width,
|
154
|
+
containerRef: showHeader ? undefined : observe
|
152
155
|
}), showNowSection && /*#__PURE__*/React.createElement(BookingCalendarNowSection, {
|
156
|
+
firstDataRowIndex: firstDataRowIndex,
|
153
157
|
from: from,
|
154
158
|
till: till,
|
155
159
|
dataRowsCount: lanes.length,
|
156
160
|
width: width,
|
157
161
|
alwaysShowSections: alwaysShowNowSections
|
158
162
|
}), showSelection && /*#__PURE__*/React.createElement(_BookingCalendarSelection.default, {
|
163
|
+
firstDataRowIndex: firstDataRowIndex,
|
159
164
|
dataRowsCount: lanes.length + (showTimeAxis ? 1 : 0),
|
160
165
|
onSelected: onSelected,
|
161
166
|
minSelectionSize: minSelectionSize
|
@@ -196,7 +201,9 @@ function BookingCalendar(props) {
|
|
196
201
|
BookingCalendarRenderItem: lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem,
|
197
202
|
step: step
|
198
203
|
})));
|
199
|
-
}), /*#__PURE__*/React.createElement("div", null), showTimeAxis && /*#__PURE__*/React.createElement("div",
|
204
|
+
}), /*#__PURE__*/React.createElement("div", null), showTimeAxis && /*#__PURE__*/React.createElement("div", {
|
205
|
+
ref: showGrid || showGrid ? undefined : observe
|
206
|
+
}, /*#__PURE__*/React.createElement(_BookingCalendarTimeAxis.BookingCalendarTimeAxis, {
|
200
207
|
items: gridItems,
|
201
208
|
bestStep: bestStep,
|
202
209
|
getMomentFormatFunction: getMomentFormatFunction
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendar.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","_common","_BookingCalendarControls","_utils","_BookingCalendarLane","_moment","_bookingCalendarItem","_BookingCalendarGrid","_bookingCalendarLaneHeader","_bookingCalendarLanesHeader","_bookingCalendarDatePicker","_BookingCalendarTimeAxis","_reactCoolDimensions","_BookingCalendarSelection","_bookingCalendarLane","_classes2","_bookingCalendarNowSection","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","moment","duration","BookingCalendar","props","_entry$target","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showHeader","showSelection","showNowSection","alwaysShowNowSections","onSelection","minSelectionSize","selectionContent","showZoomAllButton","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minLanesCount","lanesSource","unmatchedLanesToFront","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","BookingCalendarNowSection","DefaultBookingCalendarNowSection","bookingCalendarTopLeftHeader","filteringButton","children","showTimeAxis","Boolean","lanes","useMemo","splitBookingsToLanes","observe","entry","useDimensions","width","scrollWidth","items","gridItems","bestStep","_from$clone","generateGridItems","clone","startOf","containerRef","useRef","onSelected","useCallback","data","e","selectionLeft","Math","min","origin","selectionRight","max","selectionTop","selectionBottom","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","_containerRef$current","_containerRef$current2","itemSelector","bookingCalendarLaneDefaultClasses","bookingCalendarLanesHeaderDefaultClasses","laneClassName","bookingCalendarItemDefaultClasses","allItems","Array","current","querySelectorAll","selectionAreaBB","querySelector","bookingCalendarSelectionDefaultClasses","root","getBoundingClientRect","selectedItems","filter","item","itemBB","itemLeft","left","itemTop","top","itemRight","right","itemBottom","bottom","selectedIds","map","getAttribute","b","_b$id","includes","id","toString","createElement","classNames","bookingCalendarDefaultClasses","ref","bookingCalendarDatePicker","Fragment","dataRowsCount","alwaysShowSections","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 defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\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, { Moment, Duration } from 'moment';\r\nimport {\r\n BookingCalendarItemProps,\r\n bookingCalendarItemDefaultClasses,\r\n} 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 bookingCalendarLanesHeaderDefaultClasses,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\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\nimport { bookingCalendarLaneDefaultClasses } from './bookingCalendarLane';\r\nimport { bookingCalendarSelectionDefaultClasses } from './bookingCalendarSelection/classes';\r\nimport {\r\n BookingCalendarNowSectionProps,\r\n BookingCalendarNowSection as DefaultBookingCalendarNowSection,\r\n} from './bookingCalendarNowSection';\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 showZoomAllButton?: boolean;\r\n showGrid?: boolean;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n unmatchedLanesToFront?: boolean;\r\n children?: React.ReactNode;\r\n bookingCalendarTopLeftHeader?: React.ReactNode;\r\n filteringButton?: React.ReactNode;\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n onSelection?: (\r\n items: T[],\r\n from: Moment,\r\n till: Moment,\r\n e: React.MouseEvent<HTMLElement>\r\n ) => void;\r\n selectionContent?: React.ReactNode;\r\n\r\n showHeader?: boolean;\r\n showTimeAxis?: boolean;\r\n showNowSection?: boolean;\r\n alwaysShowNowSections?: 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 BookingCalendarNowSection?: React.ComponentType<BookingCalendarNowSectionProps>;\r\n}\r\n\r\nconst defaultStep = moment.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 showHeader = true,\r\n showSelection = true,\r\n showNowSection = true,\r\n alwaysShowNowSections = false,\r\n onSelection,\r\n minSelectionSize = 10,\r\n selectionContent,\r\n showZoomAllButton = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minLanesCount,\r\n lanesSource,\r\n unmatchedLanesToFront = true,\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 BookingCalendarNowSection = DefaultBookingCalendarNowSection,\r\n bookingCalendarTopLeftHeader,\r\n filteringButton,\r\n children,\r\n } = props;\r\n const {\r\n showTimeAxis = Boolean(bookings?.length) || Boolean(lanesSource?.length),\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n till,\r\n minLanesCount,\r\n lanesSource,\r\n unmatchedLanesToFront\r\n ),\r\n [bookings, from, till, minLanesCount, lanesSource, unmatchedLanesToFront]\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 containerRef = React.useRef<HTMLDivElement>();\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData, e: React.MouseEvent<HTMLElement>) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const selectionLeft = Math.min(data.origin[0], data.target[0]);\r\n const selectionRight = Math.max(data.origin[0], data.target[0]);\r\n const selectionTop = Math.min(data.origin[1], data.target[1]);\r\n const selectionBottom = Math.max(data.origin[1], data.target[1]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from.clone().add(toTimeSpace(selectionLeft), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(selectionRight), 'ms');\r\n if (onSelection) {\r\n const itemSelector = `.${bookingCalendarLaneDefaultClasses.className}:not(.${bookingCalendarLanesHeaderDefaultClasses.laneClassName}) > .${bookingCalendarItemDefaultClasses.className}`;\r\n const allItems = Array.from(\r\n containerRef?.current?.querySelectorAll(itemSelector)\r\n );\r\n const selectionAreaBB = containerRef?.current\r\n ?.querySelector(`.${bookingCalendarSelectionDefaultClasses.root}`)\r\n .getBoundingClientRect();\r\n const selectedItems = allItems.filter((item) => {\r\n const itemBB = item.getBoundingClientRect();\r\n const itemLeft = itemBB.left - selectionAreaBB.left;\r\n const itemTop = itemBB.top - selectionAreaBB.top;\r\n const itemRight = itemBB.right - selectionAreaBB.left;\r\n const itemBottom = itemBB.bottom - selectionAreaBB.top;\r\n // check if the item rectangle is contained or intersects or overlaps with the selection rectangle\r\n return (\r\n itemLeft < selectionRight &&\r\n itemRight > selectionLeft &&\r\n itemTop < selectionBottom &&\r\n itemBottom > selectionTop\r\n );\r\n });\r\n const selectedIds = selectedItems.map((item) =>\r\n item.getAttribute('data-id')\r\n );\r\n onSelection(\r\n bookings?.filter((b) => selectedIds.includes(b.id?.toString())),\r\n timeSpaceStart,\r\n timeSpaceEnd,\r\n e\r\n );\r\n }\r\n },\r\n [\r\n from,\r\n till,\r\n width,\r\n onRangeChange,\r\n onSelection,\r\n onSelection ? bookings : null,\r\n ]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n ref={containerRef}\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 filteringButton={filteringButton}\r\n showZoomAllButton={showZoomAllButton}\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 </>\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 {showNowSection && (\r\n <BookingCalendarNowSection\r\n from={from}\r\n till={till}\r\n dataRowsCount={lanes.length}\r\n width={width}\r\n alwaysShowSections={alwaysShowNowSections}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length + (showTimeAxis ? 1 : 0)}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n >\r\n {selectionContent}\r\n </BookingCalendarSelection>\r\n )}\r\n {showHeader && (\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 )}\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 {showTimeAxis && (\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 )}\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","_bookingCalendarItem","_BookingCalendarGrid","_bookingCalendarLaneHeader","_bookingCalendarLanesHeader","_bookingCalendarDatePicker","_BookingCalendarTimeAxis","_reactCoolDimensions","_BookingCalendarSelection","_bookingCalendarLane","_classes2","_bookingCalendarNowSection","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","moment","duration","BookingCalendar","props","_entry$target","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showHeader","showSelection","showNowSection","alwaysShowNowSections","onSelection","minSelectionSize","selectionContent","showZoomAllButton","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minLanesCount","lanesSource","unmatchedLanesToFront","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","BookingCalendarNowSection","DefaultBookingCalendarNowSection","bookingCalendarTopLeftHeader","filteringButton","children","showTimeAxis","Boolean","lanes","useMemo","splitBookingsToLanes","observe","entry","useDimensions","width","scrollWidth","items","gridItems","bestStep","_from$clone","generateGridItems","clone","startOf","containerRef","useRef","onSelected","useCallback","data","e","selectionLeft","Math","min","origin","selectionRight","max","selectionTop","selectionBottom","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","_containerRef$current","_containerRef$current2","itemSelector","bookingCalendarLaneDefaultClasses","bookingCalendarLanesHeaderDefaultClasses","laneClassName","bookingCalendarItemDefaultClasses","allItems","Array","current","querySelectorAll","selectionAreaBB","querySelector","bookingCalendarSelectionDefaultClasses","root","getBoundingClientRect","selectedItems","filter","item","itemBB","itemLeft","left","itemTop","top","itemRight","right","itemBottom","bottom","selectedIds","map","getAttribute","b","_b$id","includes","id","toString","firstDataRowIndex","createElement","classNames","bookingCalendarDefaultClasses","ref","bookingCalendarDatePicker","Fragment","dataRowsCount","undefined","alwaysShowSections","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 defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\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, { Moment, Duration } from 'moment';\r\nimport {\r\n BookingCalendarItemProps,\r\n bookingCalendarItemDefaultClasses,\r\n} 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 bookingCalendarLanesHeaderDefaultClasses,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\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\nimport { bookingCalendarLaneDefaultClasses } from './bookingCalendarLane';\r\nimport { bookingCalendarSelectionDefaultClasses } from './bookingCalendarSelection/classes';\r\nimport {\r\n BookingCalendarNowSectionProps,\r\n BookingCalendarNowSection as DefaultBookingCalendarNowSection,\r\n} from './bookingCalendarNowSection';\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 showZoomAllButton?: boolean;\r\n showGrid?: boolean;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n unmatchedLanesToFront?: boolean;\r\n children?: React.ReactNode;\r\n bookingCalendarTopLeftHeader?: React.ReactNode;\r\n filteringButton?: React.ReactNode;\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n onSelection?: (\r\n items: T[],\r\n from: Moment,\r\n till: Moment,\r\n e: React.MouseEvent<HTMLElement>\r\n ) => void;\r\n selectionContent?: React.ReactNode;\r\n\r\n showHeader?: boolean;\r\n showTimeAxis?: boolean;\r\n showNowSection?: boolean;\r\n alwaysShowNowSections?: 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 BookingCalendarNowSection?: React.ComponentType<BookingCalendarNowSectionProps>;\r\n}\r\n\r\nconst defaultStep = moment.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 showHeader = true,\r\n showSelection = true,\r\n showNowSection = true,\r\n alwaysShowNowSections = false,\r\n onSelection,\r\n minSelectionSize = 10,\r\n selectionContent,\r\n showZoomAllButton = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minLanesCount,\r\n lanesSource,\r\n unmatchedLanesToFront = true,\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 BookingCalendarNowSection = DefaultBookingCalendarNowSection,\r\n bookingCalendarTopLeftHeader,\r\n filteringButton,\r\n children,\r\n } = props;\r\n const {\r\n showTimeAxis = Boolean(bookings?.length) || Boolean(lanesSource?.length),\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n till,\r\n minLanesCount,\r\n lanesSource,\r\n unmatchedLanesToFront\r\n ),\r\n [bookings, from, till, minLanesCount, lanesSource, unmatchedLanesToFront]\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 containerRef = React.useRef<HTMLDivElement>();\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData, e: React.MouseEvent<HTMLElement>) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const selectionLeft = Math.min(data.origin[0], data.target[0]);\r\n const selectionRight = Math.max(data.origin[0], data.target[0]);\r\n const selectionTop = Math.min(data.origin[1], data.target[1]);\r\n const selectionBottom = Math.max(data.origin[1], data.target[1]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from.clone().add(toTimeSpace(selectionLeft), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(selectionRight), 'ms');\r\n if (onSelection) {\r\n const itemSelector = `.${bookingCalendarLaneDefaultClasses.className}:not(.${bookingCalendarLanesHeaderDefaultClasses.laneClassName}) > .${bookingCalendarItemDefaultClasses.className}`;\r\n const allItems = Array.from(\r\n containerRef?.current?.querySelectorAll(itemSelector)\r\n );\r\n const selectionAreaBB = containerRef?.current\r\n ?.querySelector(`.${bookingCalendarSelectionDefaultClasses.root}`)\r\n .getBoundingClientRect();\r\n const selectedItems = allItems.filter((item) => {\r\n const itemBB = item.getBoundingClientRect();\r\n const itemLeft = itemBB.left - selectionAreaBB.left;\r\n const itemTop = itemBB.top - selectionAreaBB.top;\r\n const itemRight = itemBB.right - selectionAreaBB.left;\r\n const itemBottom = itemBB.bottom - selectionAreaBB.top;\r\n // check if the item rectangle is contained or intersects or overlaps with the selection rectangle\r\n return (\r\n itemLeft < selectionRight &&\r\n itemRight > selectionLeft &&\r\n itemTop < selectionBottom &&\r\n itemBottom > selectionTop\r\n );\r\n });\r\n const selectedIds = selectedItems.map((item) =>\r\n item.getAttribute('data-id')\r\n );\r\n onSelection(\r\n bookings?.filter((b) => selectedIds.includes(b.id?.toString())),\r\n timeSpaceStart,\r\n timeSpaceEnd,\r\n e\r\n );\r\n }\r\n },\r\n [\r\n from,\r\n till,\r\n width,\r\n onRangeChange,\r\n onSelection,\r\n onSelection ? bookings : null,\r\n ]\r\n );\r\n const firstDataRowIndex = showHeader ? 2 : 1;\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n ref={containerRef}\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 filteringButton={filteringButton}\r\n showZoomAllButton={showZoomAllButton}\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 </>\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 firstDataRowIndex={firstDataRowIndex}\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n width={width}\r\n containerRef={showHeader ? undefined : observe}\r\n />\r\n )}\r\n {showNowSection && (\r\n <BookingCalendarNowSection\r\n firstDataRowIndex={firstDataRowIndex}\r\n from={from}\r\n till={till}\r\n dataRowsCount={lanes.length}\r\n width={width}\r\n alwaysShowSections={alwaysShowNowSections}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n firstDataRowIndex={firstDataRowIndex}\r\n dataRowsCount={lanes.length + (showTimeAxis ? 1 : 0)}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n >\r\n {selectionContent}\r\n </BookingCalendarSelection>\r\n )}\r\n {showHeader && (\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 )}\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 {showTimeAxis && (\r\n <div ref={showGrid || showGrid ? undefined : observe}>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAUA,IAAAK,wBAAA,GAAAL,OAAA;AAIA,IAAAM,MAAA,GAAAN,OAAA;AAKA,IAAAO,oBAAA,GAAAP,OAAA;AAIA,IAAAQ,OAAA,GAAAL,sBAAA,CAAAH,OAAA;AACA,IAAAS,oBAAA,GAAAT,OAAA;AAKA,IAAAU,oBAAA,GAAAV,OAAA;AAIA,IAAAW,0BAAA,GAAAX,OAAA;AAIA,IAAAY,2BAAA,GAAAZ,OAAA;AAKA,IAAAa,0BAAA,GAAAb,OAAA;AAIA,IAAAc,wBAAA,GAAAd,OAAA;AACA,IAAAe,oBAAA,GAAAZ,sBAAA,CAAAH,OAAA;AACA,IAAAgB,yBAAA,GAAAb,sBAAA,CAAAH,OAAA;AAGA,IAAAiB,oBAAA,GAAAjB,OAAA;AACA,IAAAkB,SAAA,GAAAlB,OAAA;AACA,IAAAmB,0BAAA,GAAAnB,OAAA;AAGqC,SAAAG,uBAAAiB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,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,SAAAzB,wBAAAqB,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,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,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AA6DrC,MAAMI,WAAW,GAAGC,eAAM,CAACC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;AAEtC,SAASC,eAAeA,CAC7BC,KAAyC,EACzC;EAAA,IAAAC,aAAA;EACA,MAAM;IACJC,QAAQ;IACRC,SAAS;IACTC,sBAAsB;IACtBC,4BAA4B;IAC5BC,6BAA6B;IAC7BC,mCAAmC;IACnCC,eAAe;IACfC,cAAc;IACdC,IAAI;IACJC,IAAI;IACJC,aAAa;IACbC,IAAI,GAAGjB,WAAW;IAClBkB,QAAQ,GAAG,IAAI;IACfC,UAAU,GAAG,IAAI;IACjBC,aAAa,GAAG,IAAI;IACpBC,cAAc,GAAG,IAAI;IACrBC,qBAAqB,GAAG,KAAK;IAC7BC,WAAW;IACXC,gBAAgB,GAAG,EAAE;IACrBC,gBAAgB;IAChBC,iBAAiB,GAAG,IAAI;IACxBC,kBAAkB,GAAGC,iCAAyB;IAC9CC,uBAAuB,GAAGC,sCAA8B;IACxDC,oBAAoB,GAAGC,mCAA2B;IAClDC,eAAe,GAAG,EAAE;IACpBC,aAAa;IACbC,WAAW;IACXC,qBAAqB,GAAG,IAAI;IAC5BC,oBAAoB;IACpBC,UAAU;IACVC,uBAAuB,GAAGC,gDAA8B;IACxDC,mBAAmB;IACnBC,mBAAmB,GAAGC,wCAA0B;IAChDC,yBAAyB;IACzBC,mBAAmB,GAAGC,wCAA0B;IAChDC,yBAAyB,GAAGC,oDAAgC;IAC5DC,0BAA0B,GAAGC,sDAAiC;IAC9DC,yBAAyB,GAAGC,oDAAgC;IAC5DC,yBAAyB,GAAGC,oDAAgC;IAC5DC,4BAA4B;IAC5BC,eAAe;IACfC;EACF,CAAC,GAAGrD,KAAK;EACT,MAAM;IACJsD,YAAY,GAAGC,OAAO,CAACrD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAET,MAAM,CAAC,IAAI8D,OAAO,CAACxB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEtC,MAAM;EACzE,CAAC,GAAGO,KAAK;EACT,MAAMwD,KAAK,GAAGjH,KAAK,CAACkH,OAAO,CACzB,MACE,IAAAC,2BAAoB,EAClBxD,QAAQ,EACRQ,IAAI,EACJC,IAAI,EACJmB,aAAa,EACbC,WAAW,EACXC,qBACF,CAAC,EACH,CAAC9B,QAAQ,EAAEQ,IAAI,EAAEC,IAAI,EAAEmB,aAAa,EAAEC,WAAW,EAAEC,qBAAqB,CAC1E,CAAC;EACD,MAAM;IAAE2B,OAAO;IAAEC;EAAM,CAAC,GAAG,IAAAC,4BAAa,EAAiB,CAAC;EAC1D,MAAMC,KAAK,GAAG,CAAAF,KAAK,aAALA,KAAK,wBAAA3D,aAAA,GAAL2D,KAAK,CAAEtE,MAAM,cAAAW,aAAA,uBAAbA,aAAA,CAAe8D,WAAW,KAAI,CAAC;EAC7C,MAAM;IAAEC,KAAK,EAAEC,SAAS;IAAEC;EAAS,CAAC,GAAG3H,KAAK,CAACkH,OAAO,CAClD;IAAA,IAAAU,WAAA;IAAA,OACE,IAAAC,wBAAiB,EACf1D,IAAI,EACJC,IAAI,EACJE,IAAI,EACJiD,KAAK,EACLvC,kBAAkB,EAClBM,eAAe,EACfnB,IAAI,aAAJA,IAAI,wBAAAyD,WAAA,GAAJzD,IAAI,CAAE2D,KAAK,CAAC,CAAC,cAAAF,WAAA,uBAAbA,WAAA,CAAeG,OAAO,CAAC,KAAK,CAC9B,CAAC;EAAA,GACH,CAAC5D,IAAI,EAAEC,IAAI,EAAEE,IAAI,EAAEiD,KAAK,EAAEvC,kBAAkB,EAAEM,eAAe,CAC/D,CAAC;EACD,MAAM0C,YAAY,GAAGhI,KAAK,CAACiI,MAAM,CAAiB,CAAC;EACnD,MAAMC,UAAU,GAAGlI,KAAK,CAACmI,WAAW,CAClC,CAACC,IAAkC,EAAEC,CAAgC,KAAK;IACxE,IAAI,CAAClE,IAAI,IAAI,CAACC,IAAI,IAAI,CAACmD,KAAK,IAAI,CAAClD,aAAa,EAAE;MAC9C;IACF;IACA,MAAMiE,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACJ,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAACrF,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM2F,cAAc,GAAGH,IAAI,CAACI,GAAG,CAACP,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAACrF,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM6F,YAAY,GAAGL,IAAI,CAACC,GAAG,CAACJ,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAACrF,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM8F,eAAe,GAAGN,IAAI,CAACI,GAAG,CAACP,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAACrF,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM+F,UAAU,GAAG1E,IAAI,CAAC2E,OAAO,CAAC,CAAC,GAAG5E,IAAI,CAAC4E,OAAO,CAAC,CAAC;IAClD,MAAMC,WAAW,GAAIC,GAAW,IAAMA,GAAG,IAAI1B,KAAK,IAAI,CAAC,CAAC,GAAIuB,UAAU;IACtE,MAAMI,cAAc,GAAG/E,IAAI,CAAC2D,KAAK,CAAC,CAAC,CAACqB,GAAG,CAACH,WAAW,CAACV,aAAa,CAAC,EAAE,IAAI,CAAC;IACzE,MAAMc,YAAY,GAAGjF,IAAI,CAAC2D,KAAK,CAAC,CAAC,CAACqB,GAAG,CAACH,WAAW,CAACN,cAAc,CAAC,EAAE,IAAI,CAAC;IACxE,IAAI9D,WAAW,EAAE;MAAA,IAAAyE,qBAAA,EAAAC,sBAAA;MACf,MAAMC,YAAY,GAAI,IAAGC,sDAAiC,CAAC5F,SAAU,SAAQ6F,oEAAwC,CAACC,aAAc,QAAOC,sDAAiC,CAAC/F,SAAU,EAAC;MACxL,MAAMgG,QAAQ,GAAGC,KAAK,CAAC1F,IAAI,CACzB6D,YAAY,aAAZA,YAAY,wBAAAqB,qBAAA,GAAZrB,YAAY,CAAE8B,OAAO,cAAAT,qBAAA,uBAArBA,qBAAA,CAAuBU,gBAAgB,CAACR,YAAY,CACtD,CAAC;MACD,MAAMS,eAAe,GAAGhC,YAAY,aAAZA,YAAY,wBAAAsB,sBAAA,GAAZtB,YAAY,CAAE8B,OAAO,cAAAR,sBAAA,uBAArBA,sBAAA,CACpBW,aAAa,CAAE,IAAGC,gDAAsC,CAACC,IAAK,EAAC,CAAC,CACjEC,qBAAqB,CAAC,CAAC;MAC1B,MAAMC,aAAa,GAAGT,QAAQ,CAACU,MAAM,CAAEC,IAAI,IAAK;QAC9C,MAAMC,MAAM,GAAGD,IAAI,CAACH,qBAAqB,CAAC,CAAC;QAC3C,MAAMK,QAAQ,GAAGD,MAAM,CAACE,IAAI,GAAGV,eAAe,CAACU,IAAI;QACnD,MAAMC,OAAO,GAAGH,MAAM,CAACI,GAAG,GAAGZ,eAAe,CAACY,GAAG;QAChD,MAAMC,SAAS,GAAGL,MAAM,CAACM,KAAK,GAAGd,eAAe,CAACU,IAAI;QACrD,MAAMK,UAAU,GAAGP,MAAM,CAACQ,MAAM,GAAGhB,eAAe,CAACY,GAAG;QACtD;QACA,OACEH,QAAQ,GAAG/B,cAAc,IACzBmC,SAAS,GAAGvC,aAAa,IACzBqC,OAAO,GAAG9B,eAAe,IACzBkC,UAAU,GAAGnC,YAAY;MAE7B,CAAC,CAAC;MACF,MAAMqC,WAAW,GAAGZ,aAAa,CAACa,GAAG,CAAEX,IAAI,IACzCA,IAAI,CAACY,YAAY,CAAC,SAAS,CAC7B,CAAC;MACDvG,WAAW,CACTjB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE2G,MAAM,CAAEc,CAAC;QAAA,IAAAC,KAAA;QAAA,OAAKJ,WAAW,CAACK,QAAQ,EAAAD,KAAA,GAACD,CAAC,CAACG,EAAE,cAAAF,KAAA,uBAAJA,KAAA,CAAMG,QAAQ,CAAC,CAAC,CAAC;MAAA,EAAC,EAC/DtC,cAAc,EACdE,YAAY,EACZf,CACF,CAAC;IACH;EACF,CAAC,EACD,CACElE,IAAI,EACJC,IAAI,EACJmD,KAAK,EACLlD,aAAa,EACbO,WAAW,EACXA,WAAW,GAAGjB,QAAQ,GAAG,IAAI,CAEjC,CAAC;EACD,MAAM8H,iBAAiB,GAAGjH,UAAU,GAAG,CAAC,GAAG,CAAC;EAC5C,oBACExE,KAAA,CAAA0L,aAAA;IACE9H,SAAS,EAAE,IAAA+H,mBAAU,EAACC,sCAA6B,CAAChI,SAAS,EAAEA,SAAS,CAAE;IAC1EiI,GAAG,EAAE7D;EAAa,gBAElBhI,KAAA,CAAA0L,aAAA,CAAC9F,uBAAuB,EAAAhD,QAAA,KAClBqB,eAAe;IACnBwD,KAAK,EAAE9D,QAAS;IAChBQ,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA,IAAK;IACXoB,oBAAoB,EAAEA,oBAAqB;IAC3CC,UAAU,EAAEA,UAAW;IACvBkB,eAAe,EAAEA,eAAgB;IACjC9B,iBAAiB,EAAEA,iBAAkB;IACrC+G,yBAAyB,eACvB9L,KAAA,CAAA0L,aAAA,CAAA1L,KAAA,CAAA+L,QAAA,QACG,OAAOvF,yBAAyB,KAAK,UAAU,gBAC9CxG,KAAA,CAAA0L,aAAA,CAAClF,yBAAyB;MACxBrC,IAAI,EAAEA,IAAK;MACXC,IAAI,EAAEA,IAAK;MACXC,aAAa,EAAEA,aAAc;MAC7Be,oBAAoB,EAAEA;IAAqB,CAC5C,CAAC,GAEFoB,yBAEF;EACH,EACF,CAAC,eACFxG,KAAA,CAAA0L,aAAA;IACE9H,SAAS,EAAE,IAAA+H,mBAAU,EACnBC,sCAA6B,CAAC1H,cAAc,EAC5CA,cACF;EAAE,GAEDK,QAAQ,iBACPvE,KAAA,CAAA0L,aAAA,CAACxF,mBAAmB;IAClBuF,iBAAiB,EAAEA,iBAAkB;IACrChE,KAAK,EAAEC,SAAU;IACjBsE,aAAa,EAAE/E,KAAK,CAAC/D,MAAO;IAC5BqE,KAAK,EAAEA,KAAM;IACbS,YAAY,EAAExD,UAAU,GAAGyH,SAAS,GAAG7E;EAAQ,CAChD,CACF,EACA1C,cAAc,iBACb1E,KAAA,CAAA0L,aAAA,CAAChF,yBAAyB;IACxB+E,iBAAiB,EAAEA,iBAAkB;IACrCtH,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACX4H,aAAa,EAAE/E,KAAK,CAAC/D,MAAO;IAC5BqE,KAAK,EAAEA,KAAM;IACb2E,kBAAkB,EAAEvH;EAAsB,CAC3C,CACF,EACAF,aAAa,iBACZzE,KAAA,CAAA0L,aAAA,CAACxK,yBAAA,CAAAM,OAAwB;IACvBiK,iBAAiB,EAAEA,iBAAkB;IACrCO,aAAa,EAAE/E,KAAK,CAAC/D,MAAM,IAAI6D,YAAY,GAAG,CAAC,GAAG,CAAC,CAAE;IACrDmB,UAAU,EAAEA,UAAW;IACvBrD,gBAAgB,EAAEA;EAAiB,GAElCC,gBACuB,CAC3B,EACAN,UAAU,iBACTxE,KAAA,CAAA0L,aAAA,CAAA1L,KAAA,CAAA+L,QAAA,qBACE/L,KAAA,CAAA0L,aAAA;IACE9H,SAAS,EAAE,IAAA+H,mBAAU,EACnBC,sCAA6B,CAAC5H,mCAAmC,EACjEA,mCACF;EAAE,GAED4C,4BACE,CAAC,eACN5G,KAAA,CAAA0L,aAAA;IACE9H,SAAS,EAAE,IAAA+H,mBAAU,EACnBC,sCAA6B,CAAC7H,6BAA6B,EAC3DA,6BACF,CAAE;IACF8H,GAAG,EAAEzE;EAAQ,gBAEbpH,KAAA,CAAA0L,aAAA,CAACpF,0BAA0B,EAAA1D,QAAA,KACrBqB,eAAe;IACnBE,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,EACZ,CACE,CACL,CACH,EAEA2C,KAAK,CAACiE,GAAG,CAAC,CAACiB,IAAI,EAAEC,SAAS,KAAK;IAC9B,MAAMC,6BAA6B,GACjCF,IAAI,CAAC/F,yBAAyB,IAAIA,yBAAyB;IAC7D,MAAMkG,uBAAuB,GAC3BH,IAAI,CAACpG,mBAAmB,IAAIA,mBAAmB;IACjD,oBACE/F,KAAA,CAAA0L,aAAA,CAAC1L,KAAK,CAAC+L,QAAQ;MAACzJ,GAAG,EAAE8J;IAAU,gBAC7BpM,KAAA,CAAA0L,aAAA;MACE9H,SAAS,EAAE,IAAA+H,mBAAU,EACnBC,sCAA6B,CAAC9H,4BAA4B,EAC1DA,4BAA4B,EAC5BqI,IAAI,CAACI,YAAY,EACjB;QACE,CAAE,GAAEX,sCAA6B,CAAC9H,4BAA6B,QAAO,GACpEsI,SAAS,KAAKnF,KAAK,CAAC/D,MAAM,GAAG,CAAC;QAChC,CAAE,GAAE0I,sCAA6B,CAAC9H,4BAA6B,SAAQ,GACrEsI,SAAS,KAAK;MAClB,CACF;IAAE,gBAEFpM,KAAA,CAAA0L,aAAA,CAACW,6BAA6B;MAC5BG,OAAO,EAAEL,IAAI,CAACK,OAAO,IAAIJ,SAAU;MACnChE,IAAI,EAAE+D,IAAI,CAAC/D;IAAK,CACjB,CACE,CAAC,eACNpI,KAAA,CAAA0L,aAAA;MACE9H,SAAS,EAAE,IAAA+H,mBAAU,EACnBC,sCAA6B,CAAC/H,sBAAsB,EACpDA,sBAAsB,EACtBsI,IAAI,CAACI,YAAY,EACjB;QACE,CAAE,GAAEX,sCAA6B,CAAC/H,sBAAuB,QAAO,GAC9DuI,SAAS,KAAKnF,KAAK,CAAC/D,MAAM,GAAG,CAAC;QAChC,CAAE,GAAE0I,sCAA6B,CAAC/H,sBAAuB,SAAQ,GAC/DuI,SAAS,KAAK;MAClB,CACF;IAAE,gBAEFpM,KAAA,CAAA0L,aAAA,CAACY,uBAAuB;MACtBF,SAAS,EAAEA,SAAU;MACrB3E,KAAK,EAAE0E,IAAI,CAAC1E,KAAM;MAClBtD,IAAI,EAAEA,IAAK;MACXC,IAAI,EAAEA,IAAK;MACX0B,mBAAmB,EACjBqG,IAAI,CAACrG,mBAAmB,IAAIA,mBAC7B;MACDG,yBAAyB,EACvBkG,IAAI,CAAClG,yBAAyB,IAAIA,yBACnC;MACD3B,IAAI,EAAEA;IAAK,CACZ,CACE,CACS,CAAC;EAErB,CAAC,CAAC,eACFtE,KAAA,CAAA0L,aAAA,YAAM,CAAC,EACN3E,YAAY,iBACX/G,KAAA,CAAA0L,aAAA;IAAKG,GAAG,EAAEtH,QAAQ,IAAIA,QAAQ,GAAG0H,SAAS,GAAG7E;EAAQ,gBACnDpH,KAAA,CAAA0L,aAAA,CAAC1K,wBAAA,CAAAyL,uBAAuB;IACtBhF,KAAK,EAAEC,SAAU;IACjBC,QAAQ,EAAEA,QAAS;IACnBzC,uBAAuB,EAAEA;EAAwB,CAClD,CACE,CAEJ,CAAC,EACL4B,QACE,CAAC;AAEV"}
|
@@ -80,6 +80,17 @@ DateRangeIcon.defaultProps = {
|
|
80
80
|
height: "24",
|
81
81
|
viewBox: "0 0 24 24"
|
82
82
|
};
|
83
|
+
var TodayIcon = function TodayIcon(props) {
|
84
|
+
return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
|
85
|
+
d: "M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"
|
86
|
+
}));
|
87
|
+
};
|
88
|
+
TodayIcon.defaultProps = {
|
89
|
+
xmlns: "http://www.w3.org/2000/svg",
|
90
|
+
width: "24",
|
91
|
+
height: "24",
|
92
|
+
viewBox: "0 0 24 24"
|
93
|
+
};
|
83
94
|
function BookingCalendarControls(props) {
|
84
95
|
const {
|
85
96
|
className,
|
@@ -102,6 +113,7 @@ function BookingCalendarControls(props) {
|
|
102
113
|
if (!step || !from || !till) {
|
103
114
|
return null;
|
104
115
|
}
|
116
|
+
const selectedLevel = React.useMemo(() => zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.find(level => till.valueOf() - from.valueOf() === level.step.asMilliseconds()), [zoomLevels, till, from]);
|
105
117
|
const onStepFactory = React.useCallback(_step => () => onRangeChange({
|
106
118
|
from: from.clone().add(_step),
|
107
119
|
till: till.clone().add(_step)
|
@@ -110,6 +122,10 @@ function BookingCalendarControls(props) {
|
|
110
122
|
const onSmallStepLeftClick = React.useCallback(onStepFactory(_moment.default.duration(-1, 'day')), [onStepFactory, step]);
|
111
123
|
const onBigStepRightClick = React.useCallback(onStepFactory(_moment.default.duration(7, 'days')), [onStepFactory, till, from]);
|
112
124
|
const onSmallStepRightClick = React.useCallback(onStepFactory(_moment.default.duration(1, 'day')), [onStepFactory, step]);
|
125
|
+
const onTodayClick = React.useCallback(() => onRangeChange({
|
126
|
+
from: (0, _moment.default)().startOf('day'),
|
127
|
+
till: (0, _moment.default)().startOf('day').add((selectedLevel === null || selectedLevel === void 0 ? void 0 : selectedLevel.step) ?? step)
|
128
|
+
}), [onRangeChange, step]);
|
113
129
|
const filteredItems = React.useMemo(() => items === null || items === void 0 ? void 0 : items.filter(filterBookingsToZoom), [filterBookingsToZoom, items]);
|
114
130
|
const onZoomBookingsClick = React.useCallback(() => {
|
115
131
|
const minFromMs = Math.min(...(filteredItems === null || filteredItems === void 0 ? void 0 : filteredItems.filter(filterBookingsToZoom).map(a => a.from.valueOf()))) ?? (from === null || from === void 0 ? void 0 : from.valueOf());
|
@@ -129,7 +145,6 @@ function BookingCalendarControls(props) {
|
|
129
145
|
const handleClose = () => {
|
130
146
|
setAnchorEl(null);
|
131
147
|
};
|
132
|
-
const selectedLevel = React.useMemo(() => zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.find(level => till.valueOf() - from.valueOf() === level.step.asMilliseconds()), [zoomLevels, till, from]);
|
133
148
|
return /*#__PURE__*/React.createElement("div", {
|
134
149
|
className: (0, _classnames.default)(_classes.bookingCalendarControlsDefaultClasses.className, className)
|
135
150
|
}, bookingCalendarDatePicker && /*#__PURE__*/React.createElement("div", {
|
@@ -172,6 +187,9 @@ function BookingCalendarControls(props) {
|
|
172
187
|
noShadow: true,
|
173
188
|
onClick: onSmallStepLeftClick
|
174
189
|
}, /*#__PURE__*/React.createElement(LeftArrowIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
190
|
+
noShadow: true,
|
191
|
+
onClick: onTodayClick
|
192
|
+
}, /*#__PURE__*/React.createElement(TodayIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
175
193
|
noShadow: true,
|
176
194
|
onClick: onSmallStepRightClick
|
177
195
|
}, /*#__PURE__*/React.createElement(RightArrowIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendarControls.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_moment","_classes","_Button","_Menu","_MenuItem","_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","DateRangeIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevelsButtonClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","bookingCalendarDatePicker","filteringButton","showZoomAllButton","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","moment","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","filteredItems","useMemo","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","valueOf","minFrom","subtract","maxTillMs","max","maxTill","anchorEl","setAnchorEl","useState","open","Boolean","handleClick","event","currentTarget","handleClose","selectedLevel","find","level","asMilliseconds","classNames","bookingCalendarControlsDefaultClasses","length","Button","id","undefined","onClick","noShadow","label","onClose","MenuListProps","index","startOf","selected","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 moment, { Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from './classes';\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\nimport * as DateRangeIcon from 'material-design-icons/action/svg/production/ic_date_range_24px.svg';\r\n\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\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 filteringButton?: React.ReactNode;\r\n showZoomAllButton?: 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 zoomLevelsButtonClassName,\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 filteringButton,\r\n showZoomAllButton,\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(moment.duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(moment.duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(moment.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 const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const selectedLevel = React.useMemo(\r\n () =>\r\n zoomLevels?.find(\r\n (level) =>\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ),\r\n [zoomLevels, till, from]\r\n );\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 <Button\r\n id=\"zoom-level-button\"\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsButtonClassName,\r\n zoomLevelsButtonClassName\r\n )}\r\n aria-controls={open ? 'zoom-level-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n noShadow={true}\r\n >\r\n <DateRangeIcon />\r\n {selectedLevel ? ` ${selectedLevel.label}` : ''}\r\n </Button>\r\n <Menu\r\n id=\"zoom-level-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n MenuListProps={{\r\n 'aria-labelledby': 'zoom-level-button',\r\n }}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <MenuItem\r\n data-level={index}\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 setAnchorEl(null);\r\n }}\r\n selected={\r\n till.valueOf() - from.valueOf() ===\r\n level.step.asMilliseconds()\r\n }\r\n >\r\n {level.label}\r\n </MenuItem>\r\n ))}\r\n </Menu>\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 {showZoomAllButton && (\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 )}\r\n {filteringButton}\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","_classes","_Button","_Menu","_MenuItem","_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","DateRangeIcon","TodayIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevelsButtonClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","bookingCalendarDatePicker","filteringButton","showZoomAllButton","selectedLevel","useMemo","find","level","valueOf","asMilliseconds","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","moment","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","onTodayClick","startOf","filteredItems","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","minFrom","subtract","maxTillMs","max","maxTill","anchorEl","setAnchorEl","useState","open","Boolean","handleClick","event","currentTarget","handleClose","classNames","bookingCalendarControlsDefaultClasses","length","Button","id","undefined","onClick","noShadow","label","onClose","MenuListProps","index","selected","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 moment, { Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from './classes';\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\nimport * as DateRangeIcon from 'material-design-icons/action/svg/production/ic_date_range_24px.svg';\r\nimport * as TodayIcon from 'material-design-icons/action/svg/production/ic_today_24px.svg';\r\n\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\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 filteringButton?: React.ReactNode;\r\n showZoomAllButton?: 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 zoomLevelsButtonClassName,\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 filteringButton,\r\n showZoomAllButton,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const selectedLevel = React.useMemo(\r\n () =>\r\n zoomLevels?.find(\r\n (level) =>\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ),\r\n [zoomLevels, till, from]\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(moment.duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(moment.duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onTodayClick = React.useCallback(\r\n () =>\r\n onRangeChange({\r\n from: moment().startOf('day'),\r\n till: moment()\r\n .startOf('day')\r\n .add(selectedLevel?.step ?? step),\r\n }),\r\n [onRangeChange, 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 const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\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 <Button\r\n id=\"zoom-level-button\"\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsButtonClassName,\r\n zoomLevelsButtonClassName\r\n )}\r\n aria-controls={open ? 'zoom-level-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n noShadow={true}\r\n >\r\n <DateRangeIcon />\r\n {selectedLevel ? ` ${selectedLevel.label}` : ''}\r\n </Button>\r\n <Menu\r\n id=\"zoom-level-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n MenuListProps={{\r\n 'aria-labelledby': 'zoom-level-button',\r\n }}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <MenuItem\r\n data-level={index}\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 setAnchorEl(null);\r\n }}\r\n selected={\r\n till.valueOf() - from.valueOf() ===\r\n level.step.asMilliseconds()\r\n }\r\n >\r\n {level.label}\r\n </MenuItem>\r\n ))}\r\n </Menu>\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={onTodayClick}>\r\n <TodayIcon />\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 {showZoomAllButton && (\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 )}\r\n {filteringButton}\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,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AASA,IAAAM,KAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AAA8C,SAAAQ,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,SAAAP,wBAAAW,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,SAAApB,uBAAAc,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IATlCiB,iBAAiB,YAAjBA,iBAAiBA,CAAAC,KAAA;EAAA,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,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,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,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,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,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,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,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,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAdS,cAAc,CAAAR,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAAA,IACdK,aAAa,YAAbA,aAAaA,CAAAZ,KAAA;EAAA,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAAbU,aAAa,CAAAT,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAAA,IACbM,SAAS,YAATA,SAASA,CAAAb,KAAA;EAAA,oBAAA9B,KAAA,CAAA+B,aAAA,QAAAD,KAAA,eAAA9B,KAAA,CAAA+B,aAAA;IAAAC,CAAA;EAAA;AAAA;AAATW,SAAS,CAAAV,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAC,OAAA;AAAA;AAmBd,SAASO,uBAAuBA,CACrCd,KAAsC,EACtC;EACA,MAAM;IACJe,SAAS;IACTC,mBAAmB;IACnBC,yBAAyB;IACzBC,2BAA2B;IAC3BC,4BAA4B;IAC5BC,yBAAyB;IACzBC,UAAU;IACVC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,aAAa;IACbC,KAAK;IACLC,oBAAoB,GAAGA,CAAA,KAAM,IAAI;IACjCC,yBAAyB;IACzBC,eAAe;IACfC;EACF,CAAC,GAAG9B,KAAK;EACT,IAAI,CAACsB,IAAI,IAAI,CAACC,IAAI,IAAI,CAACC,IAAI,EAAE;IAC3B,OAAO,IAAI;EACb;EACA,MAAMO,aAAa,GAAG7D,KAAK,CAAC8D,OAAO,CACjC,MACEX,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEY,IAAI,CACbC,KAAK,IACJV,IAAI,CAACW,OAAO,CAAC,CAAC,GAAGZ,IAAI,CAACY,OAAO,CAAC,CAAC,KAAKD,KAAK,CAACZ,IAAI,CAACc,cAAc,CAAC,CAClE,CAAC,EACH,CAACf,UAAU,EAAEG,IAAI,EAAED,IAAI,CACzB,CAAC;EACD,MAAMc,aAAa,GAAGnE,KAAK,CAACoE,WAAW,CACpCC,KAAe,IAAK,MACnBd,aAAa,CAAC;IACZF,IAAI,EAAEA,IAAI,CAACiB,KAAK,CAAC,CAAC,CAACC,GAAG,CAACF,KAAK,CAAC;IAC7Bf,IAAI,EAAEA,IAAI,CAACgB,KAAK,CAAC,CAAC,CAACC,GAAG,CAACF,KAAK;EAC9B,CAAC,CAAC,EACJ,CAAChB,IAAI,EAAEC,IAAI,EAAEC,aAAa,CAC5B,CAAC;EACD,MAAMiB,kBAAkB,GAAGxE,KAAK,CAACoE,WAAW,CAC1CD,aAAa,CAACM,eAAM,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAC1C,CAACP,aAAa,EAAEb,IAAI,EAAED,IAAI,CAC5B,CAAC;EACD,MAAMsB,oBAAoB,GAAG3E,KAAK,CAACoE,WAAW,CAC5CD,aAAa,CAACM,eAAM,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EACzC,CAACP,aAAa,EAAEf,IAAI,CACtB,CAAC;EACD,MAAMwB,mBAAmB,GAAG5E,KAAK,CAACoE,WAAW,CAC3CD,aAAa,CAACM,eAAM,CAACC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EACzC,CAACP,aAAa,EAAEb,IAAI,EAAED,IAAI,CAC5B,CAAC;EACD,MAAMwB,qBAAqB,GAAG7E,KAAK,CAACoE,WAAW,CAC7CD,aAAa,CAACM,eAAM,CAACC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EACxC,CAACP,aAAa,EAAEf,IAAI,CACtB,CAAC;EACD,MAAM0B,YAAY,GAAG9E,KAAK,CAACoE,WAAW,CACpC,MACEb,aAAa,CAAC;IACZF,IAAI,EAAE,IAAAoB,eAAM,EAAC,CAAC,CAACM,OAAO,CAAC,KAAK,CAAC;IAC7BzB,IAAI,EAAE,IAAAmB,eAAM,EAAC,CAAC,CACXM,OAAO,CAAC,KAAK,CAAC,CACdR,GAAG,CAAC,CAAAV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAET,IAAI,KAAIA,IAAI;EACpC,CAAC,CAAC,EACJ,CAACG,aAAa,EAAEH,IAAI,CACtB,CAAC;EACD,MAAM4B,aAAa,GAAGhF,KAAK,CAAC8D,OAAO,CACjC,MAAMN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyB,MAAM,CAACxB,oBAAoB,CAAC,EACzC,CAACA,oBAAoB,EAAED,KAAK,CAC9B,CAAC;EACD,MAAM0B,mBAAmB,GAAGlF,KAAK,CAACoE,WAAW,CAAC,MAAM;IAClD,MAAMe,SAAS,GACbC,IAAI,CAACC,GAAG,CACN,IAAGL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CACZC,MAAM,CAACxB,oBAAoB,CAAC,CAC7B6B,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAClC,IAAI,CAACY,OAAO,CAAC,CAAC,CAAC,CACjC,CAAC,KAAIZ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEY,OAAO,CAAC,CAAC;IACtB,MAAMuB,OAAO,GAAGnC,IAAI,CAACiB,KAAK,CAAC,CAAC,CAACmB,QAAQ,CAACpC,IAAI,CAACY,OAAO,CAAC,CAAC,GAAGkB,SAAS,EAAE,IAAI,CAAC;IACvE,MAAMO,SAAS,GACbN,IAAI,CAACO,GAAG,CACN,IAAGX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CACZC,MAAM,CAACxB,oBAAoB,CAAC,CAC7B6B,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACjC,IAAI,CAACW,OAAO,CAAC,CAAC,CAAC,CACjC,CAAC,KAAIX,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEW,OAAO,CAAC,CAAC;IACtB,MAAM2B,OAAO,GAAGtC,IAAI,CAACgB,KAAK,CAAC,CAAC,CAACmB,QAAQ,CAACnC,IAAI,CAACW,OAAO,CAAC,CAAC,GAAGyB,SAAS,EAAE,IAAI,CAAC;IACvEnC,aAAa,CAAC;MACZF,IAAI,EAAEmC,OAAO;MACblC,IAAI,EAAEsC;IACR,CAAC,CAAC;EACJ,CAAC,EAAE,CAACvC,IAAI,EAAEC,IAAI,EAAE0B,aAAa,CAAC,CAAC;EAC/B,MAAM,CAACa,QAAQ,EAAEC,WAAW,CAAC,GAAG9F,KAAK,CAAC+F,QAAQ,CAAqB,IAAI,CAAC;EACxE,MAAMC,IAAI,GAAGC,OAAO,CAACJ,QAAQ,CAAC;EAC9B,MAAMK,WAAW,GAAIC,KAA0C,IAAK;IAClEL,WAAW,CAACK,KAAK,CAACC,aAAa,CAAC;EAClC,CAAC;EACD,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxBP,WAAW,CAAC,IAAI,CAAC;EACnB,CAAC;EAED,oBACE9F,KAAA,CAAA+B,aAAA;IACEc,SAAS,EAAE,IAAAyD,mBAAU,EACnBC,8CAAqC,CAAC1D,SAAS,EAC/CA,SACF;EAAE,GAEDa,yBAAyB,iBACxB1D,KAAA,CAAA+B,aAAA;IACEc,SAAS,EAAE,IAAAyD,mBAAU,EACnBC,8CAAqC,CAACzD,mBAAmB,EACzDA,mBACF;EAAE,GAEDY,yBACE,CACN,EACA,CAAAP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqD,MAAM,IAAG,CAAC,iBACrBxG,KAAA,CAAA+B,aAAA;IACEc,SAAS,EAAE,IAAAyD,mBAAU,EACnBC,8CAAqC,CAACtD,4BAA4B,EAClEA,4BACF;EAAE,gBAEFjD,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IACLC,EAAE,EAAC,mBAAmB;IACtB7D,SAAS,EAAE,IAAAyD,mBAAU,EACnBC,8CAAqC,CAACrD,yBAAyB,EAC/DA,yBACF,CAAE;IACF,iBAAe8C,IAAI,GAAG,iBAAiB,GAAGW,SAAU;IACpD,iBAAc,MAAM;IACpB,iBAAeX,IAAI,GAAG,MAAM,GAAGW,SAAU;IACzCC,OAAO,EAAEV,WAAY;IACrBW,QAAQ,EAAE;EAAK,gBAEf7G,KAAA,CAAA+B,aAAA,CAACW,aAAa,MAAE,CAAC,EAChBmB,aAAa,GAAI,IAAGA,aAAa,CAACiD,KAAM,EAAC,GAAG,EACvC,CAAC,eACT9G,KAAA,CAAA+B,aAAA,CAAC1B,KAAA,CAAAS,OAAI;IACH4F,EAAE,EAAC,iBAAiB;IACpBb,QAAQ,EAAEA,QAAS;IACnBG,IAAI,EAAEA,IAAK;IACXe,OAAO,EAAEV,WAAY;IACrBW,aAAa,EAAE;MACb,iBAAiB,EAAE;IACrB;EAAE,GAED7D,UAAU,CAACmC,GAAG,CAAC,CAACtB,KAAK,EAAEiD,KAAK,kBAC3BjH,KAAA,CAAA+B,aAAA,CAACzB,SAAA,CAAAQ,OAAQ;IACP,cAAYmG,KAAM;IAClB1F,GAAG,EAAE0F,KAAM;IACXL,OAAO,EAAEA,CAAA,KAAM;MACbrD,aAAa,CAAC;QACZF,IAAI,EAAEA,IAAI,CAACiB,KAAK,CAAC,CAAC,CAACS,OAAO,CAAC,KAAK,CAAC;QACjCzB,IAAI,EAAED,IAAI,CAACiB,KAAK,CAAC,CAAC,CAACS,OAAO,CAAC,KAAK,CAAC,CAACR,GAAG,CAACP,KAAK,CAACZ,IAAI;MAClD,CAAC,CAAC;MACF0C,WAAW,CAAC,IAAI,CAAC;IACnB,CAAE;IACFoB,QAAQ,EACN5D,IAAI,CAACW,OAAO,CAAC,CAAC,GAAGZ,IAAI,CAACY,OAAO,CAAC,CAAC,KAC/BD,KAAK,CAACZ,IAAI,CAACc,cAAc,CAAC;EAC3B,GAEAF,KAAK,CAAC8C,KACC,CACX,CACG,CAqBH,CACN,eACD9G,KAAA,CAAA+B,aAAA;IACEc,SAAS,EAAE,IAAAyD,mBAAU,EACnBC,8CAAqC,CAACxD,yBAAyB,EAC/DA,yBACF;EAAE,gBAEF/C,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACD,OAAO,EAAEpC;EAAmB,gBAClDxE,KAAA,CAAA+B,aAAA,CAACF,iBAAiB,MAAE,CACd,CAAC,eACT7B,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACD,OAAO,EAAEjC;EAAqB,gBACpD3E,KAAA,CAAA+B,aAAA,CAACO,aAAa,MAAE,CACV,CAAC,eACTtC,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACD,OAAO,EAAE9B;EAAa,gBAC5C9E,KAAA,CAAA+B,aAAA,CAACY,SAAS,MAAE,CACN,CAAC,eACT3C,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACD,OAAO,EAAE/B;EAAsB,gBACrD7E,KAAA,CAAA+B,aAAA,CAACS,cAAc,MAAE,CACX,CAAC,eACTxC,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IAACI,QAAQ,EAAE,IAAK;IAACD,OAAO,EAAEhC;EAAoB,gBACnD5E,KAAA,CAAA+B,aAAA,CAACQ,kBAAkB,MAAE,CACf,CAAC,EACRqB,iBAAiB,iBAChB5D,KAAA,CAAA+B,aAAA,CAAC3B,OAAA,CAAAqG,MAAM;IACL5D,SAAS,EAAE,IAAAyD,mBAAU,EACnBC,8CAAqC,CAACvD,2BAA2B,EACjEA,2BACF,CAAE;IACF6D,QAAQ,EAAE,IAAK;IACfM,QAAQ,EAAE,EAACnC,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEwB,MAAM,CAAC;IACjCI,OAAO,EAAE1B;EAAoB,gBAE7BlF,KAAA,CAAA+B,aAAA,CAACU,cAAc,MAAE,CACX,CACT,EACAkB,eACE,CACF,CAAC;AAEV"}
|
@@ -21,14 +21,16 @@ function BookingCalendarGrid(props) {
|
|
21
21
|
gridItemClassName,
|
22
22
|
containerRef,
|
23
23
|
dataRowsCount,
|
24
|
+
firstDataRowIndex,
|
24
25
|
items,
|
25
26
|
width
|
26
27
|
} = props;
|
27
28
|
const style = React.useMemo(() => _objectSpread({
|
29
|
+
gridRowStart: firstDataRowIndex,
|
28
30
|
gridRowEnd: `span ${dataRowsCount}`
|
29
31
|
}, width ? {
|
30
32
|
width: `${width}px`
|
31
|
-
} : {}), [dataRowsCount, width]);
|
33
|
+
} : {}), [firstDataRowIndex, dataRowsCount, width]);
|
32
34
|
return /*#__PURE__*/React.createElement("div", {
|
33
35
|
className: (0, _classnames.default)(_classes.bookingCalendarGridDefaultClasses.className, className),
|
34
36
|
style: style,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendarGrid.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","BookingCalendarGrid","props","className","gridItemClassName","containerRef","dataRowsCount","items","width","style","useMemo","gridRowEnd","createElement","classNames","bookingCalendarGridDefaultClasses","ref","map","item","left","opacity"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarGridClasses,\r\n bookingCalendarGridDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport { GridItem } from '../utils';\r\n\r\nexport interface BookingCalendarGridProps extends BookingCalendarGridClasses {\r\n items: GridItem[];\r\n containerRef?: (elem: HTMLElement) => void;\r\n dataRowsCount: number;\r\n width: number;\r\n}\r\n\r\nexport function BookingCalendarGrid(props: BookingCalendarGridProps) {\r\n const {\r\n className,\r\n gridItemClassName,\r\n containerRef,\r\n dataRowsCount,\r\n items,\r\n width,\r\n } = props;\r\n const style = React.useMemo(\r\n () => ({\r\n gridRowEnd: `span ${dataRowsCount}`,\r\n ...(width ? { width: `${width}px` } : {}),\r\n }),\r\n [dataRowsCount, width]\r\n );\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarGridDefaultClasses.className,\r\n className\r\n )}\r\n style={style}\r\n ref={containerRef}\r\n >\r\n {items.map((item, key) => (\r\n <div\r\n className={classNames(\r\n bookingCalendarGridDefaultClasses.gridItemClassName,\r\n gridItemClassName\r\n )}\r\n key={key}\r\n style={{\r\n left: `${item.left * 100}%`,\r\n opacity: 0.7 * item.opacity + 0.1,\r\n }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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
|
1
|
+
{"version":3,"file":"BookingCalendarGrid.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","BookingCalendarGrid","props","className","gridItemClassName","containerRef","dataRowsCount","firstDataRowIndex","items","width","style","useMemo","gridRowStart","gridRowEnd","createElement","classNames","bookingCalendarGridDefaultClasses","ref","map","item","left","opacity"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarGridClasses,\r\n bookingCalendarGridDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport { GridItem } from '../utils';\r\n\r\nexport interface BookingCalendarGridProps extends BookingCalendarGridClasses {\r\n items: GridItem[];\r\n containerRef?: (elem: HTMLElement) => void;\r\n firstDataRowIndex: number;\r\n dataRowsCount: number;\r\n width: number;\r\n}\r\n\r\nexport function BookingCalendarGrid(props: BookingCalendarGridProps) {\r\n const {\r\n className,\r\n gridItemClassName,\r\n containerRef,\r\n dataRowsCount,\r\n firstDataRowIndex,\r\n items,\r\n width,\r\n } = props;\r\n const style = React.useMemo(\r\n () => ({\r\n gridRowStart: firstDataRowIndex,\r\n gridRowEnd: `span ${dataRowsCount}`,\r\n ...(width ? { width: `${width}px` } : {}),\r\n }),\r\n [firstDataRowIndex, dataRowsCount, width]\r\n );\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarGridDefaultClasses.className,\r\n className\r\n )}\r\n style={style}\r\n ref={containerRef}\r\n >\r\n {items.map((item, key) => (\r\n <div\r\n className={classNames(\r\n bookingCalendarGridDefaultClasses.gridItemClassName,\r\n gridItemClassName\r\n )}\r\n key={key}\r\n style={{\r\n left: `${item.left * 100}%`,\r\n opacity: 0.7 * item.opacity + 0.1,\r\n }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.BookingCalendarLanesHeaderRenderItemFactory = void 0;
|
7
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
9
9
|
var _classes = require("../bookingCalendarRenderItem/classes");
|
10
10
|
var _Button = require("../../button/Button");
|
11
|
+
var _moment = _interopRequireDefault(require("moment"));
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
12
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
15
|
const BookingCalendarLanesHeaderRenderItemFactory = onRangeChange => function BookingCalendarLanesHeaderRenderItem(props) {
|
15
16
|
const {
|
16
17
|
item,
|
@@ -24,10 +25,13 @@ const BookingCalendarLanesHeaderRenderItemFactory = onRangeChange => function Bo
|
|
24
25
|
from: item.from,
|
25
26
|
till: item.till
|
26
27
|
}), [item]);
|
28
|
+
const isToday = item.from.isSame((0, _moment.default)(), 'day') && item.till.diff(item.from, 'hours') === 24;
|
27
29
|
return item ? /*#__PURE__*/React.createElement("div", {
|
28
30
|
className: (0, _classnames.default)(_classes.bookingCalendarRenderItemDefaultClasses.className, className)
|
29
31
|
}, /*#__PURE__*/React.createElement(_Button.Button, {
|
30
|
-
className:
|
32
|
+
className: (0, _classnames.default)('bookingCalendar__lanesHeader__renderItem__button', {
|
33
|
+
'bookingCalendar__lanesHeader__renderItem__button--today': isToday
|
34
|
+
}),
|
31
35
|
noShadow: true,
|
32
36
|
onClick: onClick,
|
33
37
|
type: "primary"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendarLanesHeaderRenderItem.js","names":["
|
1
|
+
{"version":3,"file":"BookingCalendarLanesHeaderRenderItem.js","names":["React","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_classes","_Button","_moment","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","BookingCalendarLanesHeaderRenderItemFactory","onRangeChange","BookingCalendarLanesHeaderRenderItem","props","item","className","startIsCut","endIsCut","realFrom","realTill","onClick","useCallback","from","till","isToday","isSame","moment","diff","createElement","classNames","bookingCalendarRenderItemDefaultClasses","Button","noShadow","type","Fragment","format","exports"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport classNames from 'classnames';\r\nimport { BookingCalendarRenderItemProps } from '../bookingCalendarRenderItem';\r\nimport { bookingCalendarRenderItemDefaultClasses } from '../bookingCalendarRenderItem/classes';\r\nimport { BookingCalendarItemT, BookingCalendarDateRange } from '../common';\r\nimport { Button } from '../../button/Button';\r\nimport moment from 'moment';\r\n\r\nexport const BookingCalendarLanesHeaderRenderItemFactory = (\r\n onRangeChange: (range: BookingCalendarDateRange) => void\r\n) =>\r\n function BookingCalendarLanesHeaderRenderItem<T extends BookingCalendarItemT>(\r\n props: BookingCalendarRenderItemProps<T>\r\n ) {\r\n const { item, className, startIsCut, endIsCut, realFrom, realTill } = props;\r\n const onClick = React.useCallback(\r\n () => onRangeChange({ from: item.from, till: item.till }),\r\n [item]\r\n );\r\n const isToday =\r\n item.from.isSame(moment(), 'day') &&\r\n item.till.diff(item.from, 'hours') === 24;\r\n return item ? (\r\n <div\r\n className={classNames(\r\n bookingCalendarRenderItemDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n <Button\r\n className={classNames(\r\n 'bookingCalendar__lanesHeader__renderItem__button',\r\n {\r\n 'bookingCalendar__lanesHeader__renderItem__button--today':\r\n isToday,\r\n }\r\n )}\r\n noShadow={true}\r\n onClick={onClick}\r\n type=\"primary\"\r\n >\r\n {startIsCut || endIsCut ? (\r\n <>\r\n {item.from.format('ddd, Do')}\r\n <br />\r\n <span className=\"bookingCalendar__lanesHeader__renderItem__button__mutedText bookingCalendar__lanesHeader__renderItem__button__mutedText--split\">\r\n <span>{startIsCut && realFrom.format('M/D H:mm')}</span>\r\n <span>{endIsCut && realTill.format('M/D H:mm')}</span>\r\n </span>\r\n </>\r\n ) : (\r\n <>\r\n {item.from.format('ddd')}\r\n <br />\r\n <span className=\"bookingCalendar__lanesHeader__renderItem__button__mutedText\">\r\n {item.from.format('Do')}\r\n </span>\r\n </>\r\n )}\r\n </Button>\r\n </div>\r\n ) : null;\r\n };\r\n"],"mappings":"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"}
|
package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.d.ts
CHANGED
@@ -3,6 +3,7 @@ import { BookingCalendarNowSectionClasses } from './classes';
|
|
3
3
|
import { Moment } from 'moment';
|
4
4
|
export interface BookingCalendarNowSectionProps extends BookingCalendarNowSectionClasses {
|
5
5
|
dataRowsCount: number;
|
6
|
+
firstDataRowIndex: number;
|
6
7
|
width: number;
|
7
8
|
from: Moment;
|
8
9
|
till: Moment;
|
package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js
CHANGED
@@ -23,16 +23,18 @@ function BookingCalendarNowSection(props) {
|
|
23
23
|
areaBefore,
|
24
24
|
now,
|
25
25
|
dataRowsCount,
|
26
|
+
firstDataRowIndex,
|
26
27
|
width,
|
27
28
|
from,
|
28
29
|
till,
|
29
30
|
alwaysShowSections
|
30
31
|
} = props;
|
31
32
|
const style = React.useMemo(() => _objectSpread({
|
33
|
+
gridRowStart: firstDataRowIndex,
|
32
34
|
gridRowEnd: `span ${dataRowsCount}`
|
33
35
|
}, width ? {
|
34
36
|
width: `${width}px`
|
35
|
-
} : {}), [dataRowsCount, width]);
|
37
|
+
} : {}), [dataRowsCount, width, firstDataRowIndex]);
|
36
38
|
const widthMs = till.valueOf() - from.valueOf();
|
37
39
|
const startMs = from.valueOf();
|
38
40
|
const endMs = till.valueOf();
|
package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendarNowSection.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","_moment","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","BookingCalendarNowSection","props","className","areaAfter","areaBefore","now","dataRowsCount","width","from","till","alwaysShowSections","style","useMemo","gridRowEnd","widthMs","valueOf","startMs","endMs","onePxMs","Math","max","nowMs","setNowMs","useState","moment","renderBefore","renderAfter","useEffect","interval","setInterval","clearInterval","createElement","classNames","bookingCalendarNowSectionDefaultClasses"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n BookingCalendarNowSectionClasses,\n bookingCalendarNowSectionDefaultClasses,\n} from './classes';\nimport classNames from 'classnames';\nimport moment, { Moment } from 'moment';\n\nexport interface BookingCalendarNowSectionProps\n extends BookingCalendarNowSectionClasses {\n dataRowsCount: number;\n width: number;\n from: Moment;\n till: Moment;\n alwaysShowSections?: boolean;\n}\n\nexport function BookingCalendarNowSection(\n props: BookingCalendarNowSectionProps\n) {\n const {\n className,\n areaAfter,\n areaBefore,\n now,\n dataRowsCount,\n width,\n from,\n till,\n alwaysShowSections,\n } = props;\n const style = React.useMemo(\n () => ({\n gridRowEnd: `span ${dataRowsCount}`,\n ...(width ? { width: `${width}px` } : {}),\n }),\n [dataRowsCount, width]\n );\n const widthMs = till.valueOf() - from.valueOf();\n const startMs = from.valueOf();\n const endMs = till.valueOf();\n const onePxMs = Math.max(widthMs / (width || 1), 5000);\n const [nowMs, setNowMs] = React.useState(moment().valueOf());\n const renderBefore = nowMs > startMs;\n const renderAfter = nowMs < endMs;\n React.useEffect(() => {\n if (renderBefore && renderAfter) {\n const interval = setInterval(() => {\n setNowMs(moment().valueOf());\n }, onePxMs);\n return () => clearInterval(interval);\n }\n }, [onePxMs, renderBefore, renderAfter]);\n\n return (\n <div\n className={classNames(\n className,\n bookingCalendarNowSectionDefaultClasses.className\n )}\n style={style}\n >\n {renderBefore && (alwaysShowSections || renderAfter) && (\n <div\n className={classNames(\n areaBefore,\n bookingCalendarNowSectionDefaultClasses.areaBefore\n )}\n style={{\n width: `${((nowMs - startMs) / widthMs) * 100}%`,\n }}\n />\n )}\n {renderBefore && renderAfter && (\n <div\n className={classNames(\n now,\n bookingCalendarNowSectionDefaultClasses.now\n )}\n />\n )}\n {renderAfter && (alwaysShowSections || renderBefore) && (\n <div\n className={classNames(\n areaAfter,\n bookingCalendarNowSectionDefaultClasses.areaAfter\n )}\n style={{\n width: `${((endMs - nowMs) / widthMs) * 100}%`,\n }}\n />\n )}\n </div>\n );\n}\n"],"mappings":"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
|
1
|
+
{"version":3,"file":"BookingCalendarNowSection.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","_moment","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","BookingCalendarNowSection","props","className","areaAfter","areaBefore","now","dataRowsCount","firstDataRowIndex","width","from","till","alwaysShowSections","style","useMemo","gridRowStart","gridRowEnd","widthMs","valueOf","startMs","endMs","onePxMs","Math","max","nowMs","setNowMs","useState","moment","renderBefore","renderAfter","useEffect","interval","setInterval","clearInterval","createElement","classNames","bookingCalendarNowSectionDefaultClasses"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n BookingCalendarNowSectionClasses,\n bookingCalendarNowSectionDefaultClasses,\n} from './classes';\nimport classNames from 'classnames';\nimport moment, { Moment } from 'moment';\n\nexport interface BookingCalendarNowSectionProps\n extends BookingCalendarNowSectionClasses {\n dataRowsCount: number;\n firstDataRowIndex: number;\n width: number;\n from: Moment;\n till: Moment;\n alwaysShowSections?: boolean;\n}\n\nexport function BookingCalendarNowSection(\n props: BookingCalendarNowSectionProps\n) {\n const {\n className,\n areaAfter,\n areaBefore,\n now,\n dataRowsCount,\n firstDataRowIndex,\n width,\n from,\n till,\n alwaysShowSections,\n } = props;\n const style = React.useMemo(\n () => ({\n gridRowStart: firstDataRowIndex,\n gridRowEnd: `span ${dataRowsCount}`,\n ...(width ? { width: `${width}px` } : {}),\n }),\n [dataRowsCount, width, firstDataRowIndex]\n );\n const widthMs = till.valueOf() - from.valueOf();\n const startMs = from.valueOf();\n const endMs = till.valueOf();\n const onePxMs = Math.max(widthMs / (width || 1), 5000);\n const [nowMs, setNowMs] = React.useState(moment().valueOf());\n const renderBefore = nowMs > startMs;\n const renderAfter = nowMs < endMs;\n React.useEffect(() => {\n if (renderBefore && renderAfter) {\n const interval = setInterval(() => {\n setNowMs(moment().valueOf());\n }, onePxMs);\n return () => clearInterval(interval);\n }\n }, [onePxMs, renderBefore, renderAfter]);\n\n return (\n <div\n className={classNames(\n className,\n bookingCalendarNowSectionDefaultClasses.className\n )}\n style={style}\n >\n {renderBefore && (alwaysShowSections || renderAfter) && (\n <div\n className={classNames(\n areaBefore,\n bookingCalendarNowSectionDefaultClasses.areaBefore\n )}\n style={{\n width: `${((nowMs - startMs) / widthMs) * 100}%`,\n }}\n />\n )}\n {renderBefore && renderAfter && (\n <div\n className={classNames(\n now,\n bookingCalendarNowSectionDefaultClasses.now\n )}\n />\n )}\n {renderAfter && (alwaysShowSections || renderBefore) && (\n <div\n className={classNames(\n areaAfter,\n bookingCalendarNowSectionDefaultClasses.areaAfter\n )}\n style={{\n width: `${((endMs - nowMs) / widthMs) * 100}%`,\n }}\n />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAAwC,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,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,SAAAV,wBAAAM,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,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,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,IAAAwB,eAAA,CAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAM,gBAAAxC,GAAA,EAAAgB,GAAA,EAAA2B,KAAA,IAAA3B,GAAA,GAAA4B,cAAA,CAAA5B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA2B,KAAA,EAAAA,KAAA,EAAAb,UAAA,QAAAe,YAAA,QAAAC,QAAA,oBAAA9C,GAAA,CAAAgB,GAAA,IAAA2B,KAAA,WAAA3C,GAAA;AAAA,SAAA4C,eAAAG,GAAA,QAAA/B,GAAA,GAAAgC,YAAA,CAAAD,GAAA,2BAAA/B,GAAA,gBAAAA,GAAA,GAAAiC,MAAA,CAAAjC,GAAA;AAAA,SAAAgC,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAjC,IAAA,CAAA+B,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAYjC,SAASS,yBAAyBA,CACvCC,KAAqC,EACrC;EACA,MAAM;IACJC,SAAS;IACTC,SAAS;IACTC,UAAU;IACVC,GAAG;IACHC,aAAa;IACbC,iBAAiB;IACjBC,KAAK;IACLC,IAAI;IACJC,IAAI;IACJC;EACF,CAAC,GAAGV,KAAK;EACT,MAAMW,KAAK,GAAG9E,KAAK,CAAC+E,OAAO,CACzB,MAAAvC,aAAA;IACEwC,YAAY,EAAEP,iBAAiB;IAC/BQ,UAAU,EAAG,QAAOT,aAAc;EAAC,GAC/BE,KAAK,GAAG;IAAEA,KAAK,EAAG,GAAEA,KAAM;EAAI,CAAC,GAAG,CAAC,CAAC,CACxC,EACF,CAACF,aAAa,EAAEE,KAAK,EAAED,iBAAiB,CAC1C,CAAC;EACD,MAAMS,OAAO,GAAGN,IAAI,CAACO,OAAO,CAAC,CAAC,GAAGR,IAAI,CAACQ,OAAO,CAAC,CAAC;EAC/C,MAAMC,OAAO,GAAGT,IAAI,CAACQ,OAAO,CAAC,CAAC;EAC9B,MAAME,KAAK,GAAGT,IAAI,CAACO,OAAO,CAAC,CAAC;EAC5B,MAAMG,OAAO,GAAGC,IAAI,CAACC,GAAG,CAACN,OAAO,IAAIR,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;EACtD,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAG1F,KAAK,CAAC2F,QAAQ,CAAC,IAAAC,eAAM,EAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC;EAC5D,MAAMU,YAAY,GAAGJ,KAAK,GAAGL,OAAO;EACpC,MAAMU,WAAW,GAAGL,KAAK,GAAGJ,KAAK;EACjCrF,KAAK,CAAC+F,SAAS,CAAC,MAAM;IACpB,IAAIF,YAAY,IAAIC,WAAW,EAAE;MAC/B,MAAME,QAAQ,GAAGC,WAAW,CAAC,MAAM;QACjCP,QAAQ,CAAC,IAAAE,eAAM,EAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC;MAC9B,CAAC,EAAEG,OAAO,CAAC;MACX,OAAO,MAAMY,aAAa,CAACF,QAAQ,CAAC;IACtC;EACF,CAAC,EAAE,CAACV,OAAO,EAAEO,YAAY,EAAEC,WAAW,CAAC,CAAC;EAExC,oBACE9F,KAAA,CAAAmG,aAAA;IACE/B,SAAS,EAAE,IAAAgC,mBAAU,EACnBhC,SAAS,EACTiC,gDAAuC,CAACjC,SAC1C,CAAE;IACFU,KAAK,EAAEA;EAAM,GAEZe,YAAY,KAAKhB,kBAAkB,IAAIiB,WAAW,CAAC,iBAClD9F,KAAA,CAAAmG,aAAA;IACE/B,SAAS,EAAE,IAAAgC,mBAAU,EACnB9B,UAAU,EACV+B,gDAAuC,CAAC/B,UAC1C,CAAE;IACFQ,KAAK,EAAE;MACLJ,KAAK,EAAG,GAAG,CAACe,KAAK,GAAGL,OAAO,IAAIF,OAAO,GAAI,GAAI;IAChD;EAAE,CACH,CACF,EACAW,YAAY,IAAIC,WAAW,iBAC1B9F,KAAA,CAAAmG,aAAA;IACE/B,SAAS,EAAE,IAAAgC,mBAAU,EACnB7B,GAAG,EACH8B,gDAAuC,CAAC9B,GAC1C;EAAE,CACH,CACF,EACAuB,WAAW,KAAKjB,kBAAkB,IAAIgB,YAAY,CAAC,iBAClD7F,KAAA,CAAAmG,aAAA;IACE/B,SAAS,EAAE,IAAAgC,mBAAU,EACnB/B,SAAS,EACTgC,gDAAuC,CAAChC,SAC1C,CAAE;IACFS,KAAK,EAAE;MACLJ,KAAK,EAAG,GAAG,CAACW,KAAK,GAAGI,KAAK,IAAIP,OAAO,GAAI,GAAI;IAC9C;EAAE,CACH,CAEA,CAAC;AAEV"}
|
package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.d.ts
CHANGED
@@ -15,6 +15,7 @@ export interface BookingCalendarSelectionProps {
|
|
15
15
|
target: BookingCalendarSelectionCoordinates;
|
16
16
|
}, e: React.MouseEvent<HTMLElement>) => void;
|
17
17
|
dataRowsCount: number;
|
18
|
+
firstDataRowIndex: number;
|
18
19
|
minSelectionSize: number;
|
19
20
|
children?: React.ReactNode;
|
20
21
|
}
|
package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js
CHANGED
@@ -140,7 +140,8 @@ class BookingCalendarSelection extends React.Component {
|
|
140
140
|
className: _classes.bookingCalendarSelectionDefaultClasses.root,
|
141
141
|
style: {
|
142
142
|
zIndex: this.state.selectionBox ? 99999 : undefined,
|
143
|
-
gridRowEnd: `span ${this.props.dataRowsCount}
|
143
|
+
gridRowEnd: `span ${this.props.dataRowsCount}`,
|
144
|
+
gridRowStart: this.props.firstDataRowIndex
|
144
145
|
},
|
145
146
|
onMouseDown: this.handleMouseDown,
|
146
147
|
onMouseUp: this.handleMouseUp,
|