guestbell-forms 3.0.45 → 3.0.46

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.
Files changed (24) hide show
  1. package/build/components/bookingCalendar/BookingCalendar.d.ts +4 -0
  2. package/build/components/bookingCalendar/BookingCalendar.js +10 -0
  3. package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
  4. package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.d.ts +11 -0
  5. package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js +68 -0
  6. package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js.map +1 -0
  7. package/build/components/bookingCalendar/bookingCalendarNowSection/classes.d.ts +7 -0
  8. package/build/components/bookingCalendar/bookingCalendarNowSection/classes.js +14 -0
  9. package/build/components/bookingCalendar/bookingCalendarNowSection/classes.js.map +1 -0
  10. package/build/components/bookingCalendar/bookingCalendarNowSection/index.d.ts +2 -0
  11. package/build/components/bookingCalendar/bookingCalendarNowSection/index.js +28 -0
  12. package/build/components/bookingCalendar/bookingCalendarNowSection/index.js.map +1 -0
  13. package/build/dist/guestbell-forms.css +18 -0
  14. package/build/dist/guestbell-forms.css.map +1 -1
  15. package/build/dist/guestbell-forms.min.css +1 -1
  16. package/build/dist/report.html +2 -2
  17. package/build/scss/components/bookingCalendar/bookingCalendar.scss +28 -0
  18. package/package.json +1 -1
  19. package/src/lib/components/bookingCalendar/BookingCalendar.tsx +19 -0
  20. package/src/lib/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.tsx +95 -0
  21. package/src/lib/components/bookingCalendar/bookingCalendarNowSection/classes.ts +14 -0
  22. package/src/lib/components/bookingCalendar/bookingCalendarNowSection/index.ts +2 -0
  23. package/src/lib/scss/components/bookingCalendar/bookingCalendar.scss +28 -0
  24. package/src/stories/Schedule.tsx +1 -1
@@ -11,6 +11,7 @@ import { BookingCalendarGridProps } from './bookingCalendarGrid/BookingCalendarG
11
11
  import { BookingCalendarLaneHeaderProps } from './bookingCalendarLaneHeader';
12
12
  import { BookingCalendarLanesHeaderProps } from './bookingCalendarLanesHeader';
13
13
  import { BookingCalendarDatePickerProps } from './bookingCalendarDatePicker';
14
+ import { BookingCalendarNowSectionProps } from './bookingCalendarNowSection';
14
15
  export interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData> extends BookingCalendarClasses {
15
16
  bookings: T[];
16
17
  from: Moment;
@@ -37,6 +38,8 @@ export interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>
37
38
  selectionContent?: React.ReactNode;
38
39
  showHeader?: boolean;
39
40
  showTimeAxis?: boolean;
41
+ showNowSection?: boolean;
42
+ alwaysShowNowSections?: boolean;
40
43
  BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;
41
44
  BookingCalendarRenderItem?: React.ComponentType<BookingCalendarRenderItemProps<T>>;
42
45
  BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;
@@ -45,5 +48,6 @@ export interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>
45
48
  BookingCalendarLaneHeader?: React.ComponentType<BookingCalendarLaneHeaderProps<TLaneData>>;
46
49
  BookingCalendarLanesHeader?: React.ComponentType<BookingCalendarLanesHeaderProps<T>>;
47
50
  BookingCalendarDatePicker?: React.ComponentType<BookingCalendarDatePickerProps<T>> | React.ReactNode;
51
+ BookingCalendarNowSection?: React.ComponentType<BookingCalendarNowSectionProps>;
48
52
  }
49
53
  export declare function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(props: BookingCalendarProps<T, TLaneData>): React.JSX.Element;
@@ -22,6 +22,7 @@ var _reactCoolDimensions = _interopRequireDefault(require("react-cool-dimensions
22
22
  var _BookingCalendarSelection = _interopRequireDefault(require("./bookingCalendarSelection/BookingCalendarSelection"));
23
23
  var _bookingCalendarLane = require("./bookingCalendarLane");
24
24
  var _classes2 = require("./bookingCalendarSelection/classes");
25
+ var _bookingCalendarNowSection = require("./bookingCalendarNowSection");
25
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27
  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); }
27
28
  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; }
@@ -45,6 +46,8 @@ function BookingCalendar(props) {
45
46
  showGrid = true,
46
47
  showHeader = true,
47
48
  showSelection = true,
49
+ showNowSection = true,
50
+ alwaysShowNowSections = false,
48
51
  onSelection,
49
52
  minSelectionSize = 10,
50
53
  selectionContent,
@@ -66,6 +69,7 @@ function BookingCalendar(props) {
66
69
  BookingCalendarLaneHeader = _bookingCalendarLaneHeader.BookingCalendarLaneHeader,
67
70
  BookingCalendarLanesHeader = _bookingCalendarLanesHeader.BookingCalendarLanesHeader,
68
71
  BookingCalendarDatePicker = _bookingCalendarDatePicker.BookingCalendarDatePicker,
72
+ BookingCalendarNowSection = _bookingCalendarNowSection.BookingCalendarNowSection,
69
73
  bookingCalendarTopLeftHeader,
70
74
  filteringButton,
71
75
  children
@@ -145,6 +149,12 @@ function BookingCalendar(props) {
145
149
  items: gridItems,
146
150
  dataRowsCount: lanes.length,
147
151
  width: width
152
+ }), showNowSection && /*#__PURE__*/React.createElement(BookingCalendarNowSection, {
153
+ from: from,
154
+ till: till,
155
+ dataRowsCount: lanes.length,
156
+ width: width,
157
+ alwaysShowSections: alwaysShowNowSections
148
158
  }), showSelection && /*#__PURE__*/React.createElement(_BookingCalendarSelection.default, {
149
159
  dataRowsCount: lanes.length + (showTimeAxis ? 1 : 0),
150
160
  onSelected: onSelected,
@@ -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","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","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","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 showTimeAxis?: 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 {\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 {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","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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"}
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { BookingCalendarNowSectionClasses } from './classes';
3
+ import { Moment } from 'moment';
4
+ export interface BookingCalendarNowSectionProps extends BookingCalendarNowSectionClasses {
5
+ dataRowsCount: number;
6
+ width: number;
7
+ from: Moment;
8
+ till: Moment;
9
+ alwaysShowSections?: boolean;
10
+ }
11
+ export declare function BookingCalendarNowSection(props: BookingCalendarNowSectionProps): React.JSX.Element;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BookingCalendarNowSection = BookingCalendarNowSection;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _classes = require("./classes");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _moment = _interopRequireDefault(require("moment"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ 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); }
13
+ 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; }
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
+ function BookingCalendarNowSection(props) {
20
+ const {
21
+ className,
22
+ areaAfter,
23
+ areaBefore,
24
+ now,
25
+ dataRowsCount,
26
+ width,
27
+ from,
28
+ till,
29
+ alwaysShowSections
30
+ } = props;
31
+ const style = React.useMemo(() => _objectSpread({
32
+ gridRowEnd: `span ${dataRowsCount}`
33
+ }, width ? {
34
+ width: `${width}px`
35
+ } : {}), [dataRowsCount, width]);
36
+ const widthMs = till.valueOf() - from.valueOf();
37
+ const startMs = from.valueOf();
38
+ const endMs = till.valueOf();
39
+ const onePxMs = Math.max(widthMs / (width || 1), 5000);
40
+ const [nowMs, setNowMs] = React.useState((0, _moment.default)().valueOf());
41
+ const renderBefore = nowMs > startMs;
42
+ const renderAfter = nowMs < endMs;
43
+ React.useEffect(() => {
44
+ if (renderBefore && renderAfter) {
45
+ const interval = setInterval(() => {
46
+ setNowMs((0, _moment.default)().valueOf());
47
+ }, onePxMs);
48
+ return () => clearInterval(interval);
49
+ }
50
+ }, [onePxMs, renderBefore, renderAfter]);
51
+ return /*#__PURE__*/React.createElement("div", {
52
+ className: (0, _classnames.default)(className, _classes.bookingCalendarNowSectionDefaultClasses.className),
53
+ style: style
54
+ }, renderBefore && (alwaysShowSections || renderAfter) && /*#__PURE__*/React.createElement("div", {
55
+ className: (0, _classnames.default)(areaBefore, _classes.bookingCalendarNowSectionDefaultClasses.areaBefore),
56
+ style: {
57
+ width: `${(nowMs - startMs) / widthMs * 100}%`
58
+ }
59
+ }), renderBefore && renderAfter && /*#__PURE__*/React.createElement("div", {
60
+ className: (0, _classnames.default)(now, _classes.bookingCalendarNowSectionDefaultClasses.now)
61
+ }), renderAfter && (alwaysShowSections || renderBefore) && /*#__PURE__*/React.createElement("div", {
62
+ className: (0, _classnames.default)(areaAfter, _classes.bookingCalendarNowSectionDefaultClasses.areaAfter),
63
+ style: {
64
+ width: `${(endMs - nowMs) / widthMs * 100}%`
65
+ }
66
+ }));
67
+ }
68
+ //# sourceMappingURL=BookingCalendarNowSection.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,7 @@
1
+ export interface BookingCalendarNowSectionClasses {
2
+ className?: string;
3
+ areaBefore?: string;
4
+ areaAfter?: string;
5
+ now?: string;
6
+ }
7
+ export declare const bookingCalendarNowSectionDefaultClasses: BookingCalendarNowSectionClasses;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bookingCalendarNowSectionDefaultClasses = void 0;
7
+ const bookingCalendarNowSectionDefaultClasses = {
8
+ className: 'bookingCalendar__nowSection',
9
+ areaBefore: 'bookingCalendar__nowSection__before',
10
+ areaAfter: 'bookingCalendar__nowSection__after',
11
+ now: 'bookingCalendar__nowSection__now'
12
+ };
13
+ exports.bookingCalendarNowSectionDefaultClasses = bookingCalendarNowSectionDefaultClasses;
14
+ //# sourceMappingURL=classes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.js","names":["bookingCalendarNowSectionDefaultClasses","className","areaBefore","areaAfter","now","exports"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarNowSection/classes.ts"],"sourcesContent":["export interface BookingCalendarNowSectionClasses {\n className?: string;\n areaBefore?: string;\n areaAfter?: string;\n now?: string;\n}\n\nexport const bookingCalendarNowSectionDefaultClasses: BookingCalendarNowSectionClasses =\n {\n className: 'bookingCalendar__nowSection',\n areaBefore: 'bookingCalendar__nowSection__before',\n areaAfter: 'bookingCalendar__nowSection__after',\n now: 'bookingCalendar__nowSection__now',\n };\n"],"mappings":";;;;;;AAOO,MAAMA,uCAAyE,GACpF;EACEC,SAAS,EAAE,6BAA6B;EACxCC,UAAU,EAAE,qCAAqC;EACjDC,SAAS,EAAE,oCAAoC;EAC/CC,GAAG,EAAE;AACP,CAAC;AAACC,OAAA,CAAAL,uCAAA,GAAAA,uCAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './BookingCalendarNowSection';
2
+ export * from './classes';
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _BookingCalendarNowSection = require("./BookingCalendarNowSection");
7
+ Object.keys(_BookingCalendarNowSection).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _BookingCalendarNowSection[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _BookingCalendarNowSection[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":["_BookingCalendarNowSection","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_classes"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarNowSection/index.ts"],"sourcesContent":["export * from './BookingCalendarNowSection';\nexport * from './classes';\n"],"mappings":";;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,0BAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,0BAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,0BAAA,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"}
@@ -2737,5 +2737,23 @@ a.guestbell__dropdown-toggle {
2737
2737
  animation-name: fadeOut;
2738
2738
  animation-fill-mode: forwards; }
2739
2739
 
2740
+ .bookingCalendar__nowSection {
2741
+ position: absolute;
2742
+ left: 0;
2743
+ right: 0;
2744
+ height: 100%;
2745
+ pointer-events: none;
2746
+ grid-column: 2;
2747
+ grid-row-start: 2;
2748
+ display: flex; }
2749
+
2750
+ .bookingCalendar__nowSection__now {
2751
+ width: 1px;
2752
+ background-color: rgba(0, 0, 0, 0.35);
2753
+ background-image: repeating-linear-gradient(45deg, white, white 5px, transparent 5px, transparent 10px); }
2754
+
2755
+ .bookingCalendar__nowSection__before {
2756
+ background-color: rgba(0, 0, 0, 0.075); }
2757
+
2740
2758
 
2741
2759
  /*# sourceMappingURL=guestbell-forms.css.map*/