guestbell-forms 3.0.42 → 3.0.43
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.d.ts +1 -0
- package/build/components/bookingCalendar/BookingCalendar.js +4 -3
- package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/index.d.ts +2 -0
- package/build/components/bookingCalendar/bookingCalendarGrid/index.js +28 -0
- package/build/components/bookingCalendar/bookingCalendarGrid/index.js.map +1 -0
- package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarSelection/index.d.ts +2 -0
- package/build/components/bookingCalendar/bookingCalendarSelection/index.js +28 -0
- package/build/components/bookingCalendar/bookingCalendarSelection/index.js.map +1 -0
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/index.d.ts +2 -0
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/index.js +28 -0
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/index.js.map +1 -0
- package/build/components/bookingCalendar/index.d.ts +10 -0
- package/build/components/bookingCalendar/index.js +110 -0
- package/build/components/bookingCalendar/index.js.map +1 -1
- package/build/components/bookingCalendar/utils.d.ts +1 -1
- package/build/components/bookingCalendar/utils.js +10 -6
- package/build/components/bookingCalendar/utils.js.map +1 -1
- package/build/dist/guestbell-forms.css +7 -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 +6 -4
- package/package.json +1 -1
- package/src/lib/components/bookingCalendar/BookingCalendar.tsx +32 -24
- package/src/lib/components/bookingCalendar/bookingCalendarGrid/index.ts +2 -0
- package/src/lib/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.tsx +1 -1
- package/src/lib/components/bookingCalendar/bookingCalendarSelection/index.ts +2 -0
- package/src/lib/components/bookingCalendar/bookingCalendarTimeAxis/index.ts +2 -0
- package/src/lib/components/bookingCalendar/index.ts +10 -0
- package/src/lib/components/bookingCalendar/utils.ts +9 -6
- package/src/lib/scss/components/bookingCalendar/bookingCalendar.scss +6 -4
- package/src/stories/OverlappingSchedule.stories.ts +16 -0
- package/src/stories/OverlappingSchedule.tsx +174 -0
- package/src/stories/overlappingSchedule.scss +10 -0
@@ -35,6 +35,7 @@ export interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>
|
|
35
35
|
minSelectionSize?: number;
|
36
36
|
onSelection?: (items: T[], from: Moment, till: Moment, e: React.MouseEvent<HTMLElement>) => void;
|
37
37
|
selectionContent?: React.ReactNode;
|
38
|
+
showHeader?: boolean;
|
38
39
|
BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;
|
39
40
|
BookingCalendarRenderItem?: React.ComponentType<BookingCalendarRenderItemProps<T>>;
|
40
41
|
BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;
|
@@ -43,6 +43,7 @@ function BookingCalendar(props) {
|
|
43
43
|
onRangeChange,
|
44
44
|
step = defaultStep,
|
45
45
|
showGrid = true,
|
46
|
+
showHeader = true,
|
46
47
|
showSelection = true,
|
47
48
|
onSelection,
|
48
49
|
minSelectionSize = 10,
|
@@ -69,7 +70,7 @@ function BookingCalendar(props) {
|
|
69
70
|
filteringButton,
|
70
71
|
children
|
71
72
|
} = props;
|
72
|
-
const lanes = React.useMemo(() => (0, _utils.splitBookingsToLanes)(bookings, from, minLanesCount, lanesSource, unmatchedLanesToFront), [bookings, from, minLanesCount, lanesSource, unmatchedLanesToFront]);
|
73
|
+
const lanes = React.useMemo(() => (0, _utils.splitBookingsToLanes)(bookings, from, till, minLanesCount, lanesSource, unmatchedLanesToFront), [bookings, from, till, minLanesCount, lanesSource, unmatchedLanesToFront]);
|
73
74
|
const {
|
74
75
|
observe,
|
75
76
|
entry
|
@@ -145,7 +146,7 @@ function BookingCalendar(props) {
|
|
145
146
|
dataRowsCount: lanes.length,
|
146
147
|
onSelected: onSelected,
|
147
148
|
minSelectionSize: minSelectionSize
|
148
|
-
}, selectionContent), /*#__PURE__*/React.createElement("div", {
|
149
|
+
}, selectionContent), showHeader && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
149
150
|
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName, lanesHeaderHeaderContainerClassName)
|
150
151
|
}, bookingCalendarTopLeftHeader), /*#__PURE__*/React.createElement("div", {
|
151
152
|
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.lanesHeaderContainerClassName, lanesHeaderContainerClassName),
|
@@ -155,7 +156,7 @@ function BookingCalendar(props) {
|
|
155
156
|
till: till,
|
156
157
|
onRangeChange: onRangeChange,
|
157
158
|
step: step
|
158
|
-
}))), lanes.map((lane, laneIndex) => {
|
159
|
+
})))), lanes.map((lane, laneIndex) => {
|
159
160
|
const LaneBookingCalendarLaneHeader = lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;
|
160
161
|
const LaneBookingCalendarLane = lane.BookingCalendarLane ?? BookingCalendarLane;
|
161
162
|
return /*#__PURE__*/React.createElement(React.Fragment, {
|
@@ -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","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","showSelection","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","bookingCalendarTopLeftHeader","filteringButton","children","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","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\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 BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = 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 showSelection = true,\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 bookingCalendarTopLeftHeader,\r\n filteringButton,\r\n children,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource,\r\n unmatchedLanesToFront\r\n ),\r\n [bookings, from, 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 {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n >\r\n {selectionContent}\r\n </BookingCalendarSelection>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {bookingCalendarTopLeftHeader}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n ref={observe}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|
1
|
+
{"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","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","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","bookingCalendarTopLeftHeader","filteringButton","children","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","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\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\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = 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 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 bookingCalendarTopLeftHeader,\r\n filteringButton,\r\n children,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n 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 {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\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 <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;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;AAA4F,SAAAG,uBAAAgB,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,SAAAxB,wBAAAoB,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;AAyD5F,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,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,4BAA4B;IAC5BC,eAAe;IACfC;EACF,CAAC,GAAGjD,KAAK;EACT,MAAMkD,KAAK,GAAG1G,KAAK,CAAC2G,OAAO,CACzB,MACE,IAAAC,2BAAoB,EAClBlD,QAAQ,EACRQ,IAAI,EACJC,IAAI,EACJiB,aAAa,EACbC,WAAW,EACXC,qBACF,CAAC,EACH,CAAC5B,QAAQ,EAAEQ,IAAI,EAAEC,IAAI,EAAEiB,aAAa,EAAEC,WAAW,EAAEC,qBAAqB,CAC1E,CAAC;EACD,MAAM;IAAEuB,OAAO;IAAEC;EAAM,CAAC,GAAG,IAAAC,4BAAa,EAAiB,CAAC;EAC1D,MAAMC,KAAK,GAAG,CAAAF,KAAK,aAALA,KAAK,wBAAArD,aAAA,GAALqD,KAAK,CAAEhE,MAAM,cAAAW,aAAA,uBAAbA,aAAA,CAAewD,WAAW,KAAI,CAAC;EAC7C,MAAM;IAAEC,KAAK,EAAEC,SAAS;IAAEC;EAAS,CAAC,GAAGpH,KAAK,CAAC2G,OAAO,CAClD;IAAA,IAAAU,WAAA;IAAA,OACE,IAAAC,wBAAiB,EACfpD,IAAI,EACJC,IAAI,EACJE,IAAI,EACJ2C,KAAK,EACLnC,kBAAkB,EAClBM,eAAe,EACfjB,IAAI,aAAJA,IAAI,wBAAAmD,WAAA,GAAJnD,IAAI,CAAEqD,KAAK,CAAC,CAAC,cAAAF,WAAA,uBAAbA,WAAA,CAAeG,OAAO,CAAC,KAAK,CAC9B,CAAC;EAAA,GACH,CAACtD,IAAI,EAAEC,IAAI,EAAEE,IAAI,EAAE2C,KAAK,EAAEnC,kBAAkB,EAAEM,eAAe,CAC/D,CAAC;EACD,MAAMsC,YAAY,GAAGzH,KAAK,CAAC0H,MAAM,CAAiB,CAAC;EACnD,MAAMC,UAAU,GAAG3H,KAAK,CAAC4H,WAAW,CAClC,CAACC,IAAkC,EAAEC,CAAgC,KAAK;IACxE,IAAI,CAAC5D,IAAI,IAAI,CAACC,IAAI,IAAI,CAAC6C,KAAK,IAAI,CAAC5C,aAAa,EAAE;MAC9C;IACF;IACA,MAAM2D,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACJ,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAAC/E,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAMqF,cAAc,GAAGH,IAAI,CAACI,GAAG,CAACP,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAAC/E,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAMuF,YAAY,GAAGL,IAAI,CAACC,GAAG,CAACJ,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAAC/E,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAMwF,eAAe,GAAGN,IAAI,CAACI,GAAG,CAACP,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEL,IAAI,CAAC/E,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,MAAMyF,UAAU,GAAGpE,IAAI,CAACqE,OAAO,CAAC,CAAC,GAAGtE,IAAI,CAACsE,OAAO,CAAC,CAAC;IAClD,MAAMC,WAAW,GAAIC,GAAW,IAAMA,GAAG,IAAI1B,KAAK,IAAI,CAAC,CAAC,GAAIuB,UAAU;IACtE,MAAMI,cAAc,GAAGzE,IAAI,CAACqD,KAAK,CAAC,CAAC,CAACqB,GAAG,CAACH,WAAW,CAACV,aAAa,CAAC,EAAE,IAAI,CAAC;IACzE,MAAMc,YAAY,GAAG3E,IAAI,CAACqD,KAAK,CAAC,CAAC,CAACqB,GAAG,CAACH,WAAW,CAACN,cAAc,CAAC,EAAE,IAAI,CAAC;IACxE,IAAI1D,WAAW,EAAE;MAAA,IAAAqE,qBAAA,EAAAC,sBAAA;MACf,MAAMC,YAAY,GAAI,IAAGC,sDAAiC,CAACtF,SAAU,SAAQuF,oEAAwC,CAACC,aAAc,QAAOC,sDAAiC,CAACzF,SAAU,EAAC;MACxL,MAAM0F,QAAQ,GAAGC,KAAK,CAACpF,IAAI,CACzBuD,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;MACDnG,WAAW,CACTf,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEqG,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,CACE5D,IAAI,EACJC,IAAI,EACJ6C,KAAK,EACL5C,aAAa,EACbK,WAAW,EACXA,WAAW,GAAGf,QAAQ,GAAG,IAAI,CAEjC,CAAC;EACD,oBACE1D,KAAA,CAAAkL,aAAA;IACEvH,SAAS,EAAE,IAAAwH,mBAAU,EAACC,sCAA6B,CAACzH,SAAS,EAAEA,SAAS,CAAE;IAC1E0H,GAAG,EAAE5D;EAAa,gBAElBzH,KAAA,CAAAkL,aAAA,CAACzF,uBAAuB,EAAA9C,QAAA,KAClBqB,eAAe;IACnBkD,KAAK,EAAExD,QAAS;IAChBQ,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA,IAAK;IACXkB,oBAAoB,EAAEA,oBAAqB;IAC3CC,UAAU,EAAEA,UAAW;IACvBgB,eAAe,EAAEA,eAAgB;IACjC5B,iBAAiB,EAAEA,iBAAkB;IACrC0G,yBAAyB,eACvBtL,KAAA,CAAAkL,aAAA,CAAAlL,KAAA,CAAAuL,QAAA,QACG,OAAOlF,yBAAyB,KAAK,UAAU,gBAC9CrG,KAAA,CAAAkL,aAAA,CAAC7E,yBAAyB;MACxBnC,IAAI,EAAEA,IAAK;MACXC,IAAI,EAAEA,IAAK;MACXC,aAAa,EAAEA,aAAc;MAC7Ba,oBAAoB,EAAEA;IAAqB,CAC5C,CAAC,GAEFoB,yBAEF;EACH,EACF,CAAC,eACFrG,KAAA,CAAAkL,aAAA;IACEvH,SAAS,EAAE,IAAAwH,mBAAU,EACnBC,sCAA6B,CAACnH,cAAc,EAC5CA,cACF;EAAE,GAEDK,QAAQ,iBACPtE,KAAA,CAAAkL,aAAA,CAACnF,mBAAmB;IAClBmB,KAAK,EAAEC,SAAU;IACjBqE,aAAa,EAAE9E,KAAK,CAACzD,MAAO;IAC5B+D,KAAK,EAAEA;EAAM,CACd,CACF,EACAxC,aAAa,iBACZxE,KAAA,CAAAkL,aAAA,CAAChK,yBAAA,CAAAK,OAAwB;IACvBiK,aAAa,EAAE9E,KAAK,CAACzD,MAAO;IAC5B0E,UAAU,EAAEA,UAAW;IACvBjD,gBAAgB,EAAEA;EAAiB,GAElCC,gBACuB,CAC3B,EACAJ,UAAU,iBACTvE,KAAA,CAAAkL,aAAA,CAAAlL,KAAA,CAAAuL,QAAA,qBACEvL,KAAA,CAAAkL,aAAA;IACEvH,SAAS,EAAE,IAAAwH,mBAAU,EACnBC,sCAA6B,CAACrH,mCAAmC,EACjEA,mCACF;EAAE,GAEDwC,4BACE,CAAC,eACNvG,KAAA,CAAAkL,aAAA;IACEvH,SAAS,EAAE,IAAAwH,mBAAU,EACnBC,sCAA6B,CAACtH,6BAA6B,EAC3DA,6BACF,CAAE;IACFuH,GAAG,EAAExE;EAAQ,gBAEb7G,KAAA,CAAAkL,aAAA,CAAC/E,0BAA0B,EAAAxD,QAAA,KACrBqB,eAAe;IACnBE,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,EACZ,CACE,CACL,CACH,EAEAqC,KAAK,CAACiE,GAAG,CAAC,CAACc,IAAI,EAAEC,SAAS,KAAK;IAC9B,MAAMC,6BAA6B,GACjCF,IAAI,CAACxF,yBAAyB,IAAIA,yBAAyB;IAC7D,MAAM2F,uBAAuB,GAC3BH,IAAI,CAAC7F,mBAAmB,IAAIA,mBAAmB;IACjD,oBACE5F,KAAA,CAAAkL,aAAA,CAAClL,KAAK,CAACuL,QAAQ;MAAClJ,GAAG,EAAEqJ;IAAU,gBAC7B1L,KAAA,CAAAkL,aAAA;MACEvH,SAAS,EAAE,IAAAwH,mBAAU,EACnBC,sCAA6B,CAACvH,4BAA4B,EAC1DA,4BAA4B,EAC5B4H,IAAI,CAACI,YAAY,EACjB;QACE,CAAE,GAAET,sCAA6B,CAACvH,4BAA6B,QAAO,GACpE6H,SAAS,KAAKhF,KAAK,CAACzD,MAAM,GAAG,CAAC;QAChC,CAAE,GAAEmI,sCAA6B,CAACvH,4BAA6B,SAAQ,GACrE6H,SAAS,KAAK;MAClB,CACF;IAAE,gBAEF1L,KAAA,CAAAkL,aAAA,CAACS,6BAA6B;MAC5BG,OAAO,EAAEL,IAAI,CAACK,OAAO,IAAIJ,SAAU;MACnC7D,IAAI,EAAE4D,IAAI,CAAC5D;IAAK,CACjB,CACE,CAAC,eACN7H,KAAA,CAAAkL,aAAA;MACEvH,SAAS,EAAE,IAAAwH,mBAAU,EACnBC,sCAA6B,CAACxH,sBAAsB,EACpDA,sBAAsB,EACtB6H,IAAI,CAACI,YAAY,EACjB;QACE,CAAE,GAAET,sCAA6B,CAACxH,sBAAuB,QAAO,GAC9D8H,SAAS,KAAKhF,KAAK,CAACzD,MAAM,GAAG,CAAC;QAChC,CAAE,GAAEmI,sCAA6B,CAACxH,sBAAuB,SAAQ,GAC/D8H,SAAS,KAAK;MAClB,CACF;IAAE,gBAEF1L,KAAA,CAAAkL,aAAA,CAACU,uBAAuB;MACtBF,SAAS,EAAEA,SAAU;MACrBxE,KAAK,EAAEuE,IAAI,CAACvE,KAAM;MAClBhD,IAAI,EAAEA,IAAK;MACXC,IAAI,EAAEA,IAAK;MACXwB,mBAAmB,EACjB8F,IAAI,CAAC9F,mBAAmB,IAAIA,mBAC7B;MACDG,yBAAyB,EACvB2F,IAAI,CAAC3F,yBAAyB,IAAIA,yBACnC;MACDzB,IAAI,EAAEA;IAAK,CACZ,CACE,CACS,CAAC;EAErB,CAAC,CAAC,eACFrE,KAAA,CAAAkL,aAAA,YAAM,CAAC,eACPlL,KAAA,CAAAkL,aAAA,2BACElL,KAAA,CAAAkL,aAAA,CAAClK,wBAAA,CAAA+K,uBAAuB;IACtB7E,KAAK,EAAEC,SAAU;IACjBC,QAAQ,EAAEA,QAAS;IACnBrC,uBAAuB,EAAEA;EAAwB,CAClD,CACE,CACF,CAAC,EACL0B,QACE,CAAC;AAEV"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _BookingCalendarGrid = require("./BookingCalendarGrid");
|
7
|
+
Object.keys(_BookingCalendarGrid).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _BookingCalendarGrid[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function () {
|
13
|
+
return _BookingCalendarGrid[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
var _classes = require("./classes");
|
18
|
+
Object.keys(_classes).forEach(function (key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (key in exports && exports[key] === _classes[key]) return;
|
21
|
+
Object.defineProperty(exports, key, {
|
22
|
+
enumerable: true,
|
23
|
+
get: function () {
|
24
|
+
return _classes[key];
|
25
|
+
}
|
26
|
+
});
|
27
|
+
});
|
28
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","names":["_BookingCalendarGrid","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_classes"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarGrid/index.ts"],"sourcesContent":["export * from './BookingCalendarGrid';\nexport * from './classes';\n"],"mappings":";;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,oBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,oBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,oBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
@@ -24,7 +24,7 @@ function BookingCalendarLane(props) {
|
|
24
24
|
BookingCalendarItem = _BookingCalendarItem.BookingCalendarItem,
|
25
25
|
BookingCalendarRenderItem
|
26
26
|
} = props;
|
27
|
-
const calculatedItems = React.useMemo(() => (0, _utils.calculateItemsDimensions)(items, from, till), [items, from, till]);
|
27
|
+
const calculatedItems = React.useMemo(() => items !== null && items !== void 0 && items.length ? (0, _utils.calculateItemsDimensions)(items, from, till) : [], [items, from, till]);
|
28
28
|
return /*#__PURE__*/React.createElement("div", {
|
29
29
|
className: (0, _classnames.default)(_classes.bookingCalendarLaneDefaultClasses.className, className)
|
30
30
|
}, calculatedItems === null || calculatedItems === void 0 ? void 0 : calculatedItems.map((item, itemIndex) => item.width > 0 ? /*#__PURE__*/React.createElement(BookingCalendarItem, _extends({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendarLane.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_BookingCalendarItem","_utils","_classes","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","BookingCalendarLane","props","className","items","laneIndex","from","till","step","BookingCalendarItem","DefaultBookingCalendarItem","BookingCalendarRenderItem","calculatedItems","useMemo","calculateItemsDimensions","createElement","classNames","bookingCalendarLaneDefaultClasses","map","item","itemIndex","width"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport { Duration, Moment } from 'moment';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarItem as DefaultBookingCalendarItem,\r\n BookingCalendarItemProps,\r\n} from '../bookingCalendarItem/BookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from '../bookingCalendarRenderItem';\r\nimport { calculateItemsDimensions } from '../utils';\r\nimport { BookingCalendarItemT } from './../common';\r\nimport {\r\n bookingCalendarLaneDefaultClasses,\r\n BookingCalendarLaneClasses,\r\n} from './classes';\r\n\r\nexport interface BookingCalendarLaneProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarLaneClasses {\r\n items: T[];\r\n laneIndex: number;\r\n from: Moment;\r\n till: Moment;\r\n step: Duration;\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n}\r\n\r\nexport function BookingCalendarLane<T extends BookingCalendarItemT>(\r\n props: BookingCalendarLaneProps<T>\r\n) {\r\n const {\r\n className,\r\n items,\r\n laneIndex,\r\n from,\r\n till,\r\n step,\r\n BookingCalendarItem = DefaultBookingCalendarItem,\r\n BookingCalendarRenderItem,\r\n } = props;\r\n const calculatedItems = React.useMemo(\r\n () => calculateItemsDimensions(items, from, till),\r\n [items, from, till]\r\n );\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarLaneDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n {calculatedItems?.map((item, itemIndex) =>\r\n item.width > 0 ? (\r\n <BookingCalendarItem\r\n BookingCalendarRenderItem={BookingCalendarRenderItem}\r\n key={itemIndex}\r\n itemIndex={itemIndex}\r\n laneIndex={laneIndex}\r\n from={from}\r\n till={till}\r\n step={step}\r\n {...item}\r\n />\r\n ) : null\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AAGmB,SAAAM,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAlB,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAiB,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;AAeZ,SAASI,mBAAmBA,CACjCC,KAAkC,EAClC;EACA,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,mBAAmB,GAAGC,wCAA0B;IAChDC;EACF,CAAC,GAAGT,KAAK;EACT,MAAMU,eAAe,GAAG/C,KAAK,CAACgD,OAAO,CACnC,MAAM,
|
1
|
+
{"version":3,"file":"BookingCalendarLane.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_BookingCalendarItem","_utils","_classes","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","BookingCalendarLane","props","className","items","laneIndex","from","till","step","BookingCalendarItem","DefaultBookingCalendarItem","BookingCalendarRenderItem","calculatedItems","useMemo","calculateItemsDimensions","createElement","classNames","bookingCalendarLaneDefaultClasses","map","item","itemIndex","width"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport { Duration, Moment } from 'moment';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarItem as DefaultBookingCalendarItem,\r\n BookingCalendarItemProps,\r\n} from '../bookingCalendarItem/BookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from '../bookingCalendarRenderItem';\r\nimport { calculateItemsDimensions } from '../utils';\r\nimport { BookingCalendarItemT } from './../common';\r\nimport {\r\n bookingCalendarLaneDefaultClasses,\r\n BookingCalendarLaneClasses,\r\n} from './classes';\r\n\r\nexport interface BookingCalendarLaneProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarLaneClasses {\r\n items: T[];\r\n laneIndex: number;\r\n from: Moment;\r\n till: Moment;\r\n step: Duration;\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n}\r\n\r\nexport function BookingCalendarLane<T extends BookingCalendarItemT>(\r\n props: BookingCalendarLaneProps<T>\r\n) {\r\n const {\r\n className,\r\n items,\r\n laneIndex,\r\n from,\r\n till,\r\n step,\r\n BookingCalendarItem = DefaultBookingCalendarItem,\r\n BookingCalendarRenderItem,\r\n } = props;\r\n const calculatedItems = React.useMemo(\r\n () => (items?.length ? calculateItemsDimensions(items, from, till) : []),\r\n [items, from, till]\r\n );\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarLaneDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n {calculatedItems?.map((item, itemIndex) =>\r\n item.width > 0 ? (\r\n <BookingCalendarItem\r\n BookingCalendarRenderItem={BookingCalendarRenderItem}\r\n key={itemIndex}\r\n itemIndex={itemIndex}\r\n laneIndex={laneIndex}\r\n from={from}\r\n till={till}\r\n step={step}\r\n {...item}\r\n />\r\n ) : null\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AAGmB,SAAAM,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAlB,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAiB,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;AAeZ,SAASI,mBAAmBA,CACjCC,KAAkC,EAClC;EACA,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,mBAAmB,GAAGC,wCAA0B;IAChDC;EACF,CAAC,GAAGT,KAAK;EACT,MAAMU,eAAe,GAAG/C,KAAK,CAACgD,OAAO,CACnC,MAAOT,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEN,MAAM,GAAG,IAAAgB,+BAAwB,EAACV,KAAK,EAAEE,IAAI,EAAEC,IAAI,CAAC,GAAG,EAAG,EACxE,CAACH,KAAK,EAAEE,IAAI,EAAEC,IAAI,CACpB,CAAC;EACD,oBACE1C,KAAA,CAAAkD,aAAA;IACEZ,SAAS,EAAE,IAAAa,mBAAU,EACnBC,0CAAiC,CAACd,SAAS,EAC3CA,SACF;EAAE,GAEDS,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEM,GAAG,CAAC,CAACC,IAAI,EAAEC,SAAS,KACpCD,IAAI,CAACE,KAAK,GAAG,CAAC,gBACZxD,KAAA,CAAAkD,aAAA,CAACN,mBAAmB,EAAAjB,QAAA;IAClBmB,yBAAyB,EAAEA,yBAA0B;IACrDzB,GAAG,EAAEkC,SAAU;IACfA,SAAS,EAAEA,SAAU;IACrBf,SAAS,EAAEA,SAAU;IACrBC,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA;EAAK,GACPW,IAAI,CACT,CAAC,GACA,IACN,CACG,CAAC;AAEV"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _BookingCalendarSelection = require("./BookingCalendarSelection");
|
7
|
+
Object.keys(_BookingCalendarSelection).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _BookingCalendarSelection[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function () {
|
13
|
+
return _BookingCalendarSelection[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
var _classes = require("./classes");
|
18
|
+
Object.keys(_classes).forEach(function (key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (key in exports && exports[key] === _classes[key]) return;
|
21
|
+
Object.defineProperty(exports, key, {
|
22
|
+
enumerable: true,
|
23
|
+
get: function () {
|
24
|
+
return _classes[key];
|
25
|
+
}
|
26
|
+
});
|
27
|
+
});
|
28
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","names":["_BookingCalendarSelection","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_classes"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarSelection/index.ts"],"sourcesContent":["export * from './BookingCalendarSelection';\nexport * from './classes';\n"],"mappings":";;;;;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,yBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,yBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,yBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _BookingCalendarTimeAxis = require("./BookingCalendarTimeAxis");
|
7
|
+
Object.keys(_BookingCalendarTimeAxis).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _BookingCalendarTimeAxis[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function () {
|
13
|
+
return _BookingCalendarTimeAxis[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
var _classes = require("./classes");
|
18
|
+
Object.keys(_classes).forEach(function (key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (key in exports && exports[key] === _classes[key]) return;
|
21
|
+
Object.defineProperty(exports, key, {
|
22
|
+
enumerable: true,
|
23
|
+
get: function () {
|
24
|
+
return _classes[key];
|
25
|
+
}
|
26
|
+
});
|
27
|
+
});
|
28
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","names":["_BookingCalendarTimeAxis","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_classes"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarTimeAxis/index.ts"],"sourcesContent":["export * from './BookingCalendarTimeAxis';\nexport * from './classes';\n"],"mappings":";;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,wBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,wBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,wBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
@@ -1,3 +1,13 @@
|
|
1
|
+
export * from './bookingCalendarControls';
|
2
|
+
export * from './bookingCalendarDatePicker';
|
3
|
+
export * from './bookingCalendarGrid';
|
4
|
+
export * from './bookingCalendarItem';
|
5
|
+
export * from './bookingCalendarLane';
|
6
|
+
export * from './bookingCalendarLaneHeader';
|
7
|
+
export * from './bookingCalendarLanesHeader';
|
8
|
+
export * from './bookingCalendarRenderItem';
|
9
|
+
export * from './bookingCalendarSelection';
|
10
|
+
export * from './bookingCalendarTimeAxis';
|
1
11
|
export * from './BookingCalendar';
|
2
12
|
export * from './common';
|
3
13
|
export * from './classes';
|
@@ -3,6 +3,116 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
+
var _bookingCalendarControls = require("./bookingCalendarControls");
|
7
|
+
Object.keys(_bookingCalendarControls).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _bookingCalendarControls[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function () {
|
13
|
+
return _bookingCalendarControls[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
var _bookingCalendarDatePicker = require("./bookingCalendarDatePicker");
|
18
|
+
Object.keys(_bookingCalendarDatePicker).forEach(function (key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (key in exports && exports[key] === _bookingCalendarDatePicker[key]) return;
|
21
|
+
Object.defineProperty(exports, key, {
|
22
|
+
enumerable: true,
|
23
|
+
get: function () {
|
24
|
+
return _bookingCalendarDatePicker[key];
|
25
|
+
}
|
26
|
+
});
|
27
|
+
});
|
28
|
+
var _bookingCalendarGrid = require("./bookingCalendarGrid");
|
29
|
+
Object.keys(_bookingCalendarGrid).forEach(function (key) {
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
31
|
+
if (key in exports && exports[key] === _bookingCalendarGrid[key]) return;
|
32
|
+
Object.defineProperty(exports, key, {
|
33
|
+
enumerable: true,
|
34
|
+
get: function () {
|
35
|
+
return _bookingCalendarGrid[key];
|
36
|
+
}
|
37
|
+
});
|
38
|
+
});
|
39
|
+
var _bookingCalendarItem = require("./bookingCalendarItem");
|
40
|
+
Object.keys(_bookingCalendarItem).forEach(function (key) {
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
42
|
+
if (key in exports && exports[key] === _bookingCalendarItem[key]) return;
|
43
|
+
Object.defineProperty(exports, key, {
|
44
|
+
enumerable: true,
|
45
|
+
get: function () {
|
46
|
+
return _bookingCalendarItem[key];
|
47
|
+
}
|
48
|
+
});
|
49
|
+
});
|
50
|
+
var _bookingCalendarLane = require("./bookingCalendarLane");
|
51
|
+
Object.keys(_bookingCalendarLane).forEach(function (key) {
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
53
|
+
if (key in exports && exports[key] === _bookingCalendarLane[key]) return;
|
54
|
+
Object.defineProperty(exports, key, {
|
55
|
+
enumerable: true,
|
56
|
+
get: function () {
|
57
|
+
return _bookingCalendarLane[key];
|
58
|
+
}
|
59
|
+
});
|
60
|
+
});
|
61
|
+
var _bookingCalendarLaneHeader = require("./bookingCalendarLaneHeader");
|
62
|
+
Object.keys(_bookingCalendarLaneHeader).forEach(function (key) {
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
64
|
+
if (key in exports && exports[key] === _bookingCalendarLaneHeader[key]) return;
|
65
|
+
Object.defineProperty(exports, key, {
|
66
|
+
enumerable: true,
|
67
|
+
get: function () {
|
68
|
+
return _bookingCalendarLaneHeader[key];
|
69
|
+
}
|
70
|
+
});
|
71
|
+
});
|
72
|
+
var _bookingCalendarLanesHeader = require("./bookingCalendarLanesHeader");
|
73
|
+
Object.keys(_bookingCalendarLanesHeader).forEach(function (key) {
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
75
|
+
if (key in exports && exports[key] === _bookingCalendarLanesHeader[key]) return;
|
76
|
+
Object.defineProperty(exports, key, {
|
77
|
+
enumerable: true,
|
78
|
+
get: function () {
|
79
|
+
return _bookingCalendarLanesHeader[key];
|
80
|
+
}
|
81
|
+
});
|
82
|
+
});
|
83
|
+
var _bookingCalendarRenderItem = require("./bookingCalendarRenderItem");
|
84
|
+
Object.keys(_bookingCalendarRenderItem).forEach(function (key) {
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
86
|
+
if (key in exports && exports[key] === _bookingCalendarRenderItem[key]) return;
|
87
|
+
Object.defineProperty(exports, key, {
|
88
|
+
enumerable: true,
|
89
|
+
get: function () {
|
90
|
+
return _bookingCalendarRenderItem[key];
|
91
|
+
}
|
92
|
+
});
|
93
|
+
});
|
94
|
+
var _bookingCalendarSelection = require("./bookingCalendarSelection");
|
95
|
+
Object.keys(_bookingCalendarSelection).forEach(function (key) {
|
96
|
+
if (key === "default" || key === "__esModule") return;
|
97
|
+
if (key in exports && exports[key] === _bookingCalendarSelection[key]) return;
|
98
|
+
Object.defineProperty(exports, key, {
|
99
|
+
enumerable: true,
|
100
|
+
get: function () {
|
101
|
+
return _bookingCalendarSelection[key];
|
102
|
+
}
|
103
|
+
});
|
104
|
+
});
|
105
|
+
var _bookingCalendarTimeAxis = require("./bookingCalendarTimeAxis");
|
106
|
+
Object.keys(_bookingCalendarTimeAxis).forEach(function (key) {
|
107
|
+
if (key === "default" || key === "__esModule") return;
|
108
|
+
if (key in exports && exports[key] === _bookingCalendarTimeAxis[key]) return;
|
109
|
+
Object.defineProperty(exports, key, {
|
110
|
+
enumerable: true,
|
111
|
+
get: function () {
|
112
|
+
return _bookingCalendarTimeAxis[key];
|
113
|
+
}
|
114
|
+
});
|
115
|
+
});
|
6
116
|
var _BookingCalendar = require("./BookingCalendar");
|
7
117
|
Object.keys(_BookingCalendar).forEach(function (key) {
|
8
118
|
if (key === "default" || key === "__esModule") return;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
1
|
+
{"version":3,"file":"index.js","names":["_bookingCalendarControls","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_bookingCalendarDatePicker","_bookingCalendarGrid","_bookingCalendarItem","_bookingCalendarLane","_bookingCalendarLaneHeader","_bookingCalendarLanesHeader","_bookingCalendarRenderItem","_bookingCalendarSelection","_bookingCalendarTimeAxis","_BookingCalendar","_common","_classes"],"sources":["../../../src/lib/components/bookingCalendar/index.ts"],"sourcesContent":["export * from './bookingCalendarControls';\r\nexport * from './bookingCalendarDatePicker';\r\nexport * from './bookingCalendarGrid';\r\nexport * from './bookingCalendarItem';\r\nexport * from './bookingCalendarLane';\r\nexport * from './bookingCalendarLaneHeader';\r\nexport * from './bookingCalendarLanesHeader';\r\nexport * from './bookingCalendarRenderItem';\r\nexport * from './bookingCalendarSelection';\r\nexport * from './bookingCalendarTimeAxis';\r\nexport * from './BookingCalendar';\r\nexport * from './common';\r\nexport * from './classes';\r\n"],"mappings":"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"}
|
@@ -20,7 +20,7 @@ export interface LaneSourceData<T extends BookingCalendarItemT, TLaneData> {
|
|
20
20
|
export interface LaneData<T extends BookingCalendarItemT, TLaneData> extends LaneSourceData<T, TLaneData> {
|
21
21
|
items: T[];
|
22
22
|
}
|
23
|
-
export declare function splitBookingsToLanes<T extends BookingCalendarItemT, TLaneData>(bookings: T[], from: Moment, minLanesCount: number, lanesSource?: LaneSourceData<T, TLaneData>[], unmatchedToFront?: boolean): LaneData<T, TLaneData>[];
|
23
|
+
export declare function splitBookingsToLanes<T extends BookingCalendarItemT, TLaneData>(bookings: T[], from: Moment, till: Moment, minLanesCount: number, lanesSource?: LaneSourceData<T, TLaneData>[], unmatchedToFront?: boolean): LaneData<T, TLaneData>[];
|
24
24
|
type Picked = Pick<BookingCalendarItemT, 'from' | 'till'>;
|
25
25
|
export declare function itemsOverlap(a: Picked, b: Picked): boolean;
|
26
26
|
export declare const getItemPositionStyle: (marginStart: number, width: number) => import("react").CSSProperties;
|
@@ -25,9 +25,9 @@ function groupBy(items, iterator) {
|
|
25
25
|
return obj;
|
26
26
|
}, {});
|
27
27
|
}
|
28
|
-
function splitBookingsToLanes(bookings, from, minLanesCount) {
|
29
|
-
let lanesSource = arguments.length >
|
30
|
-
let unmatchedToFront = arguments.length >
|
28
|
+
function splitBookingsToLanes(bookings, from, till, minLanesCount) {
|
29
|
+
let lanesSource = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
30
|
+
let unmatchedToFront = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
31
31
|
if (!bookings) {
|
32
32
|
return [];
|
33
33
|
}
|
@@ -107,8 +107,12 @@ function splitBookingsToLanes(bookings, from, minLanesCount) {
|
|
107
107
|
}
|
108
108
|
|
109
109
|
for (let index = 0; index < lanes.length; index++) {
|
110
|
-
const
|
111
|
-
|
110
|
+
const laneItems = lanes[index].items;
|
111
|
+
const normal = laneItems.filter(a => a.till.valueOf() < till.valueOf());
|
112
|
+
normal.sort((a, b) => a.from.valueOf() - b.from.valueOf());
|
113
|
+
const atEnd = laneItems.filter(a => a.till.valueOf() >= till.valueOf());
|
114
|
+
atEnd.sort((a, b) => a.from.valueOf() - b.from.valueOf());
|
115
|
+
lanes[index].items = [...normal, ...atEnd];
|
112
116
|
}
|
113
117
|
if (lanes.length < minLanesCount) {
|
114
118
|
lanes = lanes.concat(new Array(minLanesCount - lanes.length).fill(null).map((_, index) => ({
|
@@ -167,7 +171,7 @@ function calculateItemsDimensions(items, from, till) {
|
|
167
171
|
const end = endIsCut ? (endMs - startMs) / widthMs : realEnd;
|
168
172
|
const realTill = endIsCut ? (0, _moment.default)(endMs) : (0, _moment.default)(item.till);
|
169
173
|
const marginStart = start - lastEnd;
|
170
|
-
lastEnd = (item.till.valueOf() - startMs) / widthMs;
|
174
|
+
lastEnd = Math.min((item.till.valueOf() - startMs) / widthMs, 1);
|
171
175
|
return {
|
172
176
|
item,
|
173
177
|
start,
|