guestbell-forms 3.0.48 → 3.0.50
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/bookingCalendarControls/BookingCalendarControls.js +21 -2
- package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map +1 -1
- package/build/dist/report.html +1 -1
- package/package.json +1 -1
- package/src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx +29 -8
@@ -80,6 +80,17 @@ DateRangeIcon.defaultProps = {
|
|
80
80
|
height: "24",
|
81
81
|
viewBox: "0 0 24 24"
|
82
82
|
};
|
83
|
+
var TodayIcon = function TodayIcon(props) {
|
84
|
+
return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
|
85
|
+
d: "M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"
|
86
|
+
}));
|
87
|
+
};
|
88
|
+
TodayIcon.defaultProps = {
|
89
|
+
xmlns: "http://www.w3.org/2000/svg",
|
90
|
+
width: "24",
|
91
|
+
height: "24",
|
92
|
+
viewBox: "0 0 24 24"
|
93
|
+
};
|
83
94
|
function BookingCalendarControls(props) {
|
84
95
|
const {
|
85
96
|
className,
|
@@ -102,6 +113,7 @@ function BookingCalendarControls(props) {
|
|
102
113
|
if (!step || !from || !till) {
|
103
114
|
return null;
|
104
115
|
}
|
116
|
+
const selectedLevel = React.useMemo(() => zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.find(level => till.valueOf() - from.valueOf() === level.step.asMilliseconds()), [zoomLevels, till, from]);
|
105
117
|
const onStepFactory = React.useCallback(_step => () => onRangeChange({
|
106
118
|
from: from.clone().add(_step),
|
107
119
|
till: till.clone().add(_step)
|
@@ -110,6 +122,11 @@ function BookingCalendarControls(props) {
|
|
110
122
|
const onSmallStepLeftClick = React.useCallback(onStepFactory(_moment.default.duration(-1, 'day')), [onStepFactory, step]);
|
111
123
|
const onBigStepRightClick = React.useCallback(onStepFactory(_moment.default.duration(7, 'days')), [onStepFactory, till, from]);
|
112
124
|
const onSmallStepRightClick = React.useCallback(onStepFactory(_moment.default.duration(1, 'day')), [onStepFactory, step]);
|
125
|
+
const onTodayClick = React.useCallback(() => onRangeChange({
|
126
|
+
from: (0, _moment.default)().startOf('day'),
|
127
|
+
till: (0, _moment.default)().startOf('day').add((selectedLevel === null || selectedLevel === void 0 ? void 0 : selectedLevel.step) ?? step)
|
128
|
+
}), [onRangeChange, step]);
|
129
|
+
const isTodayVisible = React.useMemo(() => from.isBefore((0, _moment.default)()) && till.isAfter((0, _moment.default)()), [from, till]);
|
113
130
|
const filteredItems = React.useMemo(() => items === null || items === void 0 ? void 0 : items.filter(filterBookingsToZoom), [filterBookingsToZoom, items]);
|
114
131
|
const onZoomBookingsClick = React.useCallback(() => {
|
115
132
|
const minFromMs = Math.min(...(filteredItems === null || filteredItems === void 0 ? void 0 : filteredItems.filter(filterBookingsToZoom).map(a => a.from.valueOf()))) ?? (from === null || from === void 0 ? void 0 : from.valueOf());
|
@@ -129,7 +146,6 @@ function BookingCalendarControls(props) {
|
|
129
146
|
const handleClose = () => {
|
130
147
|
setAnchorEl(null);
|
131
148
|
};
|
132
|
-
const selectedLevel = React.useMemo(() => zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.find(level => till.valueOf() - from.valueOf() === level.step.asMilliseconds()), [zoomLevels, till, from]);
|
133
149
|
return /*#__PURE__*/React.createElement("div", {
|
134
150
|
className: (0, _classnames.default)(_classes.bookingCalendarControlsDefaultClasses.className, className)
|
135
151
|
}, bookingCalendarDatePicker && /*#__PURE__*/React.createElement("div", {
|
@@ -171,7 +187,10 @@ function BookingCalendarControls(props) {
|
|
171
187
|
}, /*#__PURE__*/React.createElement(LeftArrowLongIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
172
188
|
noShadow: true,
|
173
189
|
onClick: onSmallStepLeftClick
|
174
|
-
}, /*#__PURE__*/React.createElement(LeftArrowIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
190
|
+
}, /*#__PURE__*/React.createElement(LeftArrowIcon, null)), !isTodayVisible && /*#__PURE__*/React.createElement(_Button.Button, {
|
191
|
+
noShadow: true,
|
192
|
+
onClick: onTodayClick
|
193
|
+
}, /*#__PURE__*/React.createElement(TodayIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
175
194
|
noShadow: true,
|
176
195
|
onClick: onSmallStepRightClick
|
177
196
|
}, /*#__PURE__*/React.createElement(RightArrowIcon, null)), /*#__PURE__*/React.createElement(_Button.Button, {
|
package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BookingCalendarControls.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_moment","_classes","_Button","_Menu","_MenuItem","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LeftArrowLongIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","RightArrowLongIcon","RightArrowIcon","UnfoldLessIcon","DateRangeIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevelsButtonClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","bookingCalendarDatePicker","filteringButton","showZoomAllButton","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","moment","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","filteredItems","useMemo","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","valueOf","minFrom","subtract","maxTillMs","max","maxTill","anchorEl","setAnchorEl","useState","open","Boolean","handleClick","event","currentTarget","handleClose","selectedLevel","find","level","asMilliseconds","classNames","bookingCalendarControlsDefaultClasses","length","Button","id","undefined","onClick","noShadow","label","onClose","MenuListProps","index","startOf","selected","disabled"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n ZoomLevel,\r\n} from '../common';\r\nimport moment, { Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from './classes';\r\nimport { Button } from '../../button/Button';\r\nimport * as LeftArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg';\r\nimport * as RightArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_forward_24px.svg';\r\nimport * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';\r\nimport * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';\r\nimport * as DateRangeIcon from 'material-design-icons/action/svg/production/ic_date_range_24px.svg';\r\n\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\n\r\nexport interface BookingCalendarControlsProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarControlsClasses {\r\n items: T[];\r\n step: Duration;\r\n from: Moment;\r\n till: Moment;\r\n zoomLevels?: ZoomLevel[];\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n bookingCalendarDatePicker?: React.ReactNode;\r\n filteringButton?: React.ReactNode;\r\n showZoomAllButton?: boolean;\r\n}\r\n\r\nexport function BookingCalendarControls<T extends BookingCalendarItemT>(\r\n props: BookingCalendarControlsProps<T>\r\n) {\r\n const {\r\n className,\r\n monthLabelClassName,\r\n buttonsContainerClassName,\r\n zoomBookingsButtonClassName,\r\n zoomLevelsContainerClassName,\r\n zoomLevelsButtonClassName,\r\n zoomLevels,\r\n step,\r\n from,\r\n till,\r\n onRangeChange,\r\n items,\r\n filterBookingsToZoom = () => true,\r\n bookingCalendarDatePicker,\r\n filteringButton,\r\n showZoomAllButton,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const onStepFactory = React.useCallback(\r\n (_step: Duration) => () =>\r\n onRangeChange({\r\n from: from.clone().add(_step),\r\n till: till.clone().add(_step),\r\n }),\r\n [from, till, onRangeChange]\r\n );\r\n const onBigStepLeftClick = React.useCallback(\r\n onStepFactory(moment.duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(moment.duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const filteredItems = React.useMemo(\r\n () => items?.filter(filterBookingsToZoom),\r\n [filterBookingsToZoom, items]\r\n );\r\n const onZoomBookingsClick = React.useCallback(() => {\r\n const minFromMs =\r\n Math.min(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map((a) => a.from.valueOf())\r\n ) ?? from?.valueOf();\r\n const minFrom = from.clone().subtract(from.valueOf() - minFromMs, 'ms');\r\n const maxTillMs =\r\n Math.max(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map((a) => a.till.valueOf())\r\n ) ?? till?.valueOf();\r\n const maxTill = till.clone().subtract(till.valueOf() - maxTillMs, 'ms');\r\n onRangeChange({\r\n from: minFrom,\r\n till: maxTill,\r\n });\r\n }, [from, till, filteredItems]);\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const selectedLevel = React.useMemo(\r\n () =>\r\n zoomLevels?.find(\r\n (level) =>\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ),\r\n [zoomLevels, till, from]\r\n );\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n {bookingCalendarDatePicker && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.monthLabelClassName,\r\n monthLabelClassName\r\n )}\r\n >\r\n {bookingCalendarDatePicker}\r\n </div>\r\n )}\r\n {zoomLevels?.length > 0 && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName,\r\n zoomLevelsContainerClassName\r\n )}\r\n >\r\n <Button\r\n id=\"zoom-level-button\"\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsButtonClassName,\r\n zoomLevelsButtonClassName\r\n )}\r\n aria-controls={open ? 'zoom-level-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n noShadow={true}\r\n >\r\n <DateRangeIcon />\r\n {selectedLevel ? ` ${selectedLevel.label}` : ''}\r\n </Button>\r\n <Menu\r\n id=\"zoom-level-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n MenuListProps={{\r\n 'aria-labelledby': 'zoom-level-button',\r\n }}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <MenuItem\r\n data-level={index}\r\n key={index}\r\n onClick={() => {\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from.clone().startOf('day').add(level.step),\r\n });\r\n setAnchorEl(null);\r\n }}\r\n selected={\r\n till.valueOf() - from.valueOf() ===\r\n level.step.asMilliseconds()\r\n }\r\n >\r\n {level.label}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n {/*zoomLevels.map((level, index) => (\r\n <Button\r\n type={\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ? 'primary'\r\n : undefined\r\n }\r\n // blank={true}\r\n noShadow={true}\r\n key={index}\r\n onClick={() =>\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from.clone().startOf('day').add(level.step),\r\n })\r\n }\r\n >\r\n {level.label}\r\n </Button>\r\n ))*/}\r\n </div>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.buttonsContainerClassName,\r\n buttonsContainerClassName\r\n )}\r\n >\r\n <Button noShadow={true} onClick={onBigStepLeftClick}>\r\n <LeftArrowLongIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepLeftClick}>\r\n <LeftArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepRightClick}>\r\n <RightArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onBigStepRightClick}>\r\n <RightArrowLongIcon />\r\n </Button>\r\n {showZoomAllButton && (\r\n <Button\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomBookingsButtonClassName,\r\n zoomBookingsButtonClassName\r\n )}\r\n noShadow={true}\r\n disabled={!filteredItems?.length}\r\n onClick={onZoomBookingsClick}\r\n >\r\n <UnfoldLessIcon />\r\n </Button>\r\n )}\r\n {filteringButton}\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"BookingCalendarControls.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_moment","_classes","_Button","_Menu","_MenuItem","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LeftArrowLongIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","RightArrowLongIcon","RightArrowIcon","UnfoldLessIcon","DateRangeIcon","TodayIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevelsButtonClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","bookingCalendarDatePicker","filteringButton","showZoomAllButton","selectedLevel","useMemo","find","level","valueOf","asMilliseconds","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","moment","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","onTodayClick","startOf","isTodayVisible","isBefore","isAfter","filteredItems","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","minFrom","subtract","maxTillMs","max","maxTill","anchorEl","setAnchorEl","useState","open","Boolean","handleClick","event","currentTarget","handleClose","classNames","bookingCalendarControlsDefaultClasses","length","Button","id","undefined","onClick","noShadow","label","onClose","MenuListProps","index","selected","disabled"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n ZoomLevel,\r\n} from '../common';\r\nimport moment, { Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from './classes';\r\nimport { Button } from '../../button/Button';\r\nimport * as LeftArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg';\r\nimport * as RightArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_forward_24px.svg';\r\nimport * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';\r\nimport * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';\r\nimport * as DateRangeIcon from 'material-design-icons/action/svg/production/ic_date_range_24px.svg';\r\nimport * as TodayIcon from 'material-design-icons/action/svg/production/ic_today_24px.svg';\r\n\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\n\r\nexport interface BookingCalendarControlsProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarControlsClasses {\r\n items: T[];\r\n step: Duration;\r\n from: Moment;\r\n till: Moment;\r\n zoomLevels?: ZoomLevel[];\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n bookingCalendarDatePicker?: React.ReactNode;\r\n filteringButton?: React.ReactNode;\r\n showZoomAllButton?: boolean;\r\n}\r\n\r\nexport function BookingCalendarControls<T extends BookingCalendarItemT>(\r\n props: BookingCalendarControlsProps<T>\r\n) {\r\n const {\r\n className,\r\n monthLabelClassName,\r\n buttonsContainerClassName,\r\n zoomBookingsButtonClassName,\r\n zoomLevelsContainerClassName,\r\n zoomLevelsButtonClassName,\r\n zoomLevels,\r\n step,\r\n from,\r\n till,\r\n onRangeChange,\r\n items,\r\n filterBookingsToZoom = () => true,\r\n bookingCalendarDatePicker,\r\n filteringButton,\r\n showZoomAllButton,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const selectedLevel = React.useMemo(\r\n () =>\r\n zoomLevels?.find(\r\n (level) =>\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ),\r\n [zoomLevels, till, from]\r\n );\r\n const onStepFactory = React.useCallback(\r\n (_step: Duration) => () =>\r\n onRangeChange({\r\n from: from.clone().add(_step),\r\n till: till.clone().add(_step),\r\n }),\r\n [from, till, onRangeChange]\r\n );\r\n const onBigStepLeftClick = React.useCallback(\r\n onStepFactory(moment.duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(moment.duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(moment.duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onTodayClick = React.useCallback(\r\n () =>\r\n onRangeChange({\r\n from: moment().startOf('day'),\r\n till: moment()\r\n .startOf('day')\r\n .add(selectedLevel?.step ?? step),\r\n }),\r\n [onRangeChange, step]\r\n );\r\n const isTodayVisible = React.useMemo(\r\n () => from.isBefore(moment()) && till.isAfter(moment()),\r\n [from, till]\r\n );\r\n const filteredItems = React.useMemo(\r\n () => items?.filter(filterBookingsToZoom),\r\n [filterBookingsToZoom, items]\r\n );\r\n const onZoomBookingsClick = React.useCallback(() => {\r\n const minFromMs =\r\n Math.min(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map((a) => a.from.valueOf())\r\n ) ?? from?.valueOf();\r\n const minFrom = from.clone().subtract(from.valueOf() - minFromMs, 'ms');\r\n const maxTillMs =\r\n Math.max(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map((a) => a.till.valueOf())\r\n ) ?? till?.valueOf();\r\n const maxTill = till.clone().subtract(till.valueOf() - maxTillMs, 'ms');\r\n onRangeChange({\r\n from: minFrom,\r\n till: maxTill,\r\n });\r\n }, [from, till, filteredItems]);\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n {bookingCalendarDatePicker && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.monthLabelClassName,\r\n monthLabelClassName\r\n )}\r\n >\r\n {bookingCalendarDatePicker}\r\n </div>\r\n )}\r\n {zoomLevels?.length > 0 && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName,\r\n zoomLevelsContainerClassName\r\n )}\r\n >\r\n <Button\r\n id=\"zoom-level-button\"\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsButtonClassName,\r\n zoomLevelsButtonClassName\r\n )}\r\n aria-controls={open ? 'zoom-level-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n noShadow={true}\r\n >\r\n <DateRangeIcon />\r\n {selectedLevel ? ` ${selectedLevel.label}` : ''}\r\n </Button>\r\n <Menu\r\n id=\"zoom-level-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n MenuListProps={{\r\n 'aria-labelledby': 'zoom-level-button',\r\n }}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <MenuItem\r\n data-level={index}\r\n key={index}\r\n onClick={() => {\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from.clone().startOf('day').add(level.step),\r\n });\r\n setAnchorEl(null);\r\n }}\r\n selected={\r\n till.valueOf() - from.valueOf() ===\r\n level.step.asMilliseconds()\r\n }\r\n >\r\n {level.label}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n {/*zoomLevels.map((level, index) => (\r\n <Button\r\n type={\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ? 'primary'\r\n : undefined\r\n }\r\n // blank={true}\r\n noShadow={true}\r\n key={index}\r\n onClick={() =>\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from.clone().startOf('day').add(level.step),\r\n })\r\n }\r\n >\r\n {level.label}\r\n </Button>\r\n ))*/}\r\n </div>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.buttonsContainerClassName,\r\n buttonsContainerClassName\r\n )}\r\n >\r\n <Button noShadow={true} onClick={onBigStepLeftClick}>\r\n <LeftArrowLongIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepLeftClick}>\r\n <LeftArrowIcon />\r\n </Button>\r\n {!isTodayVisible && (\r\n <Button noShadow={true} onClick={onTodayClick}>\r\n <TodayIcon />\r\n </Button>\r\n )}\r\n <Button noShadow={true} onClick={onSmallStepRightClick}>\r\n <RightArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onBigStepRightClick}>\r\n <RightArrowLongIcon />\r\n </Button>\r\n {showZoomAllButton && (\r\n <Button\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomBookingsButtonClassName,\r\n zoomBookingsButtonClassName\r\n )}\r\n noShadow={true}\r\n disabled={!filteredItems?.length}\r\n onClick={onZoomBookingsClick}\r\n >\r\n <UnfoldLessIcon />\r\n </Button>\r\n )}\r\n {filteringButton}\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|
package/build/dist/report.html
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="UTF-8"/>
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
6
|
-
<title>guestbell-forms [5 Jun 2023 at
|
6
|
+
<title>guestbell-forms [5 Jun 2023 at 18:16]</title>
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
8
8
|
|
9
9
|
<script>
|
package/package.json
CHANGED
package/src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx
CHANGED
@@ -15,6 +15,7 @@ import * as RightArrowLongIcon from 'material-design-icons/navigation/svg/produc
|
|
15
15
|
import * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';
|
16
16
|
import * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';
|
17
17
|
import * as DateRangeIcon from 'material-design-icons/action/svg/production/ic_date_range_24px.svg';
|
18
|
+
import * as TodayIcon from 'material-design-icons/action/svg/production/ic_today_24px.svg';
|
18
19
|
|
19
20
|
import Menu from '@mui/material/Menu';
|
20
21
|
import MenuItem from '@mui/material/MenuItem';
|
@@ -57,6 +58,14 @@ export function BookingCalendarControls<T extends BookingCalendarItemT>(
|
|
57
58
|
if (!step || !from || !till) {
|
58
59
|
return null;
|
59
60
|
}
|
61
|
+
const selectedLevel = React.useMemo(
|
62
|
+
() =>
|
63
|
+
zoomLevels?.find(
|
64
|
+
(level) =>
|
65
|
+
till.valueOf() - from.valueOf() === level.step.asMilliseconds()
|
66
|
+
),
|
67
|
+
[zoomLevels, till, from]
|
68
|
+
);
|
60
69
|
const onStepFactory = React.useCallback(
|
61
70
|
(_step: Duration) => () =>
|
62
71
|
onRangeChange({
|
@@ -81,6 +90,20 @@ export function BookingCalendarControls<T extends BookingCalendarItemT>(
|
|
81
90
|
onStepFactory(moment.duration(1, 'day')),
|
82
91
|
[onStepFactory, step]
|
83
92
|
);
|
93
|
+
const onTodayClick = React.useCallback(
|
94
|
+
() =>
|
95
|
+
onRangeChange({
|
96
|
+
from: moment().startOf('day'),
|
97
|
+
till: moment()
|
98
|
+
.startOf('day')
|
99
|
+
.add(selectedLevel?.step ?? step),
|
100
|
+
}),
|
101
|
+
[onRangeChange, step]
|
102
|
+
);
|
103
|
+
const isTodayVisible = React.useMemo(
|
104
|
+
() => from.isBefore(moment()) && till.isAfter(moment()),
|
105
|
+
[from, till]
|
106
|
+
);
|
84
107
|
const filteredItems = React.useMemo(
|
85
108
|
() => items?.filter(filterBookingsToZoom),
|
86
109
|
[filterBookingsToZoom, items]
|
@@ -113,14 +136,7 @@ export function BookingCalendarControls<T extends BookingCalendarItemT>(
|
|
113
136
|
const handleClose = () => {
|
114
137
|
setAnchorEl(null);
|
115
138
|
};
|
116
|
-
|
117
|
-
() =>
|
118
|
-
zoomLevels?.find(
|
119
|
-
(level) =>
|
120
|
-
till.valueOf() - from.valueOf() === level.step.asMilliseconds()
|
121
|
-
),
|
122
|
-
[zoomLevels, till, from]
|
123
|
-
);
|
139
|
+
|
124
140
|
return (
|
125
141
|
<div
|
126
142
|
className={classNames(
|
@@ -223,6 +239,11 @@ export function BookingCalendarControls<T extends BookingCalendarItemT>(
|
|
223
239
|
<Button noShadow={true} onClick={onSmallStepLeftClick}>
|
224
240
|
<LeftArrowIcon />
|
225
241
|
</Button>
|
242
|
+
{!isTodayVisible && (
|
243
|
+
<Button noShadow={true} onClick={onTodayClick}>
|
244
|
+
<TodayIcon />
|
245
|
+
</Button>
|
246
|
+
)}
|
226
247
|
<Button noShadow={true} onClick={onSmallStepRightClick}>
|
227
248
|
<RightArrowIcon />
|
228
249
|
</Button>
|