makula-schedule 1.0.1 → 1.0.3
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/dist/0.bundle.js +2 -0
- package/dist/0.bundle.js.map +1 -0
- package/dist/15.bundle.js +3 -0
- package/dist/15.bundle.js.LICENSE.txt +1 -0
- package/dist/15.bundle.js.map +1 -0
- package/dist/216.bundle.js +2 -0
- package/dist/216.bundle.js.map +1 -0
- package/dist/430.bundle.js +3 -0
- package/dist/430.bundle.js.LICENSE.txt +3 -0
- package/dist/430.bundle.js.map +1 -0
- package/dist/440.bundle.js +2 -0
- package/dist/440.bundle.js.map +1 -0
- package/dist/453.bundle.js +2 -0
- package/dist/453.bundle.js.map +1 -0
- package/dist/549.bundle.js +2 -0
- package/dist/549.bundle.js.map +1 -0
- package/dist/675.bundle.js +2 -0
- package/dist/675.bundle.js.map +1 -0
- package/dist/854.bundle.js +2 -0
- package/dist/854.bundle.js.map +1 -0
- package/dist/884.bundle.js +2 -0
- package/dist/884.bundle.js.map +1 -0
- package/dist/886.bundle.js +2 -0
- package/dist/886.bundle.js.map +1 -0
- package/dist/assets/logo.png +0 -0
- package/dist/banner.png +0 -0
- package/dist/bundle.js +3 -0
- package/dist/bundle.js.LICENSE.txt +100 -0
- package/dist/bundle.js.map +1 -0
- package/dist/index.html +13 -0
- package/package.json +7 -5
- package/dist/components/AddMore.js +0 -50
- package/dist/components/AddMorePopover.js +0 -117
- package/dist/components/AgendaEventItem.js +0 -94
- package/dist/components/AgendaResourceEvents.js +0 -102
- package/dist/components/AgendaView.js +0 -69
- package/dist/components/BodyView.js +0 -59
- package/dist/components/DnDContext.js +0 -171
- package/dist/components/DnDSource.js +0 -125
- package/dist/components/EventItem.js +0 -770
- package/dist/components/EventItemPopover.js +0 -153
- package/dist/components/HeaderView.js +0 -176
- package/dist/components/ResourceEvents.js +0 -480
- package/dist/components/ResourceView.js +0 -125
- package/dist/components/SchedulerData.js +0 -1281
- package/dist/components/SchedulerHeader.js +0 -188
- package/dist/components/SelectedArea.js +0 -32
- package/dist/components/Summary.js +0 -61
- package/dist/components/WrapperFun.js +0 -23
- package/dist/components/index.js +0 -674
- package/dist/config/default.js +0 -36
- package/dist/config/scheduler.js +0 -109
- package/dist/css/style.css +0 -256
- package/dist/helper/behaviors.js +0 -94
- package/dist/helper/utility.js +0 -20
- package/dist/index.d.ts +0 -440
- package/dist/index.js +0 -78
- package/dist/sample-data/sample1.js +0 -337
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"15.bundle.js","mappings":"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","sources":["webpack://makula-schedule/./src/config/default.js","webpack://makula-schedule/./src/sample-data/sample1.js","webpack://makula-schedule/./src/components/DnDSource.js","webpack://makula-schedule/./src/components/EventItemPopover.jsx","webpack://makula-schedule/./src/components/EventItem.jsx","webpack://makula-schedule/./src/components/AddMorePopover.jsx","webpack://makula-schedule/./src/components/AgendaEventItem.jsx","webpack://makula-schedule/./src/components/AgendaResourceEvents.jsx","webpack://makula-schedule/./src/components/AgendaView.jsx","webpack://makula-schedule/./src/components/BodyView.jsx","webpack://makula-schedule/./src/helper/utility.js","webpack://makula-schedule/./src/components/DnDContext.js","webpack://makula-schedule/./src/components/HeaderView.jsx","webpack://makula-schedule/./src/components/AddMore.jsx","webpack://makula-schedule/./src/components/SelectedArea.jsx","webpack://makula-schedule/./src/components/Summary.jsx","webpack://makula-schedule/./src/components/ResourceEvents.jsx","webpack://makula-schedule/./src/components/ResourceView.jsx","webpack://makula-schedule/./src/config/scheduler.js","webpack://makula-schedule/./src/helper/behaviors.js","webpack://makula-schedule/./src/components/SchedulerData.js","webpack://makula-schedule/./src/components/SchedulerHeader.jsx","webpack://makula-schedule/./src/components/WrapperFun.jsx","webpack://makula-schedule/./src/components/index.jsx","webpack://makula-schedule/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://makula-schedule/./src/examples/components/SourceCode.jsx","webpack://makula-schedule/./src/examples/constants/index.js"],"sourcesContent":["export const DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';\n\nexport const ViewType = { Day: 0, Week: 1, Month: 2, Quarter: 3, Year: 4, Custom: 5, Custom1: 6, Custom2: 7 };\n\nexport const CellUnit = { Day: 0, Hour: 1, Week: 2, Month: 3, Year: 4 };\n\nexport const SummaryPos = { Top: 0, TopRight: 1, TopLeft: 2, Bottom: 3, BottomRight: 4, BottomLeft: 5 };\n\nexport const DnDTypes = { EVENT: 'event' };\n","const DemoData = {\n resources: [\n { id: 'r0', name: 'Resource0', title: 'Resource 0', groupOnly: true },\n { id: 'r1', name: 'Resource1', title: 'Resource 1', parentId: 'r0' },\n { id: 'r2', name: 'Resource2', parentId: 'r3' },\n { id: 'r3', name: 'Resource3', parentId: 'r1' },\n { id: 'r4', name: 'Resource4' },\n { id: 'r5', name: 'Resource5' },\n { id: 'r6', name: 'Resource6' },\n { id: 'r7', name: 'Resource7' },\n ],\n events: [\n {\n id: 1,\n start: '2022-12-18 09:30:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r1',\n title: 'I am finished',\n bgColor: '#D9D9D9',\n showPopover: false,\n },\n {\n id: 2,\n start: '2022-12-18 12:30:00',\n end: '2022-12-26 23:30:00',\n resourceId: 'r2',\n title: 'I am not resizable',\n resizable: false,\n },\n {\n id: 3,\n start: '2022-12-19 12:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r3',\n title: 'I am not movable',\n movable: false,\n },\n {\n id: 4,\n start: '2022-12-19 14:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r4',\n title: 'I am not start-resizable',\n startResizable: false,\n },\n {\n id: 5,\n start: '2022-12-19 15:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r5',\n title: 'I am not end-resizable',\n endResizable: false,\n },\n {\n id: 6,\n start: '2022-12-19 15:35:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r6',\n title: 'I am normal',\n },\n {\n id: 7,\n start: '2022-12-19 15:40:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r7',\n title: 'I am exceptional',\n bgColor: '#FA9E95',\n },\n {\n id: 8,\n start: '2022-12-19 15:50:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r1',\n title: 'I am locked',\n movable: false,\n resizable: false,\n bgColor: 'red',\n },\n {\n id: 9,\n start: '2022-12-19 16:30:00',\n end: '2022-12-27 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 1',\n },\n {\n id: 10,\n start: '2022-12-19 17:30:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r1',\n title: 'R1 has recurring tasks every week on Tuesday, Friday',\n rrule: 'FREQ=WEEKLY;DTSTART=20221219T013000Z;BYDAY=TU,FR',\n bgColor: '#f759ab',\n },\n {\n id: 11,\n start: '2022-12-19 18:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 3',\n },\n {\n id: 12,\n start: '2022-12-20 18:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 4',\n },\n {\n id: 13,\n start: '2022-12-21 18:30:00',\n end: '2022-12-24 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 5',\n },\n {\n id: 14,\n start: '2022-12-23 18:30:00',\n end: '2022-12-27 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 6',\n },\n ],\n eventsForTaskView: [\n {\n id: 1,\n start: '2022-12-18 09:30:00',\n end: '2022-12-18 23:30:00',\n resourceId: 'r1',\n title: 'I am finished',\n bgColor: '#D9D9D9',\n groupId: 1,\n groupName: 'Task1',\n },\n {\n id: 2,\n start: '2022-12-18 12:30:00',\n end: '2022-12-26 23:30:00',\n resourceId: 'r2',\n title: 'I am not resizable',\n resizable: false,\n groupId: 2,\n groupName: 'Task2',\n },\n {\n id: 3,\n start: '2022-12-19 12:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r3',\n title: 'I am not movable',\n movable: false,\n groupId: 3,\n groupName: 'Task3',\n },\n {\n id: 7,\n start: '2022-12-19 15:40:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r7',\n title: 'I am exceptional',\n bgColor: '#FA9E95',\n groupId: 4,\n groupName: 'Task4',\n },\n {\n id: 4,\n start: '2022-12-20 14:30:00',\n end: '2022-12-21 23:30:00',\n resourceId: 'r4',\n title: 'I am not start-resizable',\n startResizable: false,\n groupId: 1,\n groupName: 'Task1',\n },\n {\n id: 5,\n start: '2022-12-21 15:30:00',\n end: '2022-12-22 23:30:00',\n resourceId: 'r5',\n title: 'I am not end-resizable',\n endResizable: false,\n groupId: 3,\n groupName: 'Task3',\n },\n {\n id: 9,\n start: '2022-12-21 16:30:00',\n end: '2022-12-21 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks',\n groupId: 4,\n groupName: 'Task4',\n },\n {\n id: 6,\n start: '2022-12-22 15:35:00',\n end: '2022-12-23 23:30:00',\n resourceId: 'r6',\n title: 'I am normal',\n groupId: 1,\n groupName: 'Task1',\n },\n {\n id: 8,\n start: '2022-12-25 15:50:00',\n end: '2022-12-26 23:30:00',\n resourceId: 'r1',\n title: 'I am locked',\n movable: false,\n resizable: false,\n bgColor: 'red',\n groupId: 1,\n groupName: 'Task1',\n },\n {\n id: 10,\n start: '2022-12-26 18:30:00',\n end: '2022-12-26 23:30:00',\n resourceId: 'r2',\n title: 'R2 has many tasks',\n groupId: 4,\n groupName: 'Task4',\n },\n {\n id: 11,\n start: '2022-12-27 18:30:00',\n end: '2022-12-27 23:30:00',\n resourceId: 'r4',\n title: 'R4 has many tasks',\n groupId: 4,\n groupName: 'Task4',\n },\n {\n id: 12,\n start: '2022-12-28 18:30:00',\n end: '2022-12-28 23:30:00',\n resourceId: 'r6',\n title: 'R6 has many tasks',\n groupId: 3,\n groupName: 'Task3',\n },\n ],\n eventsForCustomEventStyle: [\n {\n id: 1,\n start: '2022-12-18 09:30:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r1',\n title: 'I am finished',\n bgColor: '#D9D9D9',\n type: 1,\n },\n {\n id: 2,\n start: '2022-12-18 12:30:00',\n end: '2022-12-26 23:30:00',\n resourceId: 'r2',\n title: 'I am not resizable',\n resizable: false,\n type: 2,\n },\n {\n id: 3,\n start: '2022-12-19 12:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r3',\n title: 'I am not movable',\n movable: false,\n type: 3,\n },\n {\n id: 4,\n start: '2022-12-19 14:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r4',\n title: 'I am not start-resizable',\n startResizable: false,\n type: 1,\n },\n {\n id: 5,\n start: '2022-12-19 15:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r5',\n title: 'I am not end-resizable',\n endResizable: false,\n type: 2,\n },\n {\n id: 6,\n start: '2022-12-19 15:35:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r6',\n title: 'I am normal',\n type: 3,\n },\n {\n id: 7,\n start: '2022-12-19 15:40:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r7',\n title: 'I am exceptional',\n bgColor: '#FA9E95',\n type: 1,\n },\n {\n id: 8,\n start: '2022-12-19 15:50:00',\n end: '2022-12-19 23:30:00',\n resourceId: 'r1',\n title: 'I am locked',\n movable: false,\n resizable: false,\n bgColor: 'red',\n type: 2,\n },\n {\n id: 9,\n start: '2022-12-19 16:30:00',\n end: '2022-12-27 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 1',\n type: 3,\n },\n {\n id: 10,\n start: '2022-12-20 18:30:00',\n end: '2022-12-20 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 2',\n type: 1,\n },\n {\n id: 11,\n start: '2022-12-21 18:30:00',\n end: '2022-12-22 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 3',\n type: 2,\n },\n {\n id: 12,\n start: '2022-12-23 18:30:00',\n end: '2022-12-27 23:30:00',\n resourceId: 'r1',\n title: 'R1 has many tasks 4',\n type: 3,\n },\n ],\n};\n\nexport default DemoData;\n","import { DnDTypes, ViewType, DATETIME_FORMAT } from '../config/default';\n\nexport default class DnDSource {\n constructor(resolveDragObjFunc, DnDEnabled, dndType = DnDTypes.EVENT) {\n this.resolveDragObjFunc = resolveDragObjFunc;\n this.dndType = dndType;\n this.DnDEnabled = DnDEnabled;\n }\n\n getDragSpec = () => ({\n // beginDrag: (props, monitor, component) => this.resolveDragObjFunc(props),\n beginDrag: props => this.resolveDragObjFunc(props),\n // endDrag: (props, monitor, component) => {\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) return;\n\n const { moveEvent, newEvent, schedulerData } = props;\n const { events, config, viewType, localeDayjs } = schedulerData;\n const item = monitor.getItem();\n const type = monitor.getItemType();\n const dropResult = monitor.getDropResult();\n let { slotId } = dropResult;\n let { slotName } = dropResult;\n let newStart = dropResult.start;\n let newEnd = dropResult.end;\n const { initialStart } = dropResult;\n // const { initialEnd } = dropResult;\n let action = 'New';\n\n const isEvent = type === DnDTypes.EVENT;\n if (isEvent) {\n const event = item;\n if (config.relativeMove) {\n newStart = localeDayjs(event.start)\n .add(localeDayjs(newStart).diff(localeDayjs(new Date(initialStart))), 'ms')\n .format(DATETIME_FORMAT);\n } else if (viewType !== ViewType.Day) {\n const tmpDayjs = localeDayjs(newStart);\n newStart = localeDayjs(event.start)\n .year(tmpDayjs.year())\n .month(tmpDayjs.month())\n .date(tmpDayjs.date())\n .format(DATETIME_FORMAT);\n }\n newEnd = localeDayjs(newStart)\n .add(localeDayjs(event.end).diff(localeDayjs(event.start)), 'ms')\n .format(DATETIME_FORMAT);\n\n // if crossResourceMove disabled, slot returns old value\n if (config.crossResourceMove === false) {\n slotId = schedulerData._getEventSlotId(item);\n slotName = undefined;\n const slot = schedulerData.getSlotById(slotId);\n if (slot) slotName = slot.name;\n }\n\n action = 'Move';\n }\n\n let hasConflict = false;\n if (config.checkConflict) {\n const start = localeDayjs(newStart);\n const end = localeDayjs(newEnd);\n\n events.forEach(e => {\n if (schedulerData._getEventSlotId(e) === slotId && (!isEvent || e.id !== item.id)) {\n const eStart = localeDayjs(e.start);\n const eEnd = localeDayjs(e.end);\n if (\n (start >= eStart && start < eEnd) ||\n (end > eStart && end <= eEnd) ||\n (eStart >= start && eStart < end) ||\n (eEnd > start && eEnd <= end)\n )\n hasConflict = true;\n }\n });\n }\n\n if (hasConflict) {\n const { conflictOccurred } = props;\n if (conflictOccurred !== undefined) {\n conflictOccurred(schedulerData, action, item, type, slotId, slotName, newStart, newEnd);\n } else {\n console.log('Conflict occurred, set conflictOccurred func in Scheduler to handle it');\n }\n } else if (isEvent) {\n if (moveEvent !== undefined) {\n moveEvent(schedulerData, item, slotId, slotName, newStart, newEnd);\n }\n } else if (newEvent !== undefined) newEvent(schedulerData, slotId, slotName, newStart, newEnd, type, item);\n },\n\n canDrag: props => {\n const { schedulerData, resourceEvents } = props;\n const item = this.resolveDragObjFunc(props);\n if (schedulerData._isResizing()) return false;\n const { config } = schedulerData;\n return (\n config.movable &&\n (resourceEvents === undefined || !resourceEvents.groupOnly) &&\n (item.movable === undefined || item.movable !== false)\n );\n },\n });\n\n // Returns the drag specification for use with useDrag hook\n // This should be called with props from the component using the hook\n getDragOptions = props => {\n const spec = this.getDragSpec();\n return {\n type: this.dndType,\n item: () => spec.beginDrag(props),\n end: (item, monitor) => spec.endDrag(props, monitor),\n canDrag: () => spec.canDrag(props),\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n };\n };\n}\n","import { Col, Row } from 'antd';\nimport PropTypes from 'prop-types';\n\nfunction EventItemPopover({\n schedulerData,\n eventItem,\n title,\n startTime,\n endTime,\n statusColor,\n subtitleGetter,\n viewEventClick,\n viewEventText,\n viewEvent2Click,\n viewEvent2Text,\n eventItemPopoverTemplateResolver,\n}) {\n const { localeDayjs, config } = schedulerData;\n const start = localeDayjs(new Date(startTime));\n const end = localeDayjs(new Date(endTime));\n\n if (eventItemPopoverTemplateResolver) {\n return eventItemPopoverTemplateResolver(schedulerData, eventItem, title, start, end, statusColor);\n }\n\n const subtitle = subtitleGetter ? subtitleGetter(schedulerData, eventItem) : null;\n const showViewEvent = viewEventText && viewEventClick && (eventItem.clickable1 === undefined || eventItem.clickable1);\n const showViewEvent2 =\n viewEvent2Text && viewEvent2Click && (eventItem.clickable2 === undefined || eventItem.clickable2);\n\n const renderViewEvent = (text, clickHandler, marginLeft = 0) => (\n <button\n className=\"header2-text rbs-txt-btn-dis\"\n type=\"button\"\n style={{ color: '#108EE9', cursor: 'pointer', marginLeft: `${marginLeft}px` }}\n onClick={() => clickHandler(schedulerData, eventItem)}\n >\n {text}\n </button>\n );\n\n return (\n <div style={{ width: config.eventItemPopoverWidth }}>\n <Row type=\"flex\" align=\"middle\">\n {config.eventItemPopoverShowColor && (\n <Col span={2}>\n <div className=\"status-dot\" style={{ backgroundColor: statusColor }} />\n </Col>\n )}\n <Col span={22} className=\"overflow-text\">\n <span className=\"header2-text\" title={title}>\n {title}\n </span>\n </Col>\n </Row>\n {subtitle && (\n <Row type=\"flex\" align=\"middle\">\n <Col span={2}>\n <div />\n </Col>\n <Col span={22} className=\"overflow-text\">\n <span className=\"header2-text\" title={subtitle}>\n {subtitle}\n </span>\n </Col>\n </Row>\n )}\n <Row type=\"flex\" align=\"middle\">\n <Col span={2}>\n <div />\n </Col>\n <Col span={22}>\n <span className=\"header1-text\">{start.format('HH:mm')}</span>\n {config.eventItemPopoverDateFormat && (\n <span className=\"help-text\" style={{ marginLeft: '8px' }}>\n {start.format(config.eventItemPopoverDateFormat)}\n </span>\n )}\n <span className=\"header2-text\" style={{ marginLeft: '8px' }}>\n -\n </span>\n <span className=\"header1-text\" style={{ marginLeft: '8px' }}>\n {end.format('HH:mm')}\n </span>\n {config.eventItemPopoverDateFormat && (\n <span className=\"help-text\" style={{ marginLeft: '8px' }}>\n {end.format(config.eventItemPopoverDateFormat)}\n </span>\n )}\n </Col>\n </Row>\n {(showViewEvent || showViewEvent2) && (\n <Row type=\"flex\" align=\"middle\">\n <Col span={2}>\n <div />\n </Col>\n <Col span={22}>\n {showViewEvent && renderViewEvent(viewEventText, viewEventClick)}\n {showViewEvent2 && renderViewEvent(viewEvent2Text, viewEvent2Click, 16)}\n </Col>\n </Row>\n )}\n </div>\n );\n}\n\nEventItemPopover.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n eventItem: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n startTime: PropTypes.string.isRequired,\n endTime: PropTypes.string.isRequired,\n statusColor: PropTypes.string.isRequired,\n subtitleGetter: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n eventItemPopoverTemplateResolver: PropTypes.func,\n};\n\nexport default EventItemPopover;\n","import { Popover } from 'antd';\nimport { PropTypes } from 'prop-types';\nimport { Component } from 'react';\nimport { useDrag } from 'react-dnd';\nimport { CellUnit, DATETIME_FORMAT, DnDTypes } from '../config/default';\nimport EventItemPopover from './EventItemPopover';\n\nconst stopDragHelper = ({ count, cellUnit, config, dragType, eventItem, localeDayjs, value }) => {\n const whileTrue = true;\n let tCount = 0;\n let i = 0;\n let result = value;\n return new Promise(resolve => {\n if (count !== 0 && cellUnit !== CellUnit.Hour && config.displayWeekend === false) {\n while (whileTrue) {\n i = count > 0 ? i + 1 : i - 1;\n const date = localeDayjs(new Date(eventItem[dragType])).add(i, 'days');\n const dayOfWeek = date.day();\n\n if (dayOfWeek !== 0 && dayOfWeek !== 6) {\n tCount = count > 0 ? tCount + 1 : tCount - 1;\n if (tCount === count) {\n result = date.format(DATETIME_FORMAT);\n break;\n }\n }\n }\n }\n resolve(result);\n });\n};\n\nconst startResizable = ({ eventItem, isInPopover, schedulerData }) =>\n schedulerData.config.startResizable === true &&\n isInPopover === false &&\n (eventItem.resizable === undefined || eventItem.resizable !== false) &&\n (eventItem.startResizable === undefined || eventItem.startResizable !== false);\n\nconst endResizable = ({ eventItem, isInPopover, schedulerData }) =>\n schedulerData.config.endResizable === true &&\n isInPopover === false &&\n (eventItem.resizable === undefined || eventItem.resizable !== false) &&\n (eventItem.endResizable === undefined || eventItem.endResizable !== false);\n\nclass EventItem extends Component {\n constructor(props) {\n super(props);\n\n const { left, top, width } = props;\n this.state = { left, top, width, contentMousePosX: 0, eventItemLeftRect: 0, eventItemRightRect: 0 };\n this.startResizer = undefined;\n this.endResizer = undefined;\n\n this.supportTouch = false; // 'ontouchstart' in window;\n\n this.eventItemElement = null;\n this._isMounted = false;\n }\n\n componentDidMount() {\n this._isMounted = true;\n this.supportTouch = 'ontouchstart' in window;\n this.subscribeResizeEvent(this.props);\n }\n\n componentDidUpdate(prevProps) {\n const { left, top, width } = this.props;\n if (prevProps.left !== left || prevProps.top !== top || prevProps.width !== width) {\n this.setState({ left, top, width });\n }\n\n // Re-subscribe when resize-related props change\n if (\n prevProps.schedulerData !== this.props.schedulerData ||\n prevProps.eventItem !== this.props.eventItem ||\n prevProps.isInPopover !== this.props.isInPopover\n ) {\n this.subscribeResizeEvent(this.props);\n }\n }\n\n eventItemRef = ref => {\n this.eventItemElement = ref;\n // Attach drag refs if they exist\n const { dragRef, dragPreviewRef } = this.props;\n if (dragRef && ref) {\n dragRef(ref);\n }\n if (dragPreviewRef && ref) {\n dragPreviewRef(ref);\n }\n };\n\n resizerHelper = (dragType, eventType = 'addEventListener') => {\n const resizer = dragType === 'start' ? this.startResizer : this.endResizer;\n const doDrag = dragType === 'start' ? this.doStartDrag : this.doEndDrag;\n const stopDrag = dragType === 'start' ? this.stopStartDrag : this.stopEndDrag;\n const cancelDrag = dragType === 'start' ? this.cancelStartDrag : this.cancelEndDrag;\n if (this.supportTouch) {\n resizer[eventType]('touchmove', doDrag, false);\n resizer[eventType]('touchend', stopDrag, false);\n resizer[eventType]('touchcancel', cancelDrag, false);\n } else {\n document.documentElement[eventType]('mousemove', doDrag, false);\n document.documentElement[eventType]('mouseup', stopDrag, false);\n }\n };\n\n initDragHelper = (ev, dragType) => {\n const { schedulerData, eventItem } = this.props;\n const slotId = schedulerData._getEventSlotId(eventItem);\n const slot = schedulerData.getSlotById(slotId);\n if (!!slot && !!slot.groupOnly) return;\n if (schedulerData._isResizing()) return;\n\n ev.stopPropagation();\n let clientX = 0;\n if (this.supportTouch) {\n if (ev.changedTouches.length === 0) return;\n const touch = ev.changedTouches[0];\n clientX = touch.pageX;\n } else {\n if (ev.buttons !== undefined && ev.buttons !== 1) return;\n clientX = ev.clientX;\n }\n this.setState({ [dragType === 'start' ? 'startX' : 'endX']: clientX });\n\n schedulerData._startResizing();\n this.resizerHelper(dragType, 'addEventListener');\n document.onselectstart = () => false;\n document.ondragstart = () => false;\n };\n\n initStartDrag = ev => {\n this.initDragHelper(ev, 'start');\n };\n\n doStartDrag = ev => {\n ev.stopPropagation();\n\n let clientX = 0;\n if (this.supportTouch) {\n if (ev.changedTouches.length === 0) return;\n const touch = ev.changedTouches[0];\n clientX = touch.pageX;\n } else {\n clientX = ev.clientX;\n }\n const { left, width, leftIndex, rightIndex, schedulerData } = this.props;\n const cellWidth = schedulerData.getContentCellWidth();\n const offset = leftIndex > 0 ? 5 : 6;\n const minWidth = cellWidth - offset;\n const maxWidth = rightIndex * cellWidth - offset;\n const { startX } = this.state;\n let newLeft = left + clientX - startX;\n let newWidth = width + startX - clientX;\n if (newWidth < minWidth) {\n newWidth = minWidth;\n newLeft = (rightIndex - 1) * cellWidth + (rightIndex - 1 > 0 ? 2 : 3);\n } else if (newWidth > maxWidth) {\n newWidth = maxWidth;\n newLeft = 3;\n }\n\n this.setState({ left: newLeft, width: newWidth });\n };\n\n stopStartDrag = async ev => {\n ev.stopPropagation();\n this.resizerHelper('start', 'removeEventListener');\n document.onselectstart = null;\n document.ondragstart = null;\n const { width, left, top, leftIndex, rightIndex, schedulerData, eventItem, updateEventStart, conflictOccurred } =\n this.props;\n schedulerData._stopResizing();\n const { width: stateWidth } = this.state;\n if (stateWidth === width) return;\n\n let clientX = 0;\n if (this.supportTouch) {\n if (ev.changedTouches.length === 0) {\n this.setState({ left, top, width });\n return;\n }\n const touch = ev.changedTouches[0];\n clientX = touch.pageX;\n } else {\n clientX = ev.clientX;\n }\n const { cellUnit, events, config, localeDayjs } = schedulerData;\n const cellWidth = schedulerData.getContentCellWidth();\n const offset = leftIndex > 0 ? 5 : 6;\n const minWidth = cellWidth - offset;\n const maxWidth = rightIndex * cellWidth - offset;\n const { startX } = this.state;\n const newWidth = width + startX - clientX;\n const deltaX = clientX - startX;\n let sign = 1;\n if (deltaX < 0) {\n sign = -1;\n } else if (deltaX === 0) {\n sign = 0;\n }\n let count = (sign > 0 ? Math.floor(Math.abs(deltaX) / cellWidth) : Math.ceil(Math.abs(deltaX) / cellWidth)) * sign;\n if (newWidth < minWidth) count = rightIndex - leftIndex - 1;\n else if (newWidth > maxWidth) count = -leftIndex;\n let newStart = localeDayjs(new Date(eventItem.start))\n .add(\n cellUnit === CellUnit.Hour ? count * config.minuteStep : count,\n cellUnit === CellUnit.Hour ? 'minutes' : 'days'\n )\n .format(DATETIME_FORMAT);\n\n newStart = await stopDragHelper({\n count,\n cellUnit,\n config,\n eventItem,\n localeDayjs,\n dragType: 'start',\n value: newStart,\n });\n\n let hasConflict = false;\n const slotId = schedulerData._getEventSlotId(eventItem);\n let slotName;\n const slot = schedulerData.getSlotById(slotId);\n if (slot) slotName = slot.name;\n if (config.checkConflict) {\n const start = localeDayjs(new Date(newStart));\n const end = localeDayjs(new Date(eventItem.end));\n\n events.forEach(e => {\n if (schedulerData._getEventSlotId(e) === slotId && e.id !== eventItem.id) {\n const eStart = localeDayjs(new Date(e.start));\n const eEnd = localeDayjs(new Date(e.end));\n if (\n (start >= eStart && start < eEnd) ||\n (end > eStart && end <= eEnd) ||\n (eStart >= start && eStart < end) ||\n (eEnd > start && eEnd <= end)\n )\n hasConflict = true;\n }\n });\n }\n\n if (hasConflict) {\n this.setState({ left, top, width });\n\n if (conflictOccurred !== undefined) {\n conflictOccurred(\n schedulerData,\n 'StartResize',\n eventItem,\n DnDTypes.EVENT,\n slotId,\n slotName,\n newStart,\n eventItem.end\n );\n } else {\n console.log('Conflict occurred, set conflictOccurred func in Scheduler to handle it');\n }\n this.subscribeResizeEvent(this.props);\n } else if (updateEventStart !== undefined) updateEventStart(schedulerData, eventItem, newStart);\n };\n\n cancelStartDrag = ev => {\n ev.stopPropagation();\n\n this.startResizer.removeEventListener('touchmove', this.doStartDrag, false);\n this.startResizer.removeEventListener('touchend', this.stopStartDrag, false);\n this.startResizer.removeEventListener('touchcancel', this.cancelStartDrag, false);\n document.onselectstart = null;\n document.ondragstart = null;\n const { schedulerData, left, top, width } = this.props;\n schedulerData._stopResizing();\n this.setState({ left, top, width });\n };\n\n initEndDrag = ev => {\n this.initDragHelper(ev, 'end');\n };\n\n doEndDrag = ev => {\n ev.stopPropagation();\n let clientX = 0;\n if (this.supportTouch) {\n if (ev.changedTouches.length === 0) return;\n const touch = ev.changedTouches[0];\n clientX = touch.pageX;\n } else {\n clientX = ev.clientX;\n }\n const { width, leftIndex, schedulerData } = this.props;\n const { headers } = schedulerData;\n const cellWidth = schedulerData.getContentCellWidth();\n const offset = leftIndex > 0 ? 5 : 6;\n const minWidth = cellWidth - offset;\n const maxWidth = (headers.length - leftIndex) * cellWidth - offset;\n const { endX } = this.state;\n\n let newWidth = width + clientX - endX;\n if (newWidth < minWidth) newWidth = minWidth;\n else if (newWidth > maxWidth) newWidth = maxWidth;\n\n this.setState({ width: newWidth });\n };\n\n stopEndDrag = async ev => {\n ev.stopPropagation();\n this.resizerHelper('end', 'removeEventListener');\n\n document.onselectstart = null;\n document.ondragstart = null;\n\n const { left, top, width, leftIndex, rightIndex, schedulerData, eventItem, updateEventEnd, conflictOccurred } =\n this.props;\n\n schedulerData._stopResizing();\n const { width: stateWidth } = this.state;\n\n if (stateWidth === width) return;\n\n let clientX = 0;\n if (this.supportTouch) {\n if (ev.changedTouches.length === 0) {\n this.setState({ left, top, width });\n return;\n }\n const touch = ev.changedTouches[0];\n clientX = touch.pageX;\n } else {\n clientX = ev.clientX;\n }\n const { headers, cellUnit, events, config, localeDayjs } = schedulerData;\n\n const cellWidth = schedulerData.getContentCellWidth();\n const offset = leftIndex > 0 ? 5 : 6;\n const minWidth = cellWidth - offset;\n const maxWidth = (headers.length - leftIndex) * cellWidth - offset;\n const { endX } = this.state;\n\n const newWidth = width + clientX - endX;\n const deltaX = newWidth - width;\n let sign = 1;\n if (deltaX < 0) {\n sign = -1;\n } else if (deltaX === 0) {\n sign = 0;\n }\n\n let count = (sign < 0 ? Math.floor(Math.abs(deltaX) / cellWidth) : Math.ceil(Math.abs(deltaX) / cellWidth)) * sign;\n if (newWidth < minWidth) count = leftIndex - rightIndex + 1;\n else if (newWidth > maxWidth) count = headers.length - rightIndex;\n let newEnd = localeDayjs(new Date(eventItem.end))\n .add(\n cellUnit === CellUnit.Hour ? count * config.minuteStep : count,\n cellUnit === CellUnit.Hour ? 'minutes' : 'days'\n )\n .format(DATETIME_FORMAT);\n newEnd = await stopDragHelper({\n dragType: 'end',\n cellUnit,\n config,\n count,\n value: newEnd,\n eventItem,\n localeDayjs,\n });\n\n let hasConflict = false;\n const slotId = schedulerData._getEventSlotId(eventItem);\n const slot = schedulerData.getSlotById(slotId);\n\n if (config.checkConflict) {\n const start = localeDayjs(new Date(eventItem.start));\n const end = localeDayjs(new Date(newEnd));\n\n events.forEach(e => {\n if (schedulerData._getEventSlotId(e) === slotId && e.id !== eventItem.id) {\n const eStart = localeDayjs(new Date(e.start));\n const eEnd = localeDayjs(new Date(e.end));\n if (\n (start >= eStart && start < eEnd) ||\n (end > eStart && end <= eEnd) ||\n (eStart >= start && eStart < end) ||\n (eEnd > start && eEnd <= end)\n ) {\n hasConflict = true;\n }\n }\n });\n }\n\n if (hasConflict) {\n this.setState({ left, top, width });\n\n if (conflictOccurred !== undefined) {\n conflictOccurred(\n schedulerData,\n 'EndResize',\n eventItem,\n DnDTypes.EVENT,\n slotId,\n slot ? slot.name : null,\n eventItem.start,\n newEnd\n );\n } else {\n console.error('Conflict occurred, set conflictOccurred func in Scheduler to handle it');\n }\n this.subscribeResizeEvent(this.props);\n } else if (updateEventEnd !== undefined) {\n updateEventEnd(schedulerData, eventItem, newEnd);\n }\n };\n\n cancelEndDrag = ev => {\n ev.stopPropagation();\n\n this.endResizer.removeEventListener('touchmove', this.doEndDrag, false);\n this.endResizer.removeEventListener('touchend', this.stopEndDrag, false);\n this.endResizer.removeEventListener('touchcancel', this.cancelEndDrag, false);\n document.onselectstart = null;\n document.ondragstart = null;\n const { schedulerData, left, top, width } = this.props;\n schedulerData._stopResizing();\n this.setState({ left, top, width });\n };\n\n handleMouseMove = event => {\n const rect = this.eventItemElement ? this.eventItemElement.getBoundingClientRect() : { left: 0, right: 0 };\n this.setState({\n contentMousePosX: event.clientX,\n eventItemLeftRect: rect.left,\n eventItemRightRect: rect.right,\n });\n };\n\n subscribeResizeEvent = props => {\n if (this.startResizer !== undefined && this.startResizer !== null) {\n if (this.supportTouch) {\n // this.startResizer.removeEventListener('touchstart', this.initStartDrag, false);\n // if (startResizable(props))\n // this.startResizer.addEventListener('touchstart', this.initStartDrag, false);\n } else {\n this.startResizer.removeEventListener('mousedown', this.initStartDrag, false);\n if (startResizable(props)) this.startResizer.addEventListener('mousedown', this.initStartDrag, false);\n }\n }\n if (this.endResizer !== undefined && this.endResizer !== null) {\n if (this.supportTouch) {\n // this.endResizer.removeEventListener('touchstart', this.initEndDrag, false);\n // if (endResizable(props))\n // this.endResizer.addEventListener('touchstart', this.initEndDrag, false);\n } else {\n this.endResizer.removeEventListener('mousedown', this.initEndDrag, false);\n if (endResizable(props)) this.endResizer.addEventListener('mousedown', this.initEndDrag, false);\n }\n }\n };\n\n render() {\n const {\n eventItem,\n isStart,\n isEnd,\n isInPopover,\n eventItemClick,\n schedulerData,\n isDragging,\n eventItemTemplateResolver,\n } = this.props;\n const { config, localeDayjs } = schedulerData;\n const { left, width, top } = this.state;\n let roundCls;\n const popoverPlacement = config.eventItemPopoverPlacement;\n const isPopoverPlacementMousePosition = /(top|bottom)(Right|Left)MousePosition/.test(popoverPlacement);\n\n if (isStart) {\n roundCls = isEnd ? 'round-all' : 'round-head';\n } else {\n roundCls = isEnd ? 'round-tail' : 'round-none';\n }\n let bgColor = config.defaultEventBgColor;\n\n if (eventItem.bgColor) bgColor = eventItem.bgColor;\n\n const titleText = schedulerData.behaviors.getEventTextFunc(schedulerData, eventItem);\n const content = (\n <EventItemPopover\n {...this.props}\n eventItem={eventItem}\n title={eventItem.title}\n startTime={eventItem.start}\n endTime={eventItem.end}\n statusColor={bgColor}\n />\n );\n\n const start = localeDayjs(new Date(eventItem.start));\n const eventTitle = isInPopover ? `${start.format('HH:mm')} ${titleText}` : titleText;\n let startResizeDiv = <div />;\n if (startResizable(this.props))\n startResizeDiv = <div className=\"event-resizer event-start-resizer\" ref={ref => (this.startResizer = ref)} />;\n let endResizeDiv = <div />;\n if (endResizable(this.props))\n endResizeDiv = <div className=\"event-resizer event-end-resizer\" ref={ref => (this.endResizer = ref)} />;\n\n let eventItemTemplate = (\n <div\n className={`${roundCls} event-item`}\n key={eventItem.id}\n style={{ height: config.eventItemHeight, backgroundColor: bgColor }}\n >\n <span style={{ marginLeft: '10px', lineHeight: `${config.eventItemHeight}px` }}>{eventTitle}</span>\n </div>\n );\n if (eventItemTemplateResolver !== undefined) {\n eventItemTemplate = eventItemTemplateResolver(\n schedulerData,\n eventItem,\n bgColor,\n isStart,\n isEnd,\n 'event-item',\n config.eventItemHeight,\n undefined\n );\n }\n\n const a = (\n <a\n className=\"timeline-event\"\n ref={this.eventItemRef}\n onMouseMove={isPopoverPlacementMousePosition ? this.handleMouseMove : undefined}\n style={{ left, width, top }}\n onClick={() => {\n if (eventItemClick) eventItemClick(schedulerData, eventItem);\n }}\n >\n {eventItemTemplate}\n {startResizeDiv}\n {endResizeDiv}\n </a>\n );\n\n const getMousePositionOptionsData = () => {\n let popoverOffsetX = 0;\n let mousePositionPlacement = '';\n\n if (isPopoverPlacementMousePosition) {\n const isMousePositionPlacementLeft = popoverPlacement.includes('Left');\n const { contentMousePosX } = this.state;\n const popoverWidth = config.eventItemPopoverWidth;\n const { eventItemLeftRect } = this.state;\n const { eventItemRightRect } = this.state;\n let eventItemMousePosX = isMousePositionPlacementLeft ? eventItemLeftRect : eventItemRightRect;\n let posAdjustControl = isMousePositionPlacementLeft ? 1 : -1;\n\n mousePositionPlacement = popoverPlacement.replace('MousePosition', '');\n\n const distance = 10;\n\n if (isMousePositionPlacementLeft && this._isMounted) {\n if (contentMousePosX + popoverWidth + distance > window.innerWidth) {\n mousePositionPlacement = `${popoverPlacement.replace(/(Right|Left).*/, '')}Right`;\n eventItemMousePosX = eventItemRightRect;\n posAdjustControl = -1;\n }\n } else if (contentMousePosX - popoverWidth - distance < 0) {\n mousePositionPlacement = `${popoverPlacement.replace(/(Right|Left).*/, '')}Left`;\n eventItemMousePosX = eventItemLeftRect;\n posAdjustControl = 1;\n }\n\n popoverOffsetX = contentMousePosX - eventItemMousePosX - 20 * posAdjustControl;\n }\n\n return { popoverOffsetX, mousePositionPlacement };\n };\n\n const { popoverOffsetX, mousePositionPlacement } = getMousePositionOptionsData();\n\n const aItem = a;\n\n if (\n isDragging\n ? null\n : schedulerData._isResizing() || config.eventItemPopoverEnabled === false || eventItem.showPopover === false\n ) {\n return <div>{aItem}</div>;\n }\n\n return (\n <Popover\n motion={isPopoverPlacementMousePosition ? '' : undefined}\n align={\n isPopoverPlacementMousePosition\n ? { offset: [popoverOffsetX, popoverPlacement.includes('top') ? -10 : 10], overflow: {} }\n : undefined\n }\n placement={isPopoverPlacementMousePosition ? mousePositionPlacement : popoverPlacement}\n content={content}\n trigger={config.eventItemPopoverTrigger}\n >\n {aItem}\n </Popover>\n );\n }\n}\n\n// Wrapper component to use useDrag hook\nfunction EventItemWithDnD(props) {\n const { dndSource } = props;\n\n // Always call useDrag unconditionally (Rules of Hooks)\n // Disable functionality when dndSource is not provided\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag(() => {\n // If dndSource is not provided, return a no-op spec\n if (!dndSource) {\n return {\n type: '__NONE__',\n canDrag: () => false,\n collect: () => ({ isDragging: false }),\n };\n }\n\n // Get drag options from dndSource\n return dndSource.getDragOptions(props);\n }, [props, dndSource]);\n\n return <EventItem {...props} isDragging={isDragging} dragRef={dragRef} dragPreviewRef={dragPreviewRef} />;\n}\n\nEventItemWithDnD.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n dndSource: PropTypes.object,\n};\n\nEventItemWithDnD.defaultProps = {\n dndSource: undefined,\n};\n\nEventItemWithDnD.displayName = 'EventItemWithDnD';\n\nexport default EventItemWithDnD;\n\nEventItem.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n eventItem: PropTypes.object.isRequired,\n isStart: PropTypes.bool.isRequired,\n isEnd: PropTypes.bool.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n isInPopover: PropTypes.bool.isRequired,\n leftIndex: PropTypes.number.isRequired,\n rightIndex: PropTypes.number.isRequired,\n isDragging: PropTypes.bool,\n dragRef: PropTypes.func,\n dragPreviewRef: PropTypes.func,\n updateEventStart: PropTypes.func,\n updateEventEnd: PropTypes.func,\n moveEvent: PropTypes.func,\n subtitleGetter: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n conflictOccurred: PropTypes.func,\n eventItemTemplateResolver: PropTypes.func,\n};\n\nEventItem.defaultProps = {\n isDragging: undefined,\n dragRef: undefined,\n dragPreviewRef: undefined,\n updateEventStart: undefined,\n updateEventEnd: undefined,\n moveEvent: undefined,\n subtitleGetter: undefined,\n eventItemClick: undefined,\n viewEventClick: undefined,\n viewEventText: undefined,\n viewEvent2Click: undefined,\n viewEvent2Text: undefined,\n conflictOccurred: undefined,\n eventItemTemplateResolver: undefined,\n};\n","import { CloseOutlined } from '@ant-design/icons';\nimport { Col, Row } from 'antd';\nimport PropTypes from 'prop-types';\nimport { useState } from 'react';\nimport DnDSource from './DnDSource';\nimport EventItem from './EventItem';\n\nfunction AddMorePopover(props) {\n const { schedulerData, headerItem, left, top, height, closeAction } = props;\n const { config, localeDayjs } = schedulerData;\n const { time, start, end, events } = headerItem;\n\n const [dndSource] = useState(new DnDSource(p => p.eventItem, schedulerData.config.dragAndDropEnabled));\n\n const header = localeDayjs(new Date(time)).format(config.addMorePopoverHeaderFormat);\n const durationStart = localeDayjs(new Date(start));\n const durationEnd = localeDayjs(end);\n const eventList = events.map((evt, i) => {\n if (evt !== undefined) {\n const eventStart = localeDayjs(evt.eventItem.start);\n const eventEnd = localeDayjs(evt.eventItem.end);\n const isStart = eventStart >= durationStart;\n const isEnd = eventEnd < durationEnd;\n const eventItemTop = 12 + (i + 1) * config.eventItemLineHeight;\n\n return (\n <EventItem\n {...props}\n key={evt.eventItem.id}\n eventItem={evt.eventItem}\n dndSource={dndSource}\n leftIndex={0}\n isInPopover\n isStart={isStart}\n isEnd={isEnd}\n rightIndex={1}\n left={10}\n width={138}\n top={eventItemTop}\n />\n );\n }\n return null;\n });\n\n return (\n <div className=\"rbs-add-more-popover-overlay\" style={{ left, top, height, minWidth: '170px' }}>\n <Row justify=\"space-between\" align=\"middle\">\n <Col span={22}>\n <span className=\"base-text\">{header}</span>\n </Col>\n <Col span={2}>\n <button type=\"button\" onClick={() => closeAction(undefined)}>\n <CloseOutlined />\n </button>\n </Col>\n </Row>\n {eventList?.filter(Boolean)}\n </div>\n );\n}\n\nAddMorePopover.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n headerItem: PropTypes.object.isRequired,\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n closeAction: PropTypes.func.isRequired,\n subtitleGetter: PropTypes.func,\n moveEvent: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n eventItemTemplateResolver: PropTypes.func,\n};\n\nexport default AddMorePopover;\n","import { Popover } from 'antd';\nimport PropTypes from 'prop-types';\nimport EventItemPopover from './EventItemPopover';\n\nfunction AgendaEventItem(props) {\n const { eventItem, isStart, isEnd, eventItemClick, schedulerData, eventItemTemplateResolver } = props;\n const { config, behaviors } = schedulerData;\n\n let roundCls = 'round-none';\n if (isStart && isEnd) {\n roundCls = 'round-all';\n } else if (isStart) {\n roundCls = 'round-head';\n } else if (isEnd) {\n roundCls = 'round-tail';\n }\n\n const backgroundColor = eventItem.bgColor || config.defaultEventBgColor;\n const titleText = behaviors.getEventTextFunc(schedulerData, eventItem);\n\n const eventItemStyle = { height: config.eventItemHeight, maxWidth: config.agendaMaxEventWidth, backgroundColor };\n\n let eventItemTemplate = (\n <div className={`${roundCls} event-item`} key={eventItem.id} style={eventItemStyle}>\n <span style={{ marginLeft: '10px', lineHeight: `${config.eventItemHeight}px` }}>{titleText}</span>\n </div>\n );\n\n if (eventItemTemplateResolver) {\n eventItemTemplate = eventItemTemplateResolver(\n schedulerData,\n eventItem,\n backgroundColor,\n isStart,\n isEnd,\n 'event-item',\n config.eventItemHeight,\n config.agendaMaxEventWidth\n );\n }\n\n const handleClick = () => eventItemClick?.(schedulerData, eventItem);\n\n const eventLink = (\n <button type=\"button\" className=\"day-event rbs-txt-btn-dis\" onClick={handleClick}>\n {eventItemTemplate}\n </button>\n );\n\n const content = (\n <EventItemPopover\n {...props}\n title={eventItem.title}\n startTime={eventItem.start}\n endTime={eventItem.end}\n statusColor={backgroundColor}\n />\n );\n\n return config.eventItemPopoverEnabled ? (\n <Popover placement=\"bottomLeft\" content={content} trigger=\"hover\" overlayClassName=\"scheduler-agenda-event-popover\">\n {eventLink}\n </Popover>\n ) : (\n <span>{eventLink}</span>\n );\n}\n\nAgendaEventItem.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n eventItem: PropTypes.object.isRequired,\n isStart: PropTypes.bool.isRequired,\n isEnd: PropTypes.bool.isRequired,\n subtitleGetter: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n eventItemTemplateResolver: PropTypes.func,\n};\n\nexport default AgendaEventItem;\n","import PropTypes from 'prop-types';\nimport AgendaEventItem from './AgendaEventItem';\n\nfunction AgendaResourceEvents(props) {\n const { schedulerData, resourceEvents, slotClickedFunc, slotItemTemplateResolver } = props;\n const { startDate, endDate, config, localeDayjs } = schedulerData;\n const width = schedulerData.getResourceTableWidth() - 2;\n\n const events = resourceEvents.headerItems.flatMap(item => {\n const start = localeDayjs(new Date(startDate));\n const end = localeDayjs(endDate).add(1, 'days');\n const headerStart = localeDayjs(new Date(item.start));\n const headerEnd = localeDayjs(new Date(item.end));\n if (start === headerStart && end === headerEnd) {\n return item.events.map(evt => {\n const durationStart = localeDayjs(new Date(startDate));\n const durationEnd = localeDayjs(endDate).add(1, 'days');\n const eventStart = localeDayjs(evt.eventItem.start);\n const eventEnd = localeDayjs(evt.eventItem.end);\n const isStart = eventStart >= durationStart;\n const isEnd = eventEnd < durationEnd;\n return (\n <AgendaEventItem\n {...props}\n key={evt.eventItem.id}\n eventItem={evt.eventItem}\n isStart={isStart}\n isEnd={isEnd}\n />\n );\n });\n }\n return [];\n });\n\n const slotItemContent = slotClickedFunc ? (\n <button className=\"rbs-txt-btn-dis\" type=\"button\" onClick={() => slotClickedFunc(schedulerData, resourceEvents)}>\n {resourceEvents.slotName}\n </button>\n ) : (\n <span>{resourceEvents.slotName}</span>\n );\n\n let slotItem = (\n <div\n style={{ width }}\n title={resourceEvents.slotTitle || resourceEvents.slotName}\n className=\"overflow-text header2-text\"\n >\n {slotItemContent}\n </div>\n );\n\n if (slotItemTemplateResolver) {\n const temp = slotItemTemplateResolver(\n schedulerData,\n resourceEvents,\n slotClickedFunc,\n width,\n 'overflow-text header2-text'\n );\n\n if (temp) {\n slotItem = temp;\n }\n }\n\n return (\n <tr style={{ minHeight: config.eventItemLineHeight + 2 }}>\n <td data-resource-id={resourceEvents.slotId}>{slotItem}</td>\n <td>\n <div className=\"day-event-container\">{events}</div>\n </td>\n </tr>\n );\n}\n\nAgendaResourceEvents.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n resourceEvents: PropTypes.object.isRequired,\n subtitleGetter: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n slotClickedFunc: PropTypes.func,\n slotItemTemplateResolver: PropTypes.func,\n};\n\nexport default AgendaResourceEvents;\n","import PropTypes from 'prop-types';\nimport AgendaResourceEvents from './AgendaResourceEvents';\n\nfunction AgendaView(props) {\n const { schedulerData } = props;\n const { config, renderData } = schedulerData;\n\n const agendaResourceTableWidth = schedulerData.getResourceTableWidth();\n const tableHeaderHeight = schedulerData.getTableHeaderHeight();\n const resourceName = schedulerData.isEventPerspective ? config.taskName : config.resourceName;\n const { agendaViewHeader } = config;\n\n const resourceEventsList = renderData.map(item => (\n <AgendaResourceEvents {...props} resourceEvents={item} key={item.slotId} />\n ));\n\n return (\n <tr>\n <td>\n <table className=\"scheduler-table\">\n <thead>\n <tr style={{ height: tableHeaderHeight }}>\n <th style={{ width: agendaResourceTableWidth }} className=\"header3-text\">\n {resourceName}\n </th>\n <th className=\"header3-text\">{agendaViewHeader}</th>\n </tr>\n </thead>\n <tbody>{resourceEventsList}</tbody>\n </table>\n </td>\n </tr>\n );\n}\n\nAgendaView.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n subtitleGetter: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n slotClickedFunc: PropTypes.func,\n};\n\nexport default AgendaView;\n","import PropTypes from 'prop-types';\n\nfunction BodyView({ schedulerData }) {\n const { renderData, headers, config, behaviors } = schedulerData;\n const width = schedulerData.getContentCellWidth();\n\n const tableRows = renderData\n .filter(o => o.render)\n .map(({ slotId, groupOnly, rowHeight }) => {\n const rowCells = headers.map((header, index) => {\n const key = `${slotId}_${header.time}`;\n const style = index === headers.length - 1 ? {} : { width };\n if (header.nonWorkingTime) {\n style.backgroundColor = config.nonWorkingTimeBodyBgColor;\n }\n if (groupOnly) {\n style.backgroundColor = config.groupOnlySlotColor;\n }\n if (behaviors.getNonAgendaViewBodyCellBgColorFunc) {\n const cellBgColor = behaviors.getNonAgendaViewBodyCellBgColorFunc(schedulerData, slotId, header);\n if (cellBgColor) {\n style.backgroundColor = cellBgColor;\n }\n }\n return (\n <td key={key} style={style}>\n <div />\n </td>\n );\n });\n\n return (\n <tr key={slotId} style={{ height: rowHeight }}>\n {rowCells}\n </tr>\n );\n });\n\n return <tbody>{tableRows}</tbody>;\n}\n\nBodyView.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n};\n\nexport default BodyView;\n","export function getPos(element) {\n let x = 0;\n let y = 0;\n let currentElement = element;\n\n while (currentElement) {\n x += currentElement.offsetLeft - currentElement.scrollLeft;\n y += currentElement.offsetTop - currentElement.scrollTop;\n currentElement = currentElement.offsetParent;\n }\n\n return { x, y };\n}\n","import { DnDTypes, CellUnit, DATETIME_FORMAT, ViewType } from '../config/default';\nimport { getPos } from '../helper/utility';\n\nexport default class DnDContext {\n constructor(sources) {\n this.sourceMap = new Map();\n sources.forEach(item => {\n this.sourceMap.set(item.dndType, item);\n });\n }\n\n extractInitialTimes = (monitor, pos, cellWidth, resourceEvents, cellUnit, localeDayjs) => {\n const initialPoint = monitor.getInitialClientOffset();\n const initialLeftIndex = Math.floor((initialPoint.x - pos.x) / cellWidth);\n const initialStart = resourceEvents.headerItems[initialLeftIndex].start;\n let initialEnd = resourceEvents.headerItems[initialLeftIndex].end;\n if (cellUnit !== CellUnit.Hour) {\n const end = localeDayjs(new Date(initialStart)).hour(23).minute(59).second(59);\n initialEnd = end.format(DATETIME_FORMAT);\n }\n return { initialStart, initialEnd };\n };\n\n getDropSpec = () => ({\n drop: (props, monitor, component) => {\n const { schedulerData, resourceEvents } = props;\n const { cellUnit, localeDayjs } = schedulerData;\n const type = monitor.getItemType();\n const pos = getPos(component.eventContainer);\n const cellWidth = schedulerData.getContentCellWidth();\n let initialStartTime = null;\n let initialEndTime = null;\n if (type === DnDTypes.EVENT) {\n const { initialStart, initialEnd } = this.extractInitialTimes(\n monitor,\n pos,\n cellWidth,\n resourceEvents,\n cellUnit,\n localeDayjs\n );\n initialStartTime = initialStart;\n initialEndTime = initialEnd;\n }\n const point = monitor.getClientOffset();\n const leftIndex = Math.floor((point.x - pos.x) / cellWidth);\n const startTime = resourceEvents.headerItems[leftIndex].start;\n let endTime = resourceEvents.headerItems[leftIndex].end;\n if (cellUnit !== CellUnit.Hour) {\n endTime = localeDayjs(new Date(resourceEvents.headerItems[leftIndex].start))\n .hour(23)\n .minute(59)\n .second(59)\n .format(DATETIME_FORMAT);\n }\n\n return {\n slotId: resourceEvents.slotId,\n slotName: resourceEvents.slotName,\n start: startTime,\n end: endTime,\n initialStart: initialStartTime,\n initialEnd: initialEndTime,\n };\n },\n\n hover: (props, monitor, component) => {\n const { schedulerData, resourceEvents, movingEvent } = props;\n const { cellUnit, config, viewType, localeDayjs } = schedulerData;\n this.config = config;\n const item = monitor.getItem();\n const type = monitor.getItemType();\n const pos = getPos(component.eventContainer);\n const cellWidth = schedulerData.getContentCellWidth();\n let initialStart = null;\n if (type === DnDTypes.EVENT) {\n const { initialStart: iStart } = this.extractInitialTimes(\n monitor,\n pos,\n cellWidth,\n resourceEvents,\n cellUnit,\n localeDayjs\n );\n initialStart = iStart;\n }\n\n const point = monitor.getClientOffset();\n const leftIndex = Math.floor((point.x - pos.x) / cellWidth);\n if (!resourceEvents.headerItems[leftIndex]) {\n return;\n }\n let newStart = resourceEvents.headerItems[leftIndex].start;\n let newEnd = resourceEvents.headerItems[leftIndex].end;\n if (cellUnit !== CellUnit.Hour) {\n newEnd = localeDayjs(new Date(resourceEvents.headerItems[leftIndex].start))\n .hour(23)\n .minute(59)\n .second(59)\n .format(DATETIME_FORMAT);\n }\n let { slotId, slotName } = resourceEvents;\n let action = 'New';\n const isEvent = type === DnDTypes.EVENT;\n if (isEvent) {\n const event = item;\n if (config.relativeMove) {\n newStart = localeDayjs(event.start)\n .add(localeDayjs(newStart).diff(localeDayjs(new Date(initialStart))), 'ms')\n .format(DATETIME_FORMAT);\n } else if (viewType !== ViewType.Day) {\n const tmpDayjs = localeDayjs(newStart);\n newStart = localeDayjs(event.start)\n .year(tmpDayjs.year())\n .month(tmpDayjs.month())\n .date(tmpDayjs.date())\n .format(DATETIME_FORMAT);\n }\n newEnd = localeDayjs(newStart)\n .add(localeDayjs(event.end).diff(localeDayjs(event.start)), 'ms')\n .format(DATETIME_FORMAT);\n\n // if crossResourceMove disabled, slot returns old value\n if (config.crossResourceMove === false) {\n slotId = schedulerData._getEventSlotId(item);\n slotName = undefined;\n const slot = schedulerData.getSlotById(slotId);\n if (slot) slotName = slot.name;\n }\n\n action = 'Move';\n }\n\n if (movingEvent) {\n movingEvent(schedulerData, slotId, slotName, newStart, newEnd, action, type, item);\n }\n },\n\n canDrop: (props, monitor) => {\n const { schedulerData, resourceEvents } = props;\n const item = monitor.getItem();\n if (schedulerData._isResizing()) return false;\n const { config } = schedulerData;\n return config.movable && !resourceEvents.groupOnly && (item.movable === undefined || item.movable !== false);\n },\n });\n\n // Returns the drop specification for use with useDrop hook\n // This should be called with props from the component using the hook\n getDropOptions = (props, component) => {\n const spec = this.getDropSpec();\n return {\n accept: [...this.sourceMap.keys()],\n drop: (item, monitor) => spec.drop(props, monitor, component),\n hover: (item, monitor) => spec.hover(props, monitor, component),\n canDrop: (item, monitor) => spec.canDrop(props, monitor),\n collect: monitor => ({\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n }),\n };\n };\n\n getDndSource = (dndType = DnDTypes.EVENT) => this.sourceMap.get(dndType);\n}\n","import PropTypes from 'prop-types';\nimport { CellUnit } from '../config/default';\n\nfunction HeaderView({ schedulerData, nonAgendaCellHeaderTemplateResolver, showWeekNumber }) {\n const { headers, cellUnit, config, localeDayjs } = schedulerData;\n const headerHeight = schedulerData.getTableHeaderHeight();\n const cellWidth = schedulerData.getContentCellWidth();\n const minuteStepsInHour = schedulerData.getMinuteStepsInHour();\n\n let headerList = [];\n let weekNumberRow = [];\n let style;\n\n // Helper function to generate week number cells with merged columns\n const generateWeekNumberRow = () => {\n if (!showWeekNumber) return null;\n\n const weekGroups = [];\n let currentWeek = null;\n let colspan = 0;\n let startIndex = 0;\n\n headers.forEach((item, index) => {\n const datetime = localeDayjs(new Date(item.time));\n const weekNum = datetime.isoWeek();\n\n if (currentWeek === null) {\n currentWeek = weekNum;\n colspan = 1;\n startIndex = index;\n } else if (currentWeek === weekNum) {\n colspan += 1;\n } else {\n weekGroups.push({ week: currentWeek, colspan, startIndex });\n currentWeek = weekNum;\n colspan = 1;\n startIndex = index;\n }\n });\n\n // Push the last week group\n if (currentWeek !== null) {\n weekGroups.push({ week: currentWeek, colspan, startIndex });\n }\n\n return weekGroups.map((group, idx) => {\n const cellStyle = {\n fontSize: '0.85em',\n opacity: 0.7,\n borderBottom: '1px solid #e9e9e9',\n padding: '4px 8px',\n textAlign: 'center',\n };\n\n return (\n <th key={`week-${group.week}-${idx}`} colSpan={group.colspan} style={cellStyle}>\n W{group.week}\n </th>\n );\n });\n };\n\n if (cellUnit === CellUnit.Hour) {\n headers.forEach((item, index) => {\n if (index % minuteStepsInHour === 0) {\n const datetime = localeDayjs(new Date(item.time));\n\n style = item.nonWorkingTime\n ? {\n width: cellWidth * minuteStepsInHour,\n color: config.nonWorkingTimeHeadColor,\n backgroundColor: config.nonWorkingTimeHeadBgColor,\n }\n : {\n width: cellWidth * minuteStepsInHour,\n };\n\n if (index === headers.length - minuteStepsInHour) {\n style = item.nonWorkingTime\n ? { color: config.nonWorkingTimeHeadColor, backgroundColor: config.nonWorkingTimeHeadBgColor }\n : {};\n }\n\n const pFormattedList = config.nonAgendaDayCellHeaderFormat.split('|').map(pitem => datetime.format(pitem));\n let element;\n\n if (typeof nonAgendaCellHeaderTemplateResolver === 'function') {\n element = nonAgendaCellHeaderTemplateResolver(schedulerData, item, pFormattedList, style);\n } else {\n const pList = pFormattedList.map((formattedItem, pIndex) => <div key={pIndex}>{formattedItem}</div>);\n\n element = (\n <th key={`header-${item.time}`} className=\"header3-text\" style={style}>\n <div>{pList}</div>\n </th>\n );\n }\n headerList.push(element);\n }\n });\n } else {\n headerList = headers.map((item, index) => {\n const datetime = localeDayjs(new Date(item.time));\n style = item.nonWorkingTime\n ? {\n width: cellWidth,\n color: config.nonWorkingTimeHeadColor,\n backgroundColor: config.nonWorkingTimeHeadBgColor,\n }\n : { width: cellWidth };\n if (index === headers.length - 1)\n style = item.nonWorkingTime\n ? { color: config.nonWorkingTimeHeadColor, backgroundColor: config.nonWorkingTimeHeadBgColor }\n : {};\n const cellFormat =\n cellUnit === CellUnit.Week\n ? config.nonAgendaWeekCellHeaderFormat\n : cellUnit === CellUnit.Month\n ? config.nonAgendaMonthCellHeaderFormat\n : cellUnit === CellUnit.Year\n ? config.nonAgendaYearCellHeaderFormat\n : config.nonAgendaOtherCellHeaderFormat;\n const pFormattedList = cellFormat.split('|').map(dateFormatPart => datetime.format(dateFormatPart));\n\n if (typeof nonAgendaCellHeaderTemplateResolver === 'function') {\n return nonAgendaCellHeaderTemplateResolver(schedulerData, item, pFormattedList, style);\n }\n\n const pList = pFormattedList.map((formattedItem, pIndex) => <div key={pIndex}>{formattedItem}</div>);\n\n return (\n <th key={`header-${item.time}`} className=\"header3-text\" style={style}>\n <div>{pList}</div>\n </th>\n );\n });\n }\n\n weekNumberRow = generateWeekNumberRow();\n\n return (\n <thead>\n {showWeekNumber && weekNumberRow && <tr style={{ height: 24 }}>{weekNumberRow}</tr>}\n <tr style={{ height: headerHeight }}>{headerList}</tr>\n </thead>\n );\n}\n\nHeaderView.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n nonAgendaCellHeaderTemplateResolver: PropTypes.func,\n showWeekNumber: PropTypes.bool,\n};\n\n// HeaderView.defaultProps = {\n// nonAgendaCellHeaderTemplateResolver: null,\n// };\n\nexport default HeaderView;\n","import PropTypes from 'prop-types';\n\nfunction AddMore({ schedulerData, number, left, width, top, clickAction, headerItem }) {\n const { config } = schedulerData;\n const content = `+${number} more`;\n\n return (\n <button\n type=\"button\"\n className=\"timeline-event\"\n style={{ left, width, top }}\n onClick={() => clickAction(headerItem)}\n >\n <div style={{ height: config.eventItemHeight, color: '#999', textAlign: 'center' }}>{content}</div>\n </button>\n );\n}\n\nAddMore.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n number: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n clickAction: PropTypes.func.isRequired,\n headerItem: PropTypes.object.isRequired,\n};\n\nexport default AddMore;\n","import PropTypes from 'prop-types';\n\nfunction SelectedArea({ left, width, schedulerData }) {\n const { config } = schedulerData;\n\n const selectedAreaStyle = {\n left,\n width,\n top: 0,\n bottom: 0,\n backgroundColor: config.selectedAreaColor,\n };\n\n return <div className=\"selected-area\" style={selectedAreaStyle} />;\n}\n\nSelectedArea.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n};\n\nexport default SelectedArea;\n","import PropTypes from 'prop-types';\nimport { SummaryPos } from '../config/default';\n\nfunction Summary({ schedulerData, summary, left, width, top }) {\n const { config } = schedulerData;\n const color = summary.color !== undefined ? summary.color : config.summaryColor;\n let textAlign = 'center';\n\n if (config.summaryPos === SummaryPos.TopRight || config.summaryPos === SummaryPos.BottomRight) {\n textAlign = 'right';\n } else if (config.summaryPos === SummaryPos.TopLeft || config.summaryPos === SummaryPos.BottomLeft) {\n textAlign = 'left';\n }\n\n const style = {\n height: config.eventItemHeight,\n color,\n textAlign,\n marginLeft: '6px',\n marginRight: '6px',\n ...(summary.fontSize !== undefined ? { fontSize: summary.fontSize } : {}),\n };\n\n return (\n <div className=\"timeline-event header2-text\" style={{ left, width, top, cursor: 'default' }}>\n <div style={style}>{summary.text}</div>\n </div>\n );\n}\n\nSummary.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n summary: PropTypes.object.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n};\n\nexport default Summary;\n","import { PropTypes } from 'prop-types';\nimport React, { Component } from 'react';\nimport { useDrop } from 'react-dnd';\nimport { CellUnit, DATETIME_FORMAT, DnDTypes, SummaryPos } from '../config/default';\nimport { getPos } from '../helper/utility';\nimport AddMore from './AddMore';\nimport EventItem from './EventItem';\nimport SelectedArea from './SelectedArea';\nimport Summary from './Summary';\n\nclass ResourceEvents extends Component {\n static propTypes = {\n resourceEvents: PropTypes.object.isRequired,\n schedulerData: PropTypes.object.isRequired,\n dndSource: PropTypes.object.isRequired,\n onSetAddMoreState: PropTypes.func,\n updateEventStart: PropTypes.func,\n updateEventEnd: PropTypes.func,\n moveEvent: PropTypes.func,\n movingEvent: PropTypes.func,\n conflictOccurred: PropTypes.func,\n subtitleGetter: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n newEvent: PropTypes.func,\n eventItemTemplateResolver: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n isSelecting: false,\n left: 0,\n width: 0,\n };\n this.supportTouch = false; // 'ontouchstart' in window;\n }\n\n componentDidMount() {\n const { schedulerData } = this.props;\n const { config } = schedulerData;\n this.supportTouch = 'ontouchstart' in window;\n\n if (config.creatable === true) {\n this.supportTouchHelper();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n const { schedulerData } = this.props;\n this.supportTouchHelper('remove');\n if (schedulerData.config.creatable) {\n this.supportTouchHelper();\n }\n }\n }\n\n supportTouchHelper = (evType = 'add') => {\n const ev = evType === 'add' ? this.eventContainer.addEventListener : this.eventContainer.removeEventListener;\n if (this.supportTouch) {\n // ev('touchstart', this.initDrag, false);\n } else {\n ev('mousedown', this.initDrag, false);\n }\n };\n\n initDrag = ev => {\n const { isSelecting } = this.state;\n if (isSelecting) return;\n if ((ev.srcElement || ev.target) !== this.eventContainer) return;\n\n ev.stopPropagation();\n\n const { resourceEvents } = this.props;\n if (resourceEvents.groupOnly) return;\n const [clientX, toReturn] = this.dragHelper(ev, 'init');\n\n if (toReturn) {\n return;\n }\n\n const { schedulerData } = this.props;\n const cellWidth = schedulerData.getContentCellWidth();\n const pos = getPos(this.eventContainer);\n const startX = clientX - pos.x;\n const leftIndex = Math.floor(startX / cellWidth);\n const left = leftIndex * cellWidth;\n const rightIndex = Math.ceil(startX / cellWidth);\n const width = (rightIndex - leftIndex) * cellWidth;\n\n this.setState({ startX, left, leftIndex, width, rightIndex, isSelecting: true });\n\n if (this.supportTouch) {\n document.documentElement.addEventListener('touchmove', this.doDrag, false);\n document.documentElement.addEventListener('touchend', this.stopDrag, false);\n document.documentElement.addEventListener('touchcancel', this.cancelDrag, false);\n } else {\n document.documentElement.addEventListener('mousemove', this.doDrag, false);\n document.documentElement.addEventListener('mouseup', this.stopDrag, false);\n }\n document.onselectstart = () => false;\n document.ondragstart = () => false;\n };\n\n doDrag = ev => {\n ev.stopPropagation();\n\n const [clientX, toReturn] = this.dragHelper(ev, 'do');\n\n if (toReturn) {\n return;\n }\n const { startX } = this.state;\n const { schedulerData } = this.props;\n const { headers } = schedulerData;\n const cellWidth = schedulerData.getContentCellWidth();\n const pos = getPos(this.eventContainer);\n const currentX = clientX - pos.x;\n let leftIndex = Math.floor(Math.min(startX, currentX) / cellWidth);\n leftIndex = leftIndex < 0 ? 0 : leftIndex;\n const left = leftIndex * cellWidth;\n let rightIndex = Math.ceil(Math.max(startX, currentX) / cellWidth);\n rightIndex = rightIndex > headers.length ? headers.length : rightIndex;\n const width = (rightIndex - leftIndex) * cellWidth;\n\n this.setState({ leftIndex, left, rightIndex, width, isSelecting: true });\n };\n\n dragHelper = (ev, dragType) => {\n let clientX = 0;\n if (this.supportTouch) {\n if (ev.changedTouches.length === 0) return [clientX, true];\n const touch = ev.changedTouches[0];\n clientX = touch.pageX;\n } else if (dragType === 'init') {\n if (ev.buttons !== undefined && ev.buttons !== 1) return [clientX, true];\n clientX = ev.clientX;\n } else {\n clientX = ev.clientX;\n }\n return [clientX, false];\n };\n\n stopDrag = ev => {\n ev.stopPropagation();\n\n const { schedulerData, newEvent, resourceEvents } = this.props;\n const { headers, events, config, cellUnit, localeDayjs } = schedulerData;\n const { leftIndex, rightIndex } = this.state;\n if (this.supportTouch) {\n document.documentElement.removeEventListener('touchmove', this.doDrag, false);\n document.documentElement.removeEventListener('touchend', this.stopDrag, false);\n document.documentElement.removeEventListener('touchcancel', this.cancelDrag, false);\n } else {\n document.documentElement.removeEventListener('mousemove', this.doDrag, false);\n document.documentElement.removeEventListener('mouseup', this.stopDrag, false);\n }\n document.onselectstart = null;\n document.ondragstart = null;\n\n const startTime = headers[leftIndex].time;\n let endTime = resourceEvents.headerItems[rightIndex - 1].end;\n if (cellUnit !== CellUnit.Hour) {\n endTime = localeDayjs(new Date(resourceEvents.headerItems[rightIndex - 1].start))\n .hour(23)\n .minute(59)\n .second(59)\n .format(DATETIME_FORMAT);\n }\n const { slotId } = resourceEvents;\n const { slotName } = resourceEvents;\n\n this.setState({\n startX: 0,\n leftIndex: 0,\n left: 0,\n rightIndex: 0,\n width: 0,\n isSelecting: false,\n });\n\n let hasConflict = false;\n if (config.checkConflict) {\n const start = localeDayjs(new Date(startTime));\n const end = localeDayjs(endTime);\n\n events.forEach(e => {\n if (schedulerData._getEventSlotId(e) === slotId) {\n const eStart = localeDayjs(e.start);\n const eEnd = localeDayjs(e.end);\n if (\n (start >= eStart && start < eEnd) ||\n (end > eStart && end <= eEnd) ||\n (eStart >= start && eStart < end) ||\n (eEnd > start && eEnd <= end)\n )\n hasConflict = true;\n }\n });\n }\n\n if (hasConflict) {\n const { conflictOccurred } = this.props;\n if (conflictOccurred !== undefined) {\n conflictOccurred(\n schedulerData,\n 'New',\n {\n id: undefined,\n start: startTime,\n end: endTime,\n slotId,\n slotName,\n title: undefined,\n },\n DnDTypes.EVENT,\n slotId,\n slotName,\n startTime,\n endTime\n );\n } else {\n console.log('Conflict occurred, set conflictOccurred func in Scheduler to handle it');\n }\n } else if (newEvent !== undefined) newEvent(schedulerData, slotId, slotName, startTime, endTime);\n };\n\n cancelDrag = ev => {\n ev.stopPropagation();\n\n const { isSelecting } = this.state;\n if (isSelecting) {\n document.documentElement.removeEventListener('touchmove', this.doDrag, false);\n document.documentElement.removeEventListener('touchend', this.stopDrag, false);\n document.documentElement.removeEventListener('touchcancel', this.cancelDrag, false);\n document.onselectstart = null;\n document.ondragstart = null;\n this.setState({\n startX: 0,\n leftIndex: 0,\n left: 0,\n rightIndex: 0,\n width: 0,\n isSelecting: false,\n });\n }\n };\n\n onAddMoreClick = headerItem => {\n const { onSetAddMoreState, resourceEvents, schedulerData } = this.props;\n if (onSetAddMoreState) {\n const { config } = schedulerData;\n const cellWidth = schedulerData.getContentCellWidth();\n const index = resourceEvents.headerItems.indexOf(headerItem);\n if (index !== -1) {\n let left = index * (cellWidth - 1);\n const pos = getPos(this.eventContainer);\n left += pos.x;\n const top = pos.y;\n const height = (headerItem.count + 1) * config.eventItemLineHeight + 20;\n\n onSetAddMoreState({\n headerItem,\n left,\n top,\n height,\n });\n }\n }\n };\n\n eventContainerRef = element => {\n this.eventContainer = element;\n // Also set the drop ref if it exists\n const { dropRef } = this.props;\n if (dropRef) {\n dropRef(element);\n }\n };\n\n render() {\n const { resourceEvents, schedulerData, dndSource } = this.props;\n const { cellUnit, startDate, endDate, config, localeDayjs } = schedulerData;\n const { isSelecting, left, width } = this.state;\n const cellWidth = schedulerData.getContentCellWidth();\n const cellMaxEvents = schedulerData.getCellMaxEvents();\n const rowWidth = schedulerData.getContentTableWidth();\n\n const selectedArea = isSelecting ? <SelectedArea {...this.props} left={left} width={width} /> : <div />;\n\n const eventList = [];\n resourceEvents.headerItems.forEach((headerItem, index) => {\n if (headerItem.count > 0 || headerItem.summary !== undefined) {\n const isTop =\n config.summaryPos === SummaryPos.TopRight ||\n config.summaryPos === SummaryPos.Top ||\n config.summaryPos === SummaryPos.TopLeft;\n const marginTop = resourceEvents.hasSummary && isTop ? 1 + config.eventItemLineHeight : 1;\n const renderEventsMaxIndex = headerItem.addMore === 0 ? cellMaxEvents : headerItem.addMoreIndex;\n\n headerItem.events.forEach((evt, idx) => {\n if (idx < renderEventsMaxIndex && evt !== undefined && evt.render) {\n let durationStart = localeDayjs(new Date(startDate));\n let durationEnd = localeDayjs(endDate);\n if (cellUnit === CellUnit.Hour) {\n durationStart = localeDayjs(new Date(startDate)).add(config.dayStartFrom, 'hours');\n durationEnd = localeDayjs(endDate).add(config.dayStopTo + 1, 'hours');\n }\n const eventStart = localeDayjs(evt.eventItem.start);\n const eventEnd = localeDayjs(evt.eventItem.end);\n const isStart = eventStart >= durationStart;\n const isEnd = eventEnd <= durationEnd;\n const left = index * cellWidth + (index > 0 ? 2 : 3);\n const width =\n evt.span * cellWidth - (index > 0 ? 5 : 6) > 0 ? evt.span * cellWidth - (index > 0 ? 5 : 6) : 0;\n const top = marginTop + idx * config.eventItemLineHeight;\n const eventItem = (\n <EventItem\n {...this.props}\n key={evt.eventItem.id}\n eventItem={evt.eventItem}\n dndSource={dndSource}\n isStart={isStart}\n isEnd={isEnd}\n isInPopover={false}\n left={left}\n width={width}\n top={top}\n leftIndex={index}\n rightIndex={index + evt.span}\n />\n );\n eventList.push(eventItem);\n }\n });\n\n if (headerItem.addMore > 0) {\n const left = index * cellWidth + (index > 0 ? 2 : 3);\n const width = cellWidth - (index > 0 ? 5 : 6);\n const top = marginTop + headerItem.addMoreIndex * config.eventItemLineHeight;\n const addMoreItem = (\n <AddMore\n {...this.props}\n key={headerItem.time}\n headerItem={headerItem}\n number={headerItem.addMore}\n left={left}\n width={width}\n top={top}\n clickAction={this.onAddMoreClick}\n />\n );\n eventList.push(addMoreItem);\n }\n\n if (headerItem.summary !== undefined) {\n const top = isTop ? 1 : resourceEvents.rowHeight - config.eventItemLineHeight + 1;\n const left = index * cellWidth + (index > 0 ? 2 : 3);\n const width = cellWidth - (index > 0 ? 5 : 6);\n const key = `${resourceEvents.slotId}_${headerItem.time}`;\n const summary = (\n <Summary\n key={key}\n schedulerData={schedulerData}\n summary={headerItem.summary}\n left={left}\n width={width}\n top={top}\n />\n );\n eventList.push(summary);\n }\n }\n });\n\n const eventContainer = (\n <div ref={this.eventContainerRef} className=\"event-container\" style={{ height: resourceEvents.rowHeight }}>\n {selectedArea}\n {eventList}\n </div>\n );\n return (\n <tr>\n <td style={{ width: rowWidth }}>{eventContainer}</td>\n </tr>\n );\n }\n}\n\n// Wrapper component to use useDrop hook\nconst ResourceEventsWithDnD = props => {\n const { schedulerData, dndContext } = props;\n const { config } = schedulerData;\n const componentRef = React.useRef(null);\n\n // Always call useDrop unconditionally (Rules of Hooks)\n // Disable functionality when drag and drop is not enabled\n const [{ isOver, canDrop }, dropRef] = useDrop(() => {\n // If drag and drop is disabled, return a no-op spec\n if (!config.dragAndDropEnabled || !dndContext) {\n return {\n accept: [],\n collect: () => ({ isOver: false, canDrop: false }),\n };\n }\n\n const spec = dndContext.getDropSpec();\n return {\n accept: [...dndContext.sourceMap.keys()],\n drop: (item, monitor) => spec.drop(props, monitor, componentRef.current),\n hover: (item, monitor) => spec.hover(props, monitor, componentRef.current),\n canDrop: (item, monitor) => spec.canDrop(props, monitor),\n collect: monitor => ({\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n }),\n };\n }, [props, dndContext, config.dragAndDropEnabled]);\n\n return <ResourceEvents ref={componentRef} {...props} dropRef={dropRef} isOver={isOver} canDrop={canDrop} />;\n};\n\nResourceEventsWithDnD.displayName = 'ResourceEventsWithDnD';\n\nexport default ResourceEventsWithDnD;\n","import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons';\nimport PropTypes from 'prop-types';\n\nfunction ResourceView({\n schedulerData,\n contentScrollbarHeight,\n slotClickedFunc,\n slotItemTemplateResolver,\n toggleExpandFunc,\n}) {\n const { renderData } = schedulerData;\n const width = schedulerData.getResourceTableWidth() - 2;\n const paddingBottom = contentScrollbarHeight;\n const displayRenderData = renderData.filter(o => o.render);\n\n const handleToggleExpand = item => {\n if (toggleExpandFunc) {\n toggleExpandFunc(schedulerData, item.slotId);\n }\n };\n\n const renderSlotItem = (item, indents) => {\n let indent = <span key={`es${item.indent}`} className=\"expander-space\" />;\n\n const iconProps = { onClick: () => handleToggleExpand(item) };\n\n if (item.hasChildren) {\n indent = item.expanded ? (\n <MinusSquareOutlined key={`es${item.indent}`} {...iconProps} />\n ) : (\n <PlusSquareOutlined key={`es${item.indent}`} {...iconProps} />\n );\n }\n\n indents.push(indent);\n\n const slotCell = slotClickedFunc ? (\n <span className=\"slot-cell\">\n {indents}\n <button\n type=\"button\"\n style={{ cursor: 'pointer' }}\n className=\"slot-text rbs-txt-btn-dis\"\n onClick={() => slotClickedFunc(schedulerData, item)}\n >\n {item.slotName}\n </button>\n </span>\n ) : (\n <span className=\"slot-cell\">\n {indents}\n <button\n type=\"button\"\n className=\"slot-text rbs-txt-btn-dis\"\n style={{ cursor: slotClickedFunc === undefined ? undefined : 'pointer' }}\n >\n {item.slotName}\n </button>\n </span>\n );\n\n let slotItem = (\n <div title={item.slotTitle || item.slotName} className=\"overflow-text header2-text\" style={{ textAlign: 'left' }}>\n {slotCell}\n </div>\n );\n\n if (slotItemTemplateResolver) {\n const resolvedTemplate = slotItemTemplateResolver(\n schedulerData,\n item,\n slotClickedFunc,\n width,\n 'overflow-text header2-text'\n );\n if (resolvedTemplate) {\n slotItem = resolvedTemplate;\n }\n }\n\n const tdStyle = {\n height: item.rowHeight,\n backgroundColor: item.groupOnly ? schedulerData.config.groupOnlySlotColor : undefined,\n };\n\n return (\n <tr key={item.slotId}>\n <td data-resource-id={item.slotId} style={tdStyle}>\n {slotItem}\n </td>\n </tr>\n );\n };\n\n const resourceList = displayRenderData.map(item => {\n const indents = [];\n for (let i = 0; i < item.indent; i += 1) {\n indents.push(<span key={`es${i}`} className=\"expander-space\" />);\n }\n\n return renderSlotItem(item, indents);\n });\n\n return (\n <div style={{ paddingBottom }}>\n <table className=\"resource-table\">\n <tbody>{resourceList}</tbody>\n </table>\n </div>\n );\n}\n\nResourceView.propTypes = {\n schedulerData: PropTypes.object.isRequired,\n contentScrollbarHeight: PropTypes.number.isRequired,\n slotClickedFunc: PropTypes.func,\n slotItemTemplateResolver: PropTypes.func,\n toggleExpandFunc: PropTypes.func,\n};\n\nexport default ResourceView;\n","import { SummaryPos, ViewType } from './default';\n\nexport default {\n schedulerWidth: '100%',\n besidesWidth: 20,\n underneathHeight: 20,\n schedulerMaxHeight: 0,\n tableHeaderHeight: 40,\n schedulerContentHeight: '500px',\n\n responsiveByParent: false,\n\n agendaResourceTableWidth: 160,\n agendaMaxEventWidth: 100,\n\n dayResourceTableWidth: 160,\n weekResourceTableWidth: '16%',\n monthResourceTableWidth: 160,\n quarterResourceTableWidth: 160,\n yearResourceTableWidth: 160,\n customResourceTableWidth: 160,\n\n dayCellWidth: 30,\n weekCellWidth: '12%',\n monthCellWidth: 80,\n quarterCellWidth: 80,\n yearCellWidth: 80,\n customCellWidth: 80,\n\n dayMaxEvents: 99,\n weekMaxEvents: 99,\n monthMaxEvents: 99,\n quarterMaxEvents: 99,\n yearMaxEvents: 99,\n customMaxEvents: 99,\n\n eventItemPopoverTrigger: 'hover',\n eventItemPopoverPlacement: 'bottomLeft',\n eventItemPopoverWidth: 300,\n\n eventItemHeight: 22,\n eventItemLineHeight: 24,\n nonAgendaSlotMinHeight: 0,\n dayStartFrom: 0,\n dayStopTo: 23,\n defaultEventBgColor: '#80C5F6',\n selectedAreaColor: '#7EC2F3',\n nonWorkingTimeHeadColor: '#999999',\n nonWorkingTimeHeadBgColor: '#fff0f6',\n nonWorkingTimeBodyBgColor: '#fff0f6',\n summaryColor: '#666',\n summaryPos: SummaryPos.TopRight,\n groupOnlySlotColor: '#F8F8F8',\n\n startResizable: true,\n endResizable: true,\n movable: true,\n creatable: true,\n crossResourceMove: true,\n checkConflict: false,\n scrollToSpecialDayjsEnabled: true,\n eventItemPopoverEnabled: true,\n eventItemPopoverShowColor: true,\n calendarPopoverEnabled: true,\n recurringEventsEnabled: true,\n viewChangeSpinEnabled: true,\n dateChangeSpinEnabled: true,\n headerEnabled: true,\n resourceViewEnabled: true,\n displayWeekend: true,\n relativeMove: true,\n defaultExpanded: true,\n dragAndDropEnabled: true,\n\n schedulerHeaderEventsFuncsTimeoutMs: 100,\n\n resourceName: 'Resource Name',\n taskName: 'Task Name',\n agendaViewHeader: 'Agenda',\n addMorePopoverHeaderFormat: 'MMM D, YYYY dddd',\n eventItemPopoverDateFormat: 'MMM D',\n nonAgendaDayCellHeaderFormat: 'ha',\n nonAgendaWeekCellHeaderFormat: 'ww/YYYY',\n nonAgendaMonthCellHeaderFormat: 'MMM YYYY',\n nonAgendaYearCellHeaderFormat: 'YYYY',\n nonAgendaOtherCellHeaderFormat: 'ddd M/D',\n\n minuteStep: 30,\n\n views: [\n { viewName: 'Day', viewType: ViewType.Day, showAgenda: false, isEventPerspective: false },\n { viewName: 'Week', viewType: ViewType.Week, showAgenda: false, isEventPerspective: false },\n { viewName: 'Month', viewType: ViewType.Month, showAgenda: false, isEventPerspective: false },\n { viewName: 'Quarter', viewType: ViewType.Quarter, showAgenda: false, isEventPerspective: false },\n { viewName: 'Year', viewType: ViewType.Year, showAgenda: false, isEventPerspective: false },\n ],\n};\n","import { ViewType, CellUnit } from '../config/default';\n\nexport const getSummary = () => ({ text: 'Summary', color: 'red', fontSize: '1.2rem' });\n\nexport const getCustomDate = (schedulerData, num, date = schedulerData.startDate) => {\n const { viewType, localeDayjs } = schedulerData;\n let startDate;\n let endDate;\n let cellUnit;\n\n if (viewType === ViewType.Custom1) {\n const monday = localeDayjs(new Date(date)).startOf('isoWeek');\n startDate = num === 0 ? monday : localeDayjs(new Date(monday)).add(2 * num, 'weeks');\n endDate = localeDayjs(new Date(startDate)).add(1, 'weeks').endOf('isoWeek');\n cellUnit = CellUnit.Day;\n } else if (viewType === ViewType.Custom2) {\n const firstDayOfMonth = localeDayjs(new Date(date)).startOf('month');\n startDate = num === 0 ? firstDayOfMonth : localeDayjs(new Date(firstDayOfMonth)).add(2 * num, 'months');\n endDate = localeDayjs(new Date(startDate)).add(1, 'months').endOf('month');\n cellUnit = CellUnit.Day;\n } else {\n startDate = num === 0 ? date : localeDayjs(new Date(date)).add(2 * num, 'days');\n endDate = localeDayjs(new Date(startDate)).add(1, 'days');\n cellUnit = CellUnit.Hour;\n }\n\n return { startDate, endDate, cellUnit };\n};\n\nexport const getNonAgendaViewBodyCellBgColor = (schedulerData, slotId, header) =>\n header.nonWorkingTime ? undefined : '#87e8de';\n\nexport const getDateLabel = (schedulerData, viewType, startDate, endDate) => {\n const { localeDayjs } = schedulerData;\n const start = localeDayjs(new Date(startDate));\n const end = localeDayjs(endDate);\n let dateLabel = '';\n\n if (\n viewType === ViewType.Week ||\n (start !== end && (viewType === ViewType.Custom || viewType === ViewType.Custom1 || viewType === ViewType.Custom2))\n ) {\n dateLabel = `${start.format('MMM D')}-${end.format('D, YYYY')}`;\n if (start.month() !== end.month()) dateLabel = `${start.format('MMM D')}-${end.format('MMM D, YYYY')}`;\n if (start.year() !== end.year()) dateLabel = `${start.format('MMM D, YYYY')}-${end.format('MMM D, YYYY')}`;\n } else if (viewType === ViewType.Month) {\n dateLabel = start.format('MMMM YYYY');\n } else if (viewType === ViewType.Quarter) {\n dateLabel = `${start.format('MMM D')}-${end.format('MMM D, YYYY')}`;\n } else if (viewType === ViewType.Year) {\n dateLabel = start.format('YYYY');\n } else {\n dateLabel = start.format('MMM D, YYYY');\n }\n\n return dateLabel;\n};\n\nexport const getEventText = (schedulerData, event) =>\n schedulerData.isEventPerspective\n ? schedulerData.resources.find(item => item.id === event.resourceId)?.name || event.title\n : event.title;\n\nexport const getScrollSpecialDayjs = schedulerData => {\n const { localeDayjs } = schedulerData;\n return localeDayjs(new Date());\n};\n\nexport const isNonWorkingTime = (schedulerData, time) => {\n const { localeDayjs, cellUnit } = schedulerData;\n if (cellUnit === CellUnit.Hour) {\n const hour = localeDayjs(new Date(time)).hour();\n return hour < 9 || hour > 18;\n }\n const dayOfWeek = localeDayjs(new Date(time)).day();\n return dayOfWeek === 0 || dayOfWeek === 6;\n};\n\nexport default {\n getSummaryFunc: undefined,\n getCustomDateFunc: undefined,\n getNonAgendaViewBodyCellBgColorFunc: undefined,\n getScrollSpecialDayjsFunc: getScrollSpecialDayjs,\n getDateLabelFunc: getDateLabel,\n getEventTextFunc: getEventText,\n isNonWorkingTimeFunc: isNonWorkingTime,\n};\n","import dayjs from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport utc from 'dayjs/plugin/utc';\nimport weekday from 'dayjs/plugin/weekday';\nimport { RRuleSet, rrulestr } from 'rrule';\nimport { CellUnit, DATE_FORMAT, DATETIME_FORMAT, ViewType } from '../config/default';\nimport config from '../config/scheduler';\nimport behaviors from '../helper/behaviors';\n\nexport default class SchedulerData {\n constructor(\n date = dayjs(),\n viewType = ViewType.Week,\n showAgenda = false,\n isEventPerspective = false,\n newConfig = undefined,\n newBehaviors = undefined\n ) {\n this.resources = [];\n this.events = [];\n this.eventGroups = [];\n this.eventGroupsAutoGenerated = true;\n this.viewType = viewType;\n this.cellUnit = viewType === ViewType.Day ? CellUnit.Hour : CellUnit.Day;\n this.showAgenda = showAgenda;\n this.isEventPerspective = isEventPerspective;\n this.resizing = false;\n this.scrollToSpecialDayjs = false;\n this.documentWidth = 0;\n this.documentHeight = 0;\n this.schedulerHeaderHeight = 0;\n this._shouldReloadViewType = false;\n\n this.calendarPopoverLocale = undefined;\n dayjs.extend(isoWeek);\n dayjs.extend(quarterOfYear);\n dayjs.extend(weekday);\n dayjs.extend(utc);\n this.localeDayjs = dayjs;\n this.config = newConfig === undefined ? config : { ...config, ...newConfig };\n this._validateMinuteStep(this.config.minuteStep);\n this.behaviors = newBehaviors === undefined ? behaviors : { ...behaviors, ...newBehaviors };\n this._resolveDate(0, date);\n this._createHeaders();\n this._createRenderData();\n }\n\n setSchedulerLocale(preset) {\n if (!preset) return;\n\n this.localeDayjs.locale(preset);\n this._shouldReloadViewType = true;\n this.setViewType(this.viewType, this.showAgenda, this.isEventPerspective);\n }\n\n setCalendarPopoverLocale(lang) {\n if (lang) {\n this.calendarPopoverLocale = lang;\n }\n }\n\n setResources(resources) {\n this._validateResource(resources);\n this.resources = Array.from(new Set(resources));\n this._createRenderData();\n this.setScrollToSpecialDayjs(true);\n }\n\n setEventGroupsAutoGenerated(autoGenerated) {\n this.eventGroupsAutoGenerated = autoGenerated;\n }\n\n // optional\n setEventGroups(eventGroups) {\n this._validateEventGroups(eventGroups);\n this.eventGroups = Array.from(new Set(eventGroups));\n this.eventGroupsAutoGenerated = false;\n this._createRenderData();\n this.setScrollToSpecialDayjs(true);\n }\n\n setMinuteStep(minuteStep) {\n if (this.config.minuteStep !== minuteStep) {\n this._validateMinuteStep(minuteStep);\n this.config.minuteStep = minuteStep;\n this._createHeaders();\n this._createRenderData();\n }\n }\n\n setBesidesWidth(besidesWidth) {\n if (besidesWidth >= 0) {\n this.config.besidesWidth = besidesWidth;\n }\n }\n\n setUnderneathHeight(underneathHeight) {\n if (underneathHeight >= 0) {\n this.config.underneathHeight = underneathHeight;\n }\n }\n\n getMinuteStepsInHour() {\n return 60 / this.config.minuteStep;\n }\n\n addResource(resource) {\n const existedResources = this.resources.filter(x => x.id === resource.id);\n if (existedResources.length === 0) {\n this.resources.push(resource);\n this._createRenderData();\n }\n }\n\n addEventGroup(eventGroup) {\n const existedEventGroups = this.eventGroups.filter(x => x.id === eventGroup.id);\n if (existedEventGroups.length === 0) {\n this.eventGroups.push(eventGroup);\n this._createRenderData();\n }\n }\n\n removeEventGroupById(eventGroupId) {\n let index = -1;\n this.eventGroups.forEach((item, idx) => {\n if (item.id === eventGroupId) index = idx;\n });\n if (index !== -1) this.eventGroups.splice(index, 1);\n }\n\n containsEventGroupId(eventGroupId) {\n let index = -1;\n this.eventGroups.forEach((item, idx) => {\n if (item.id === eventGroupId) index = idx;\n });\n return index !== -1;\n }\n\n setEvents(events) {\n this._validateEvents(events);\n this.events = Array.from(events);\n if (this.eventGroupsAutoGenerated) this._generateEventGroups();\n if (this.config.recurringEventsEnabled) this._handleRecurringEvents();\n\n this._createRenderData();\n }\n\n setScrollToSpecialDayjs(scrollToSpecialDayjs) {\n if (this.config.scrollToSpecialDayjsEnabled) this.scrollToSpecialDayjs = scrollToSpecialDayjs;\n }\n\n prev() {\n this._resolveDate(-1);\n this.events = [];\n this._createHeaders();\n this._createRenderData();\n }\n\n next() {\n this._resolveDate(1);\n this.events = [];\n this._createHeaders();\n this._createRenderData();\n }\n\n setDate(date = dayjs(new Date())) {\n this._resolveDate(0, date);\n this.events = [];\n this._createHeaders();\n this._createRenderData();\n }\n\n setViewType(viewType = ViewType.Week, showAgenda = false, isEventPerspective = false) {\n this.showAgenda = showAgenda;\n this.isEventPerspective = isEventPerspective;\n this.cellUnit = CellUnit.Day;\n\n if (this.viewType !== viewType || this._shouldReloadViewType) {\n let date = this.startDate;\n\n if (viewType === ViewType.Custom || viewType === ViewType.Custom1 || viewType === ViewType.Custom2) {\n this.viewType = viewType;\n this._resolveDate(0, date);\n } else {\n if (this.viewType < viewType) {\n if (viewType === ViewType.Week) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('isoWeek');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('isoWeek');\n } else if (viewType === ViewType.Month) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('month');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('month');\n } else if (viewType === ViewType.Quarter) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('quarter');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('quarter');\n } else if (viewType === ViewType.Year) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('year');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('year');\n }\n } else {\n const start = this.localeDayjs(new Date(this.startDate));\n const end = this.localeDayjs(new Date(this.endDate)).add(1, 'days');\n\n if (this.selectDate !== undefined) {\n const selectDate = this.localeDayjs(new Date(this.selectDate));\n if (selectDate >= start && selectDate < end) {\n date = this.selectDate;\n }\n }\n\n const now = this.localeDayjs();\n if (now >= start && now < end) {\n date = now.startOf('day');\n }\n\n if (viewType === ViewType.Day) {\n this.startDate = date;\n this.endDate = this.startDate;\n this.cellUnit = CellUnit.Hour;\n } else if (viewType === ViewType.Week) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('isoWeek');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('isoWeek');\n } else if (viewType === ViewType.Month) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('month');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('month');\n } else if (viewType === ViewType.Quarter) {\n this.startDate = this.localeDayjs(new Date(date)).startOf('quarter');\n this.endDate = this.localeDayjs(new Date(this.startDate)).endOf('quarter');\n }\n }\n\n this.viewType = viewType;\n }\n\n this._shouldReloadViewType = false;\n\n this.events = [];\n this._createHeaders();\n this._createRenderData();\n this.setScrollToSpecialDayjs(true);\n }\n }\n\n setSchedulerMaxHeight(newSchedulerMaxHeight) {\n this.config.schedulerMaxHeight = newSchedulerMaxHeight;\n }\n\n isSchedulerResponsive() {\n return !!this.config.schedulerWidth.endsWith && this.config.schedulerWidth.endsWith('%');\n }\n\n toggleExpandStatus(slotId) {\n let slotEntered = false;\n let slotIndent = -1;\n let isExpanded = false;\n const expandedMap = new Map();\n this.renderData.forEach(item => {\n if (slotEntered === false) {\n if (item.slotId === slotId && item.hasChildren) {\n slotEntered = true;\n\n isExpanded = !item.expanded;\n item.expanded = isExpanded;\n slotIndent = item.indent;\n expandedMap.set(item.indent, {\n expanded: item.expanded,\n render: item.render,\n });\n }\n } else if (item.indent > slotIndent) {\n const expandStatus = expandedMap.get(item.indent - 1);\n item.render = expandStatus.expanded && expandStatus.render;\n\n if (item.hasChildren) {\n expandedMap.set(item.indent, {\n expanded: item.expanded,\n render: item.render,\n });\n }\n } else {\n slotEntered = false;\n }\n });\n }\n\n isResourceViewResponsive() {\n const resourceTableWidth = this.getResourceTableConfigWidth();\n return !!resourceTableWidth.endsWith && resourceTableWidth.endsWith('%');\n }\n\n isContentViewResponsive() {\n const contentCellWidth = this.getContentCellConfigWidth();\n return !!contentCellWidth.endsWith && contentCellWidth.endsWith('%');\n }\n\n getSchedulerWidth() {\n const baseWidth =\n this.documentWidth - this.config.besidesWidth > 0 ? this.documentWidth - this.config.besidesWidth : 0;\n return this.isSchedulerResponsive()\n ? parseInt((baseWidth * Number(this.config.schedulerWidth.slice(0, -1))) / 100, 10)\n : this.config.schedulerWidth;\n }\n\n getSchedulerHeight() {\n // Use the header height tracked in SchedulerData (set via _setSchedulerHeaderHeight)\n const headerHeight = this.schedulerHeaderHeight || 0;\n const baseHeight =\n this.documentHeight - headerHeight - this.config.tableHeaderHeight - (this.config.underneathHeight || 0);\n const validBaseHeight = baseHeight > 0 ? baseHeight : 0;\n if (\n this.isSchedulerResponsive() &&\n this.config.schedulerHeight &&\n this.config.schedulerHeight.endsWith &&\n this.config.schedulerHeight.endsWith('%')\n ) {\n return parseInt((validBaseHeight * Number(this.config.schedulerHeight.slice(0, -1))) / 100, 10);\n }\n // fallback to max height if set, else just use base height\n return this.config.schedulerMaxHeight || validBaseHeight;\n }\n\n getResourceTableWidth() {\n const resourceTableConfigWidth = this.getResourceTableConfigWidth();\n const schedulerWidth = this.getSchedulerWidth();\n let resourceTableWidth = this.isResourceViewResponsive()\n ? parseInt((schedulerWidth * Number(resourceTableConfigWidth.slice(0, -1))) / 100, 10)\n : resourceTableConfigWidth;\n if (this.isSchedulerResponsive() && this.getContentTableWidth() + resourceTableWidth < schedulerWidth)\n resourceTableWidth = schedulerWidth - this.getContentTableWidth();\n return resourceTableWidth;\n }\n\n getContentCellWidth() {\n const contentCellConfigWidth = this.getContentCellConfigWidth();\n const schedulerWidth = this.getSchedulerWidth();\n return this.isContentViewResponsive()\n ? parseInt((schedulerWidth * Number(contentCellConfigWidth.slice(0, -1))) / 100, 10)\n : contentCellConfigWidth;\n }\n\n getContentTableWidth() {\n return this.headers.length * this.getContentCellWidth();\n }\n\n getScrollToSpecialDayjs() {\n if (this.config.scrollToSpecialDayjsEnabled) return this.scrollToSpecialDayjs;\n return false;\n }\n\n getSlots() {\n return this.isEventPerspective ? this.eventGroups : this.resources;\n }\n\n getSlotById(slotId) {\n const slots = this.getSlots();\n let slot;\n slots.forEach(item => {\n if (item.id === slotId) slot = item;\n });\n return slot;\n }\n\n getResourceById(resourceId) {\n let resource;\n this.resources.forEach(item => {\n if (item.id === resourceId) resource = item;\n });\n return resource;\n }\n\n getTableHeaderHeight() {\n return this.config.tableHeaderHeight;\n }\n\n getSchedulerContentDesiredHeight() {\n let height = 0;\n this.renderData.forEach(item => {\n if (item.render) height += item.rowHeight;\n });\n return height;\n }\n\n getCellMaxEvents() {\n const viewConfigMap = {\n [ViewType.Week]: 'weekMaxEvents',\n [ViewType.Day]: 'dayMaxEvents',\n [ViewType.Month]: 'monthMaxEvents',\n [ViewType.Year]: 'yearMaxEvents',\n [ViewType.Quarter]: 'quarterMaxEvents',\n };\n\n const configProperty = viewConfigMap[this.viewType] || 'customMaxEvents';\n\n return this.config[configProperty];\n }\n\n getCalendarPopoverLocale() {\n return this.calendarPopoverLocale;\n }\n\n getSelectedDate() {\n return this.selectDate.format(DATE_FORMAT);\n }\n\n getViewStartDate() {\n return this.startDate;\n }\n\n getViewEndDate() {\n return this.endDate;\n }\n\n getViewDates() {\n return {\n startDate: this.startDate,\n endDate: this.endDate,\n };\n }\n\n getDateLabel() {\n const start = this.localeDayjs(new Date(this.startDate));\n const end = this.localeDayjs(new Date(this.endDate));\n let dateLabel = start.format('LL');\n\n if (start !== end) dateLabel = `${start.format('LL')}-${end.format('LL')}`;\n\n if (this.behaviors.getDateLabelFunc)\n dateLabel = this.behaviors.getDateLabelFunc(this, this.viewType, this.startDate, this.endDate);\n\n return dateLabel;\n }\n\n addEvent(newEvent) {\n this._attachEvent(newEvent);\n if (this.eventGroupsAutoGenerated) this._generateEventGroups();\n this._createRenderData();\n }\n\n updateEventStart(event, newStart) {\n this._detachEvent(event);\n event.start = newStart;\n this._attachEvent(event);\n this._createRenderData();\n }\n\n updateEventEnd(event, newEnd) {\n event.end = newEnd;\n this._createRenderData();\n }\n\n swapEvent(eventSource, eventDest) {\n // Swap group or resource IDs\n if (this.isEventPerspective) {\n [eventSource.groupId, eventDest.groupId] = [eventDest.groupId, eventSource.groupId];\n [eventSource.groupName, eventDest.groupName] = [eventDest.groupName, eventSource.groupName];\n } else {\n [eventSource.resourceId, eventDest.resourceId] = [eventDest.resourceId, eventSource.resourceId];\n }\n\n // Swap start and end times\n [eventSource.start, eventDest.start] = [eventDest.start, eventSource.start];\n [eventSource.end, eventDest.end] = [eventDest.end, eventSource.end];\n\n // Update the events\n this._detachEvent(eventSource);\n this._detachEvent(eventDest);\n this._attachEvent(eventSource);\n this._attachEvent(eventDest);\n this._createRenderData();\n }\n\n swapEvent2(eventSource, eventDest) {\n const tempEventSource = { ...eventSource };\n const tempEventDest = { ...eventDest };\n this._detachEvent(eventSource);\n this._detachEvent(eventDest);\n if (this.isEventPerspective) {\n tempEventSource.groupId = eventDest.groupId;\n tempEventSource.groupName = eventDest.groupName;\n tempEventDest.groupId = eventSource.groupId;\n tempEventDest.groupName = eventSource.groupName;\n } else {\n tempEventSource.resourceId = eventDest.resourceId;\n tempEventDest.resourceId = eventSource.resourceId;\n }\n tempEventSource.end = eventDest.end;\n tempEventSource.start = eventDest.start;\n tempEventDest.end = eventSource.end;\n tempEventDest.start = eventSource.start;\n this._attachEvent(tempEventSource);\n this._attachEvent(tempEventDest);\n this._createRenderData();\n }\n\n moveEvent(event, newSlotId, newSlotName, newStart, newEnd) {\n this._detachEvent(event);\n if (this.isEventPerspective) {\n event.groupId = newSlotId;\n event.groupName = newSlotName;\n } else event.resourceId = newSlotId;\n event.end = newEnd;\n event.start = newStart;\n this._attachEvent(event);\n this._createRenderData();\n }\n\n isEventInTimeWindow(eventStart, eventEnd, windowStart, windowEnd) {\n return eventStart < windowEnd && eventEnd > windowStart;\n }\n\n removeEvent(event) {\n const index = this.events.indexOf(event);\n if (index !== -1) {\n this.events.splice(index, 1);\n this._createRenderData();\n }\n }\n\n removeEventById(eventId) {\n let index = -1;\n this.events.forEach((item, idx) => {\n if (item.id === eventId) index = idx;\n });\n if (index !== -1) {\n this.events.splice(index, 1);\n this._createRenderData();\n }\n }\n\n getResourceTableConfigWidth() {\n if (this.showAgenda) {\n return this.config.agendaResourceTableWidth;\n }\n\n const viewConfigMap = {\n [ViewType.Week]: 'weekResourceTableWidth',\n [ViewType.Day]: 'dayResourceTableWidth',\n [ViewType.Month]: 'monthResourceTableWidth',\n [ViewType.Year]: 'yearResourceTableWidth',\n [ViewType.Quarter]: 'quarterResourceTableWidth',\n };\n\n const configProperty = viewConfigMap[this.viewType] || 'customResourceTableWidth';\n\n return this.config[configProperty];\n }\n\n getContentCellConfigWidth() {\n const viewConfigMap = {\n [ViewType.Week]: 'weekCellWidth',\n [ViewType.Day]: 'dayCellWidth',\n [ViewType.Month]: 'monthCellWidth',\n [ViewType.Year]: 'yearCellWidth',\n [ViewType.Quarter]: 'quarterCellWidth',\n };\n\n const configProperty = viewConfigMap[this.viewType] || 'customCellWidth';\n\n return this.config[configProperty];\n }\n\n _setDocumentWidth(documentWidth) {\n if (documentWidth >= 0) {\n this.documentWidth = documentWidth;\n }\n }\n\n _setDocumentHeight(documentHeight) {\n if (documentHeight >= 0) {\n this.documentHeight = documentHeight;\n }\n }\n\n _setSchedulerHeaderHeight(schedulerHeaderHeight) {\n if (schedulerHeaderHeight >= 0) {\n this.schedulerHeaderHeight = schedulerHeaderHeight;\n }\n }\n\n _detachEvent(event) {\n const index = this.events.indexOf(event);\n if (index !== -1) this.events.splice(index, 1);\n }\n\n _attachEvent(event) {\n let pos = 0;\n const eventStart = this.localeDayjs(new Date(event.start));\n this.events.forEach((item, index) => {\n const start = this.localeDayjs(new Date(item.start));\n if (eventStart >= start) pos = index + 1;\n });\n this.events.splice(pos, 0, event);\n }\n\n _handleRecurringEvents() {\n const recurringEvents = this.events.filter(x => !!x.rrule);\n recurringEvents.forEach(item => {\n this._detachEvent(item);\n });\n\n recurringEvents.forEach(item => {\n const windowStart = this.startDate;\n const windowEnd = this.endDate.add(1, 'days');\n const oldStart = this.localeDayjs(new Date(item.start));\n const oldEnd = this.localeDayjs(new Date(item.end));\n let rule = rrulestr(item.rrule);\n let oldDtstart;\n const oldUntil = rule.origOptions.until || windowEnd.toDate();\n if (rule.origOptions.dtstart) {\n oldDtstart = this.localeDayjs(new Date(rule.origOptions.dtstart));\n }\n // rule.origOptions.dtstart = oldStart.toDate();\n if (windowEnd < oldUntil) {\n rule.origOptions.until = windowEnd.toDate();\n }\n\n // reload\n rule = rrulestr(rule.toString());\n if (item.exdates || item.exrule) {\n const rruleSet = new RRuleSet();\n rruleSet.rrule(rule);\n if (item.exrule) {\n rruleSet.exrule(rrulestr(item.exrule));\n }\n if (item.exdates) {\n item.exdates.forEach(exdate => {\n rruleSet.exdate(this.localeDayjs(exdate).toDate());\n });\n }\n rule = rruleSet;\n }\n\n const all = rule.between(new Date(windowStart), new Date(windowEnd));\n all.forEach((time, index) => {\n const newEvent = {\n ...item,\n recurringEventId: item.id,\n recurringEventStart: item.start,\n recurringEventEnd: item.end,\n id: `${item.id}-${index}`,\n start: rule.origOptions.tzid\n ? this.localeDayjs\n .utc(time)\n .utcOffset(this.localeDayjs(new Date()).utcOffset(), true)\n .format(DATETIME_FORMAT)\n : this.localeDayjs(new Date(time)).format(DATETIME_FORMAT),\n end: rule.origOptions.tzid\n ? this.localeDayjs\n .utc(time)\n .utcOffset(this.localeDayjs(new Date()).utcOffset(), true)\n .add(oldEnd.diff(oldStart), 'ms')\n .add(\n this.localeDayjs(new Date(oldUntil)).utcOffset() - this.localeDayjs(new Date(item.start)).utcOffset(),\n 'm'\n )\n .format(DATETIME_FORMAT)\n : this.localeDayjs(new Date(time)).add(oldEnd.diff(oldStart), 'ms').format(DATETIME_FORMAT),\n };\n\n const eventStart = this.localeDayjs(newEvent.start);\n const eventEnd = this.localeDayjs(newEvent.end);\n if (\n this.isEventInTimeWindow(eventStart, eventEnd, windowStart, windowEnd) &&\n (!oldDtstart || eventStart >= oldDtstart)\n ) {\n this._attachEvent(newEvent);\n }\n });\n });\n }\n\n _resolveDate(num, date = undefined) {\n if (date !== undefined) {\n this.selectDate = this.localeDayjs(date);\n }\n\n const setStartAndEndDates = unit => {\n this.startDate = date !== undefined ? this.selectDate.startOf(unit) : this.startDate.add(num, `${unit}s`);\n this.endDate = this.startDate.endOf(unit);\n };\n\n switch (this.viewType) {\n case ViewType.Week:\n if (date !== undefined) {\n this.startDate = this.selectDate.startOf('isoWeek');\n this.endDate = this.startDate.endOf('isoWeek');\n } else {\n this.startDate = this.startDate.add(num, 'weeks');\n this.endDate = this.startDate.endOf('isoWeek');\n }\n break;\n\n case ViewType.Day:\n this.startDate = date !== undefined ? this.selectDate : this.startDate.add(num, 'days');\n this.endDate = this.startDate;\n break;\n\n case ViewType.Month:\n setStartAndEndDates('month');\n break;\n\n case ViewType.Quarter:\n setStartAndEndDates('quarter');\n break;\n\n case ViewType.Year:\n setStartAndEndDates('year');\n break;\n\n case ViewType.Custom:\n case ViewType.Custom1:\n case ViewType.Custom2:\n if (this.behaviors.getCustomDateFunc !== undefined) {\n const customDate = this.behaviors.getCustomDateFunc(this, num, date);\n this.startDate = this.localeDayjs(customDate.startDate);\n this.endDate = this.localeDayjs(customDate.endDate);\n if (customDate.cellUnit) {\n this.cellUnit = customDate.cellUnit;\n }\n } else {\n throw new Error(\n 'This is a custom view type, set behaviors.getCustomDateFunc func ' +\n 'to resolve the time window (startDate and endDate) yourself'\n );\n }\n break;\n\n default:\n break;\n }\n }\n\n // Previous Code\n _createHeaders() {\n const headers = [];\n let start = this.localeDayjs(new Date(this.startDate));\n let end = this.localeDayjs(new Date(this.endDate));\n let header = start;\n\n if (this.showAgenda) {\n headers.push({ time: header.format(DATETIME_FORMAT), nonWorkingTime: false });\n } else if (this.cellUnit === CellUnit.Hour) {\n if (start.hour() === 0) {\n start = start.add(this.config.dayStartFrom, 'hours');\n }\n if (end.hour() === 0) {\n end = end.add(this.config.dayStopTo, 'hours');\n }\n header = start;\n\n let prevHour = -1;\n while (header >= start && header <= end) {\n // prevent doubled hours on time change\n if (header.hour() === prevHour) {\n header = header.add(1, 'hours');\n\n continue;\n }\n prevHour = header.hour();\n const minuteSteps = this.getMinuteStepsInHour();\n for (let i = 0; i < minuteSteps; i += 1) {\n const hour = header.hour();\n if (hour >= this.config.dayStartFrom && hour <= this.config.dayStopTo) {\n const time = header.format(DATETIME_FORMAT);\n const nonWorkingTime = this.behaviors.isNonWorkingTimeFunc(this, time);\n headers.push({ time, nonWorkingTime });\n }\n\n header = header.add(this.config.minuteStep, 'minutes');\n }\n }\n } else if (this.cellUnit === CellUnit.Day) {\n while (header >= start && header <= end) {\n const time = header.format(DATETIME_FORMAT);\n const dayOfWeek = header.day();\n if (this.config.displayWeekend || (dayOfWeek !== 0 && dayOfWeek !== 6)) {\n const nonWorkingTime = this.behaviors.isNonWorkingTimeFunc(this, time);\n headers.push({ time, nonWorkingTime });\n }\n\n header = header.add(1, 'days');\n }\n } else if (this.cellUnit === CellUnit.Week) {\n while (header >= start && header <= end) {\n const time = header.format(DATE_FORMAT);\n headers.push({ time });\n header = header.add(1, 'weeks').startOf('isoWeek');\n }\n } else if (this.cellUnit === CellUnit.Month) {\n while (header >= start && header <= end) {\n const time = header.format(DATE_FORMAT);\n headers.push({ time });\n header = header.add(1, 'months').startOf('month');\n }\n } else if (this.cellUnit === CellUnit.Year) {\n while (header >= start && header <= end) {\n const time = header.format(DATE_FORMAT);\n headers.push({ time });\n header = header.add(1, 'years').startOf('year');\n }\n }\n\n this.headers = headers;\n }\n\n // Fix Optimited code\n // _createHeaders() {\n // const headers = [];\n // const start = this.localeDayjs(new Date(this.startDate));\n // const end = this.localeDayjs(new Date(this.endDate));\n\n // const processHeader = (header, format, unit, incrementFn) => {\n // let head = header;\n // while (head >= start && head <= end) {\n // const time = head.format(format);\n // if (unit === CellUnit.Day) {\n // const dayOfWeek = head.weekday();\n // if (this.config.displayWeekend || (dayOfWeek !== 0 && dayOfWeek !== 6)) {\n // const nonWorkingTime = this.behaviors.isNonWorkingTimeFunc(this, time);\n // headers.push({ time, nonWorkingTime });\n // }\n // } else {\n // headers.push({ time });\n // }\n // head = head.add(1, incrementFn);\n // }\n // };\n\n // if (this.showAgenda) {\n // headers.push({ time: start.format(DATETIME_FORMAT), nonWorkingTime: false });\n // } else if (this.cellUnit === CellUnit.Hour) {\n // const hourIncrement = this.config.minuteStep < 60 ? 'minutes' : 'hours';\n // const minuteSteps = this.getMinuteStepsInHour();\n // let header = start.hour() === 0 ? start.add(this.config.dayStartFrom, 'hours') : start;\n // while (header <= end) {\n // const hour = header.hour();\n // if (hour >= this.config.dayStartFrom && hour <= this.config.dayStopTo) {\n // const time = header.format(DATETIME_FORMAT);\n // const nonWorkingTime = this.behaviors.isNonWorkingTimeFunc(this, time);\n // headers.push({ time, nonWorkingTime });\n // }\n // header = header.add(minuteSteps, hourIncrement);\n // }\n // } else {\n // const header = start;\n // const format = this.cellUnit === CellUnit.Day ? DATETIME_FORMAT : DATE_FORMAT;\n // const incrementFn = this.cellUnit === CellUnit.Day ? 'days' : `${this.cellUnit}s`;\n // processHeader(header, format, this.cellUnit, incrementFn);\n // }\n\n // this.headers = headers;\n // }\n\n _createInitHeaderEvents(header) {\n const start = this.localeDayjs(new Date(header.time));\n const startValue = start.format(DATETIME_FORMAT);\n\n let endValue;\n if (this.showAgenda) {\n const incrementUnit =\n {\n [ViewType.Day]: 'days',\n [ViewType.Week]: 'weeks',\n [ViewType.Month]: 'months',\n [ViewType.Year]: 'years',\n [ViewType.Quarter]: 'quarters',\n }[this.viewType] || 'days';\n\n if (incrementUnit === 'days') {\n endValue = this.localeDayjs(new Date(this.endDate)).add(1, 'days').format(DATETIME_FORMAT);\n } else {\n endValue = start.add(1, incrementUnit).format(DATETIME_FORMAT);\n }\n } else {\n const incrementUnit =\n {\n [CellUnit.Hour]: 'minutes',\n [CellUnit.Week]: 'weeks',\n [CellUnit.Month]: 'months',\n [CellUnit.Year]: 'years',\n }[this.cellUnit] || 'days';\n\n endValue = start\n .add(incrementUnit === 'minutes' ? this.config.minuteStep : 1, incrementUnit)\n .format(\n this.cellUnit === CellUnit.Year || this.cellUnit === CellUnit.Month || this.cellUnit === CellUnit.Week\n ? DATE_FORMAT\n : DATETIME_FORMAT\n );\n }\n\n return {\n time: header.time,\n nonWorkingTime: header.nonWorkingTime,\n start: startValue,\n end: endValue,\n count: 0,\n addMore: 0,\n addMoreIndex: 0,\n events: Array(3),\n };\n }\n\n _createHeaderEvent(render, span, eventItem) {\n return { render, span, eventItem };\n }\n\n _getEventSlotId(event) {\n return this.isEventPerspective ? this._getEventGroupId(event) : event.resourceId;\n }\n\n _getEventGroupId(event) {\n return event.groupId ? event.groupId.toString() : event.id.toString();\n }\n\n _getEventGroupName(event) {\n return event.groupName ? event.groupName : event.title;\n }\n\n _generateEventGroups() {\n const eventGroups = [];\n const set = new Set();\n this.events.forEach(item => {\n const groupId = this._getEventGroupId(item);\n const groupName = this._getEventGroupName(item);\n\n if (!set.has(groupId)) {\n eventGroups.push({\n id: groupId,\n name: groupName,\n state: item,\n });\n set.add(groupId);\n }\n });\n this.eventGroups = eventGroups;\n }\n\n _createInitRenderData(isEventPerspective, eventGroups, resources, headers) {\n const slots = isEventPerspective ? eventGroups : resources;\n const slotTree = [];\n const slotMap = new Map();\n slots.forEach(slot => {\n const headerEvents = headers.map(header => this._createInitHeaderEvents(header));\n\n const slotRenderData = {\n slotId: slot.id,\n slotName: slot.name,\n slotTitle: slot.title,\n parentId: slot.parentId,\n groupOnly: slot.groupOnly,\n hasSummary: false,\n rowMaxCount: 0,\n rowHeight:\n this.config.nonAgendaSlotMinHeight !== 0\n ? this.config.nonAgendaSlotMinHeight\n : this.config.eventItemLineHeight + 2,\n headerItems: headerEvents,\n indent: 0,\n hasChildren: false,\n expanded: true,\n render: true,\n };\n const { id } = slot;\n let value;\n if (slotMap.has(id)) {\n value = slotMap.get(id);\n value.data = slotRenderData;\n } else {\n value = {\n data: slotRenderData,\n children: [],\n };\n slotMap.set(id, value);\n }\n\n const { parentId } = slot;\n if (!parentId || parentId === id) {\n slotTree.push(value);\n } else {\n let parentValue;\n if (slotMap.has(parentId)) {\n parentValue = slotMap.get(parentId);\n } else {\n parentValue = {\n data: undefined,\n children: [],\n };\n slotMap.set(parentId, parentValue);\n }\n\n parentValue.children.push(value);\n }\n });\n\n const slotStack = [];\n let i;\n for (i = slotTree.length - 1; i >= 0; i -= 1) {\n slotStack.push(slotTree[i]);\n }\n const initRenderData = [];\n let currentNode;\n while (slotStack.length > 0) {\n currentNode = slotStack.pop();\n if (currentNode.data.indent > 0) {\n currentNode.data.render = this.config.defaultExpanded;\n }\n if (currentNode.children.length > 0) {\n currentNode.data.hasChildren = true;\n currentNode.data.expanded = this.config.defaultExpanded;\n }\n initRenderData.push(currentNode.data);\n\n for (i = currentNode.children.length - 1; i >= 0; i -= 1) {\n currentNode.children[i].data.indent = currentNode.data.indent + 1;\n slotStack.push(currentNode.children[i]);\n }\n }\n\n return initRenderData;\n }\n\n _getSpan(startTime, endTime, headers) {\n if (this.showAgenda) return 1;\n\n // function startOfWeek(date) {\n // const day = date.getDay();\n // const diff = date.getDate() - day;\n // return new Date(date.getFullYear(), date.getMonth(), diff);\n // }\n\n const timeBetween = (date1, date2, timeIn) => {\n if (timeIn === 'days' || timeIn === 'day') {\n if (date1.getDate() === date2.getDate() && date1.getMonth() === date2.getMonth()) {\n return 1;\n }\n }\n\n let one;\n switch (timeIn) {\n case 'days':\n case 'day':\n one = 1000 * 60 * 60 * 24;\n break;\n case 'minutes':\n case 'minute':\n one = 1000 * 60;\n break;\n default:\n return 0;\n }\n\n const date1Ms = date1.getTime();\n const date2Ms = date2.getTime();\n\n const diff = (date2Ms - date1Ms) / one;\n return diff < 0 ? 0 : diff;\n };\n\n const eventStart = new Date(startTime);\n const eventEnd = new Date(endTime);\n let span = 0;\n const windowStart = new Date(this.startDate);\n const windowEnd = new Date(this.endDate);\n\n windowStart.setHours(0, 0, 0, 0);\n windowEnd.setHours(23, 59, 59);\n\n if (this.viewType === ViewType.Day) {\n if (headers.length > 0) {\n const day = new Date(headers[0].time);\n if (day.getDate() > eventStart.getDate() && day.getDate() < eventEnd.getDate()) {\n span = 1440 / this.config.minuteStep;\n } else if (day.getDate() > eventStart.getDate() && day.getDate() === eventEnd.getDate()) {\n span = Math.ceil(timeBetween(day, eventEnd, 'minutes') / this.config.minuteStep);\n } else if (day.getDate() === eventStart.getDate() && day.getDate() < eventEnd.getDate()) {\n day.setHours(23, 59, 59);\n span = Math.ceil(timeBetween(eventStart, day, 'minutes') / this.config.minuteStep);\n } else if (\n (day.getDate() === eventStart.getDate() && day.getDate() === eventEnd.getDate()) ||\n eventEnd.getDate() === eventStart.getDate()\n ) {\n span = Math.ceil(timeBetween(eventStart, eventEnd, 'minutes') / this.config.minuteStep);\n }\n }\n } else if (\n this.viewType === ViewType.Week ||\n this.viewType === ViewType.Month ||\n this.viewType === ViewType.Quarter ||\n this.viewType === ViewType.Year\n ) {\n const startDate = windowStart < eventStart ? eventStart : windowStart;\n const endDate = windowEnd > eventEnd ? eventEnd : windowEnd;\n span = Math.ceil(timeBetween(startDate, endDate, 'days'));\n } else {\n if (this.cellUnit === CellUnit.Day) {\n eventEnd.setHours(23, 59, 59);\n eventStart.setHours(0, 0, 0, 0);\n }\n\n const timeIn = this.cellUnit === CellUnit.Day ? 'days' : 'minutes';\n const dividedBy = this.cellUnit === CellUnit.Day ? 1 : this.config.minuteStep;\n\n if (windowStart >= eventStart && eventEnd <= windowEnd) {\n span = Math.ceil(timeBetween(windowStart, eventEnd, timeIn) / dividedBy);\n } else if (windowStart > eventStart && eventEnd > windowEnd) {\n span = Math.ceil(timeBetween(windowStart, windowEnd, timeIn) / dividedBy);\n } else if (windowStart <= eventStart && eventEnd >= windowEnd) {\n span = Math.ceil(timeBetween(eventStart, windowEnd, timeIn) / dividedBy);\n } else {\n span = Math.ceil(timeBetween(eventStart, eventEnd, timeIn) / dividedBy);\n }\n }\n\n return span;\n }\n\n _validateResource(resources) {\n if (Object.prototype.toString.call(resources) !== '[object Array]') {\n throw new Error('Resources should be Array object');\n }\n\n resources.forEach((item, index) => {\n if (item === undefined) {\n console.error(`Resource undefined: ${index}`);\n throw new Error(`Resource undefined: ${index}`);\n }\n if (item.id === undefined || item.name === undefined) {\n console.error('Resource property missed', index, item);\n throw new Error(`Resource property undefined: ${index}`);\n }\n });\n }\n\n _validateEventGroups(eventGroups) {\n if (Object.prototype.toString.call(eventGroups) !== '[object Array]') {\n throw new Error('Event groups should be Array object');\n }\n\n eventGroups.forEach((item, index) => {\n if (item === undefined) {\n console.error(`Event group undefined: ${index}`);\n throw new Error(`Event group undefined: ${index}`);\n }\n if (item.id === undefined || item.name === undefined) {\n console.error('Event group property missed', index, item);\n throw new Error(`Event group property undefined: ${index}`);\n }\n });\n }\n\n _validateEvents(events) {\n if (Object.prototype.toString.call(events) !== '[object Array]') {\n throw new Error('Events should be Array object');\n }\n\n events.forEach((e, index) => {\n if (e === undefined) {\n console.error(`Event undefined: ${index}`);\n throw new Error(`Event undefined: ${index}`);\n }\n if (\n e.id === undefined ||\n e.resourceId === undefined ||\n e.title === undefined ||\n e.start === undefined ||\n e.end === undefined\n ) {\n console.error('Event property missed', index, e);\n throw new Error(`Event property undefined: ${index}`);\n }\n });\n }\n\n _validateMinuteStep(minuteStep) {\n if (60 % minuteStep !== 0) {\n console.error('Minute step is not set properly - 60 minutes must be divisible without remainder by this number');\n throw new Error(\n 'Minute step is not set properly - 60 minutes must be divisible without remainder by this number'\n );\n }\n }\n\n _compare(event1, event2) {\n const start1 = this.localeDayjs(event1.start);\n const start2 = this.localeDayjs(event2.start);\n if (start1 !== start2) return start1 < start2 ? -1 : 1;\n\n const end1 = this.localeDayjs(event1.end);\n const end2 = this.localeDayjs(event2.end);\n if (end1 !== end2) return end1 < end2 ? -1 : 1;\n\n return event1.id < event2.id ? -1 : 1;\n }\n\n _createRenderData() {\n const initRenderData = this._createInitRenderData(\n this.isEventPerspective,\n this.eventGroups,\n this.resources,\n this.headers\n );\n // this.events.sort(this._compare);\n const cellMaxEventsCount = this.getCellMaxEvents();\n const cellMaxEventsCountValue = 30;\n\n this.events.forEach(item => {\n const resourceEventsList = initRenderData.filter(x => x.slotId === this._getEventSlotId(item));\n if (resourceEventsList.length > 0) {\n const resourceEvents = resourceEventsList[0];\n const span = this._getSpan(item.start, item.end, this.headers);\n const eventStart = new Date(item.start);\n const eventEnd = new Date(item.end);\n let pos = -1;\n\n resourceEvents.headerItems.forEach((header, index) => {\n const headerStart = new Date(header.start);\n const headerEnd = new Date(header.end);\n if (headerEnd > eventStart && headerStart < eventEnd) {\n header.count += 1;\n if (header.count > resourceEvents.rowMaxCount) {\n resourceEvents.rowMaxCount = header.count;\n const rowsCount =\n cellMaxEventsCount <= cellMaxEventsCountValue && resourceEvents.rowMaxCount > cellMaxEventsCount\n ? cellMaxEventsCount\n : resourceEvents.rowMaxCount;\n const newRowHeight =\n rowsCount * this.config.eventItemLineHeight +\n (this.config.creatable && this.config.checkConflict === false ? 20 : 2);\n if (newRowHeight > resourceEvents.rowHeight) resourceEvents.rowHeight = newRowHeight;\n }\n\n if (pos === -1) {\n let tmp = 0;\n while (header.events[tmp] !== undefined) tmp += 1;\n\n pos = tmp;\n }\n let render = headerStart <= eventStart || index === 0;\n if (render === false) {\n const previousHeader = resourceEvents.headerItems[index - 1];\n const previousHeaderStart = new Date(previousHeader.start);\n const previousHeaderEnd = new Date(previousHeader.end);\n if (previousHeaderEnd <= eventStart || previousHeaderStart >= eventEnd) render = true;\n }\n // console.log(`span: ${span}`)\n header.events[pos] = this._createHeaderEvent(render, span, item);\n }\n });\n }\n });\n\n if (cellMaxEventsCount <= cellMaxEventsCountValue || this.behaviors.getSummaryFunc !== undefined) {\n initRenderData.forEach(resourceEvents => {\n let hasSummary = false;\n\n resourceEvents.headerItems.forEach(headerItem => {\n if (cellMaxEventsCount <= cellMaxEventsCountValue) {\n let renderItemsCount = 0;\n let addMoreIndex = 0;\n let index = 0;\n while (index < cellMaxEventsCount - 1) {\n if (headerItem.events[index] !== undefined) {\n renderItemsCount += 1;\n addMoreIndex = index + 1;\n }\n\n index += 1;\n }\n\n if (headerItem.events[index] !== undefined) {\n if (renderItemsCount + 1 < headerItem.count) {\n headerItem.addMore = headerItem.count - renderItemsCount;\n headerItem.addMoreIndex = addMoreIndex;\n }\n } else if (renderItemsCount < headerItem.count) {\n headerItem.addMore = headerItem.count - renderItemsCount;\n headerItem.addMoreIndex = addMoreIndex;\n }\n }\n\n if (this.behaviors.getSummaryFunc !== undefined) {\n const events = [];\n headerItem.events.forEach(e => {\n if (!!e && !!e.eventItem) events.push(e.eventItem);\n });\n\n headerItem.summary = this.behaviors.getSummaryFunc(\n this,\n events,\n resourceEvents.slotId,\n resourceEvents.slotName,\n headerItem.start,\n headerItem.end\n );\n if (!!headerItem.summary && headerItem.summary.text !== undefined) hasSummary = true;\n }\n });\n\n resourceEvents.hasSummary = hasSummary;\n if (hasSummary) {\n const rowsCount =\n cellMaxEventsCount <= cellMaxEventsCountValue && resourceEvents.rowMaxCount > cellMaxEventsCount\n ? cellMaxEventsCount\n : resourceEvents.rowMaxCount;\n const newRowHeight =\n (rowsCount + 1) * this.config.eventItemLineHeight +\n (this.config.creatable && this.config.checkConflict === false ? 20 : 2);\n if (newRowHeight > resourceEvents.rowHeight) resourceEvents.rowHeight = newRowHeight;\n }\n });\n }\n\n this.renderData = initRenderData;\n }\n\n _startResizing() {\n this.resizing = true;\n }\n\n _stopResizing() {\n this.resizing = false;\n }\n\n _isResizing() {\n return this.resizing;\n }\n}\n","import { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport { Calendar, Col, Popover, Radio, Row, Space, Spin } from 'antd';\nimport dayjs from 'dayjs';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { DATE_FORMAT } from '../config/default';\n\nconst RadioButton = Radio.Button;\nconst RadioGroup = Radio.Group;\n\nconst SchedulerHeader = React.forwardRef(\n ({ onViewChange, goNext, goBack, onSelectDate, schedulerData, leftCustomHeader, rightCustomHeader, style }, ref) => {\n const [viewSpinning, setViewSpinning] = useState(false);\n const [dateSpinning, setDateSpinning] = useState(false);\n const [visible, setVisible] = useState(false);\n\n const { viewType, showAgenda, isEventPerspective, config } = schedulerData;\n const dateLabel = schedulerData.getDateLabel();\n const selectDate = schedulerData.getSelectedDate();\n const calendarLocale = schedulerData.getCalendarPopoverLocale()?.default?.Calendar;\n const defaultValue = `${viewType}${showAgenda ? 1 : 0}${isEventPerspective ? 1 : 0}`;\n\n const isMountedRef = useRef(true);\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n const handleEvents = (func, isViewSpinning, funcArg) => {\n const isSpinEnabled = isViewSpinning ? config.viewChangeSpinEnabled : config.dateChangeSpinEnabled;\n\n const setSpin = isViewSpinning ? setViewSpinning : setDateSpinning;\n\n if (isSpinEnabled) {\n setSpin(true);\n }\n\n const coreFunc = () => {\n try {\n funcArg !== undefined ? func(funcArg) : func();\n } finally {\n if (isSpinEnabled && isMountedRef.current) {\n setSpin(false);\n }\n }\n };\n\n if (isSpinEnabled) {\n setTimeout(coreFunc, config.schedulerHeaderEventsFuncsTimeoutMs);\n } else {\n coreFunc();\n }\n };\n\n const popover = (\n <div className=\"rbs-popover-calendar\">\n <Calendar\n locale={calendarLocale}\n defaultValue={dayjs(selectDate)}\n fullscreen={false}\n onSelect={date => {\n setVisible(false);\n handleEvents(onSelectDate, false, date.format(DATE_FORMAT));\n }}\n />\n </div>\n );\n\n const radioButtonList = config.views.map(item => (\n <RadioButton\n key={`${item.viewType}${item.showAgenda ? 1 : 0}${item.isEventPerspective ? 1 : 0}`}\n value={`${item.viewType}${item.showAgenda ? 1 : 0}${item.isEventPerspective ? 1 : 0}`}\n >\n <span style={{ margin: '0px 8px' }}>{item.viewName}</span>\n </RadioButton>\n ));\n\n return (\n <Row ref={ref} gutter={[10, 10]} align=\"middle\" justify=\"space-between\" style={{ ...style }}>\n {leftCustomHeader}\n <Col>\n <div className=\"header2-text\">\n <Space>\n <div>\n <LeftOutlined\n style={{ marginRight: '8px' }}\n className=\"icon-nav\"\n onClick={() => handleEvents(goBack, false)}\n />\n {config.calendarPopoverEnabled ? (\n <Popover\n content={popover}\n placement=\"bottomLeft\"\n trigger=\"click\"\n open={visible}\n onOpenChange={setVisible}\n overlayClassName=\"scheduler-header-popover\"\n >\n <span className=\"header2-text-label\" style={{ cursor: 'pointer' }}>\n {dateLabel}\n </span>\n </Popover>\n ) : (\n <span className=\"header2-text-label\">{dateLabel}</span>\n )}\n <RightOutlined\n style={{ marginLeft: '8px' }}\n className=\"icon-nav\"\n onClick={() => handleEvents(goNext, false)}\n />\n </div>\n <Spin spinning={dateSpinning} />\n </Space>\n </div>\n </Col>\n <Col>\n <Space>\n <Spin spinning={viewSpinning} />\n <RadioGroup\n buttonStyle=\"solid\"\n defaultValue={defaultValue}\n size=\"default\"\n onChange={event => handleEvents(onViewChange, true, event)}\n >\n {radioButtonList}\n </RadioGroup>\n </Space>\n </Col>\n {rightCustomHeader}\n </Row>\n );\n }\n);\n\nSchedulerHeader.propTypes = {\n onViewChange: PropTypes.func.isRequired,\n goNext: PropTypes.func.isRequired,\n goBack: PropTypes.func.isRequired,\n onSelectDate: PropTypes.func.isRequired,\n schedulerData: PropTypes.object.isRequired,\n leftCustomHeader: PropTypes.object,\n rightCustomHeader: PropTypes.object,\n style: PropTypes.object,\n};\n\nSchedulerHeader.displayName = 'SchedulerHeader';\n\nexport default SchedulerHeader;\n","import { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\n\nexport default function WrapperFun(Component) {\n return function WrappedComponent(props) {\n return (\n <DndProvider backend={HTML5Backend}>\n <Component {...props} />\n </DndProvider>\n );\n };\n}\n","import PropTypes from 'prop-types';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { CellUnit, DATETIME_FORMAT, DATE_FORMAT, SummaryPos, ViewType } from '../config/default';\nimport DemoData from '../sample-data/sample1';\nimport AddMorePopover from './AddMorePopover';\nimport AgendaView from './AgendaView';\nimport BodyView from './BodyView';\nimport DnDContext from './DnDContext';\nimport DnDSource from './DnDSource';\nimport HeaderView from './HeaderView';\nimport ResourceEvents from './ResourceEvents';\nimport ResourceView from './ResourceView';\nimport SchedulerData from './SchedulerData';\nimport SchedulerHeader from './SchedulerHeader';\nimport wrapperFun from './WrapperFun';\n\nfunction Scheduler(props) {\n const {\n schedulerData,\n dndSources,\n parentRef,\n prevClick,\n nextClick,\n onViewChange,\n onSelectDate,\n leftCustomHeader,\n rightCustomHeader,\n showWeekNumber,\n CustomResourceHeader,\n } = props;\n\n // Initialize DnD context\n const initDndContext = () => {\n let sources = [];\n sources.push(new DnDSource(dndProps => dndProps.eventItem, schedulerData.config.dragAndDropEnabled));\n if (dndSources !== undefined && dndSources.length > 0) {\n sources = [...sources, ...dndSources];\n }\n return new DnDContext(sources);\n };\n\n // State initialization\n const [state, setState] = useState({\n dndContext: initDndContext(),\n contentScrollbarHeight: 17,\n contentScrollbarWidth: 17,\n resourceScrollbarHeight: 17,\n resourceScrollbarWidth: 17,\n documentWidth: 0,\n documentHeight: 0,\n headerHeight: 0,\n });\n\n // Refs instead of class properties\n const currentAreaRef = useRef(-1);\n const scrollLeftRef = useRef(0);\n const scrollTopRef = useRef(0);\n const schedulerHeadRef = useRef(null);\n const schedulerHeaderRef = useRef(null);\n const schedulerResourceRef = useRef(null);\n const schedulerContentRef = useRef(null);\n const schedulerContentBgTableRef = useRef(null);\n const ulObserverRef = useRef(null);\n const headerObserverRef = useRef(null);\n\n // Window resize handler\n const onWindowResize = useCallback(() => {\n schedulerData._setDocumentWidth(document.documentElement.clientWidth);\n schedulerData._setDocumentHeight(document.documentElement.clientHeight);\n setState(prevState => ({\n ...prevState,\n documentWidth: document.documentElement.clientWidth,\n documentHeight: document.documentElement.clientHeight,\n }));\n }, [schedulerData]);\n\n // Effect for window resize event\n useEffect(() => {\n if (\n (schedulerData.isSchedulerResponsive() && !schedulerData.config.responsiveByParent) ||\n parentRef === undefined\n ) {\n schedulerData._setDocumentWidth(document.documentElement.clientWidth);\n schedulerData._setDocumentHeight(document.documentElement.clientHeight);\n window.addEventListener('resize', onWindowResize);\n\n return () => {\n window.removeEventListener('resize', onWindowResize);\n };\n }\n }, [schedulerData, parentRef, onWindowResize]);\n\n // Effect for parent element resize observation\n useEffect(() => {\n if (parentRef !== undefined) {\n if (schedulerData.config.responsiveByParent && !!parentRef.current) {\n schedulerData._setDocumentWidth(parentRef.current.offsetWidth);\n\n ulObserverRef.current = new ResizeObserver(() => {\n if (parentRef.current) {\n const width = parentRef.current.offsetWidth;\n const height = parentRef.current.offsetHeight;\n schedulerData._setDocumentWidth(width);\n schedulerData._setDocumentHeight(height);\n setState(prevState => ({\n ...prevState,\n documentWidth: width,\n documentHeight: height,\n }));\n }\n });\n\n ulObserverRef.current.observe(parentRef.current);\n\n return () => {\n if (ulObserverRef.current && parentRef.current) {\n ulObserverRef.current.unobserve(parentRef.current);\n }\n };\n }\n }\n }, [parentRef, schedulerData]);\n\n // Effect for scheduler header resize observation\n useEffect(() => {\n if (schedulerHeaderRef !== undefined) {\n if (schedulerData.config.responsiveByParent && !!schedulerHeaderRef.current) {\n schedulerData._setDocumentWidth(schedulerHeaderRef.current.offsetWidth);\n schedulerData._setDocumentHeight(schedulerHeaderRef.current.offsetHeight);\n headerObserverRef.current = new ResizeObserver(entries => {\n entries.forEach(entry => {\n // Get the DOM node\n const node = entry.target;\n // Get the height from the bounding rect (includes padding and border)\n const rect = node.getBoundingClientRect();\n // Get computed styles for margins\n const style = window.getComputedStyle(node);\n const marginTop = parseFloat(style.marginTop) || 0;\n const marginBottom = parseFloat(style.marginBottom) || 0;\n // Total height including margins\n const totalHeight = rect.height + marginTop + marginBottom;\n schedulerData._setSchedulerHeaderHeight(totalHeight);\n setState(prevState => ({\n ...prevState,\n headerHeight: totalHeight,\n }));\n });\n });\n\n headerObserverRef.current.observe(schedulerHeaderRef.current);\n\n return () => {\n if (headerObserverRef.current && schedulerHeaderRef.current) {\n headerObserverRef.current.unobserve(schedulerHeaderRef.current);\n }\n };\n }\n }\n }, [schedulerHeaderRef, schedulerData]);\n\n // Resolving scrollbar sizes\n const resolveScrollbarSize = useCallback(() => {\n let contentScrollbarHeight = 17;\n let contentScrollbarWidth = 17;\n let resourceScrollbarHeight = 17;\n let resourceScrollbarWidth = 17;\n\n if (schedulerContentRef.current) {\n contentScrollbarHeight = schedulerContentRef.current.offsetHeight - schedulerContentRef.current.clientHeight;\n contentScrollbarWidth = schedulerContentRef.current.offsetWidth - schedulerContentRef.current.clientWidth;\n }\n\n if (schedulerResourceRef.current) {\n resourceScrollbarHeight = schedulerResourceRef.current.offsetHeight - schedulerResourceRef.current.clientHeight;\n resourceScrollbarWidth = schedulerResourceRef.current.offsetWidth - schedulerResourceRef.current.clientWidth;\n }\n\n let needSet = false;\n let tmpState = {};\n\n if (contentScrollbarHeight !== state.contentScrollbarHeight) {\n tmpState = { ...tmpState, contentScrollbarHeight };\n needSet = true;\n }\n if (contentScrollbarWidth !== state.contentScrollbarWidth) {\n tmpState = { ...tmpState, contentScrollbarWidth };\n needSet = true;\n }\n if (resourceScrollbarHeight !== state.resourceScrollbarHeight) {\n tmpState = { ...tmpState, resourceScrollbarHeight };\n needSet = true;\n }\n if (resourceScrollbarWidth !== state.resourceScrollbarWidth) {\n tmpState = { ...tmpState, resourceScrollbarWidth };\n needSet = true;\n }\n\n if (needSet) {\n setState(prevState => ({\n ...prevState,\n ...tmpState,\n }));\n }\n }, [\n state.contentScrollbarHeight,\n state.contentScrollbarWidth,\n state.resourceScrollbarHeight,\n state.resourceScrollbarWidth,\n ]);\n\n // Effect for scrollToSpecialDayjs functionality\n useEffect(() => {\n resolveScrollbarSize();\n\n const { localeDayjs, behaviors } = schedulerData;\n if (schedulerData.getScrollToSpecialDayjs() && !!behaviors.getScrollSpecialDayjsFunc) {\n if (\n !!schedulerContentRef.current &&\n schedulerContentRef.current.scrollWidth > schedulerContentRef.current.clientWidth\n ) {\n const start = localeDayjs(new Date(schedulerData.startDate)).startOf('day');\n const end = localeDayjs(new Date(schedulerData.endDate)).endOf('day');\n const specialDayjs = behaviors.getScrollSpecialDayjsFunc(schedulerData, start, end);\n if (specialDayjs >= start && specialDayjs <= end) {\n let index = 0;\n schedulerData.headers.forEach(item => {\n const header = localeDayjs(new Date(item.time));\n if (specialDayjs >= header) {\n index += 1;\n }\n });\n schedulerContentRef.current.scrollLeft = (index - 1) * schedulerData.getContentCellWidth();\n\n schedulerData.setScrollToSpecialDayjs(false);\n }\n }\n }\n }, [schedulerData, resolveScrollbarSize]);\n\n // Mouse event handlers\n const onSchedulerHeadMouseOver = useCallback(() => {\n currentAreaRef.current = 2;\n }, []);\n\n const onSchedulerHeadMouseOut = useCallback(() => {\n currentAreaRef.current = -1;\n }, []);\n\n const onSchedulerHeadScroll = useCallback(() => {\n if (\n (currentAreaRef.current === 2 || currentAreaRef.current === -1) &&\n schedulerContentRef.current.scrollLeft !== schedulerHeadRef.current.scrollLeft\n ) {\n schedulerContentRef.current.scrollLeft = schedulerHeadRef.current.scrollLeft;\n }\n }, []);\n\n const onSchedulerResourceMouseOver = useCallback(() => {\n currentAreaRef.current = 1;\n }, []);\n\n const onSchedulerResourceMouseOut = useCallback(() => {\n currentAreaRef.current = -1;\n }, []);\n\n const onSchedulerResourceScroll = useCallback(() => {\n if (schedulerResourceRef.current) {\n if (\n (currentAreaRef.current === 1 || currentAreaRef.current === -1) &&\n schedulerContentRef.current.scrollTop !== schedulerResourceRef.current.scrollTop\n ) {\n schedulerContentRef.current.scrollTop = schedulerResourceRef.current.scrollTop;\n }\n }\n }, []);\n\n const onSchedulerContentMouseOver = useCallback(() => {\n currentAreaRef.current = 0;\n }, []);\n\n const onSchedulerContentMouseOut = useCallback(() => {\n currentAreaRef.current = -1;\n }, []);\n\n const onSchedulerContentScroll = useCallback(() => {\n if (schedulerResourceRef.current) {\n if (currentAreaRef.current === 0 || currentAreaRef.current === -1) {\n if (schedulerHeadRef.current.scrollLeft !== schedulerContentRef.current.scrollLeft) {\n schedulerHeadRef.current.scrollLeft = schedulerContentRef.current.scrollLeft;\n }\n if (schedulerResourceRef.current.scrollTop !== schedulerContentRef.current.scrollTop) {\n schedulerResourceRef.current.scrollTop = schedulerContentRef.current.scrollTop;\n }\n }\n }\n\n const { onScrollLeft, onScrollRight, onScrollTop, onScrollBottom } = props;\n\n if (schedulerContentRef.current.scrollLeft !== scrollLeftRef.current) {\n if (schedulerContentRef.current.scrollLeft === 0 && onScrollLeft !== undefined) {\n onScrollLeft(\n schedulerData,\n schedulerContentRef.current,\n schedulerContentRef.current.scrollWidth - schedulerContentRef.current.clientWidth\n );\n }\n if (\n Math.round(schedulerContentRef.current.scrollLeft) ===\n schedulerContentRef.current.scrollWidth - schedulerContentRef.current.clientWidth &&\n onScrollRight !== undefined\n ) {\n onScrollRight(\n schedulerData,\n schedulerContentRef.current,\n schedulerContentRef.current.scrollWidth - schedulerContentRef.current.clientWidth\n );\n }\n } else if (schedulerContentRef.current.scrollTop !== scrollTopRef.current) {\n if (schedulerContentRef.current.scrollTop === 0 && onScrollTop !== undefined) {\n onScrollTop(\n schedulerData,\n schedulerContentRef.current,\n schedulerContentRef.current.scrollHeight - schedulerContentRef.current.clientHeight\n );\n }\n if (\n Math.round(schedulerContentRef.current.scrollTop) ===\n schedulerContentRef.current.scrollHeight - schedulerContentRef.current.clientHeight &&\n onScrollBottom !== undefined\n ) {\n onScrollBottom(\n schedulerData,\n schedulerContentRef.current,\n schedulerContentRef.current.scrollHeight - schedulerContentRef.current.clientHeight\n );\n }\n }\n\n scrollLeftRef.current = schedulerContentRef.current.scrollLeft;\n scrollTopRef.current = schedulerContentRef.current.scrollTop;\n }, [props, schedulerData]);\n\n // Event handlers\n const handleViewChange = useCallback(\n e => {\n const viewType = parseInt(e.target.value.charAt(0), 10);\n const showAgenda = e.target.value.charAt(1) === '1';\n const isEventPerspective = e.target.value.charAt(2) === '1';\n onViewChange(schedulerData, { viewType, showAgenda, isEventPerspective });\n },\n [onViewChange, schedulerData]\n );\n\n const goNext = useCallback(() => {\n nextClick(schedulerData);\n }, [nextClick, schedulerData]);\n\n const goBack = useCallback(() => {\n prevClick(schedulerData);\n }, [prevClick, schedulerData]);\n\n const onSelect = useCallback(\n date => {\n onSelectDate(schedulerData, date);\n },\n [onSelectDate, schedulerData]\n );\n\n // Rendering\n const { viewType, renderData, showAgenda, config } = schedulerData;\n const width = schedulerData.getSchedulerWidth();\n const { contentScrollbarHeight, contentScrollbarWidth, resourceScrollbarHeight, resourceScrollbarWidth } = state;\n\n let tbodyContent = <tr />;\n if (showAgenda) {\n tbodyContent = <AgendaView {...props} />;\n } else {\n const resourceTableWidth = schedulerData.getResourceTableWidth();\n const schedulerContainerWidth = width - (config.resourceViewEnabled ? resourceTableWidth : 0);\n const schedulerWidth = schedulerData.getContentTableWidth() - 1;\n const eventDndSource = state.dndContext.getDndSource();\n\n const displayRenderData = renderData.filter(o => o.render);\n const resourceEventsList = displayRenderData.map(item => (\n <ResourceEvents\n {...props}\n key={item.slotId}\n resourceEvents={item}\n dndSource={eventDndSource}\n dndContext={state.dndContext}\n />\n ));\n\n const contentHeight = config.schedulerContentHeight;\n const resourcePaddingBottom = resourceScrollbarHeight === 0 ? contentScrollbarHeight : 0;\n const contentPaddingBottom = contentScrollbarHeight === 0 ? resourceScrollbarHeight : 0;\n\n let schedulerContentStyle = {\n overflowX: viewType === ViewType.Week ? 'hidden' : 'auto',\n overflowY: 'auto',\n margin: '0px',\n position: 'relative',\n height: contentHeight,\n paddingBottom: contentPaddingBottom,\n };\n\n let resourceContentStyle = {\n height: contentHeight,\n overflowX: 'auto',\n overflowY: 'auto',\n width: resourceTableWidth + resourceScrollbarWidth - 2,\n margin: `0px -${contentScrollbarWidth}px 0px 0px`,\n };\n\n if (config.schedulerMaxHeight > 0) {\n schedulerContentStyle = {\n ...schedulerContentStyle,\n maxHeight: config.schedulerMaxHeight - config.tableHeaderHeight,\n };\n resourceContentStyle = {\n ...resourceContentStyle,\n maxHeight: config.schedulerMaxHeight - config.tableHeaderHeight,\n };\n } else if (config.responsiveByParent && schedulerData.documentHeight > 0) {\n // Responsive height minus SchedulerHeader\n const availableHeight = schedulerData.getSchedulerHeight();\n\n schedulerContentStyle = {\n ...schedulerContentStyle,\n height: availableHeight,\n };\n resourceContentStyle = {\n ...resourceContentStyle,\n height: availableHeight,\n };\n }\n\n const resourceName = schedulerData.isEventPerspective ? config.taskName : config.resourceName;\n\n tbodyContent = (\n <tr>\n <td\n style={{\n display: config.resourceViewEnabled ? undefined : 'none',\n width: resourceTableWidth,\n verticalAlign: 'top',\n }}\n >\n <div className=\"resource-view\">\n <div\n style={{\n overflow: 'hidden',\n borderBottom: '1px solid #e9e9e9',\n height: showWeekNumber ? config.tableHeaderHeight + 24 : config.tableHeaderHeight,\n }}\n >\n <div style={{ overflowX: 'scroll', overflowY: 'hidden', margin: `0px 0px -${contentScrollbarHeight}px` }}>\n <table className=\"resource-table\">\n <thead>\n {showWeekNumber && (\n <tr style={{ height: 24 }}>\n <th\n style={{\n borderBottom: '1px solid #e9e9e9',\n fontSize: '0.85em',\n opacity: 0.7,\n padding: '4px 8px',\n }}\n >\n Week No.\n </th>\n </tr>\n )}\n <tr style={{ height: config.tableHeaderHeight }}>\n <th className=\"header3-text\">{CustomResourceHeader ? <CustomResourceHeader /> : resourceName}</th>\n </tr>\n </thead>\n </table>\n </div>\n </div>\n <div\n style={resourceContentStyle}\n ref={schedulerResourceRef}\n onMouseOver={onSchedulerResourceMouseOver}\n onFocus={onSchedulerResourceMouseOver}\n onMouseOut={onSchedulerResourceMouseOut}\n onBlur={onSchedulerResourceMouseOut}\n onScroll={onSchedulerResourceScroll}\n >\n <ResourceView {...props} contentScrollbarHeight={resourcePaddingBottom} />\n </div>\n </div>\n </td>\n <td>\n <div className=\"scheduler-view\" style={{ width: schedulerContainerWidth, verticalAlign: 'top' }}>\n <div\n style={{\n overflow: 'hidden',\n borderBottom: '1px solid #e9e9e9',\n height: showWeekNumber ? config.tableHeaderHeight + 24 : config.tableHeaderHeight,\n }}\n >\n <div\n style={{ overflowX: 'scroll', overflowY: 'hidden', margin: `0px 0px -${contentScrollbarHeight}px` }}\n ref={schedulerHeadRef}\n onMouseOver={onSchedulerHeadMouseOver}\n onFocus={onSchedulerHeadMouseOver}\n onMouseOut={onSchedulerHeadMouseOut}\n onBlur={onSchedulerHeadMouseOut}\n onScroll={onSchedulerHeadScroll}\n aria-label=\"Scheduler Header\"\n >\n <div\n style={{ paddingRight: `${contentScrollbarWidth}px`, width: schedulerWidth + contentScrollbarWidth }}\n >\n <table className=\"scheduler-bg-table\">\n <HeaderView {...props} showWeekNumber={showWeekNumber} />\n </table>\n </div>\n </div>\n </div>\n <div\n style={schedulerContentStyle}\n ref={schedulerContentRef}\n onMouseOver={onSchedulerContentMouseOver}\n onFocus={onSchedulerContentMouseOver}\n onMouseOut={onSchedulerContentMouseOut}\n onBlur={onSchedulerContentMouseOut}\n onScroll={onSchedulerContentScroll}\n >\n <div style={{ width: schedulerWidth }}>\n <div className=\"scheduler-content\">\n <table className=\"scheduler-content-table\">\n <tbody>{resourceEventsList}</tbody>\n </table>\n </div>\n <div className=\"scheduler-bg\">\n <table\n className=\"scheduler-bg-table\"\n style={{ width: schedulerWidth }}\n ref={schedulerContentBgTableRef}\n >\n <BodyView {...props} />\n </table>\n </div>\n </div>\n </div>\n </div>\n </td>\n </tr>\n );\n }\n\n const schedulerHeader = (\n <SchedulerHeader\n ref={schedulerHeaderRef}\n style={{\n display: config.headerEnabled ? undefined : 'none',\n marginBottom: config.headerEnabled ? '24px' : undefined,\n }}\n onViewChange={handleViewChange}\n schedulerData={schedulerData}\n onSelectDate={onSelect}\n goNext={goNext}\n goBack={goBack}\n rightCustomHeader={rightCustomHeader}\n leftCustomHeader={leftCustomHeader}\n />\n );\n\n return (\n <table id=\"rbs-root\" className=\"rbs\" style={{ width: `${width}px` }}>\n <thead>\n <tr>\n <td colSpan=\"2\">{schedulerHeader}</td>\n </tr>\n </thead>\n <tbody>{tbodyContent}</tbody>\n </table>\n );\n}\n\nScheduler.propTypes = {\n parentRef: PropTypes.object,\n schedulerData: PropTypes.object.isRequired,\n prevClick: PropTypes.func.isRequired,\n nextClick: PropTypes.func.isRequired,\n onViewChange: PropTypes.func.isRequired,\n onSelectDate: PropTypes.func.isRequired,\n onSetAddMoreState: PropTypes.func,\n updateEventStart: PropTypes.func,\n updateEventEnd: PropTypes.func,\n moveEvent: PropTypes.func,\n movingEvent: PropTypes.func,\n leftCustomHeader: PropTypes.object,\n rightCustomHeader: PropTypes.object,\n newEvent: PropTypes.func,\n subtitleGetter: PropTypes.func,\n eventItemClick: PropTypes.func,\n viewEventClick: PropTypes.func,\n viewEventText: PropTypes.string,\n viewEvent2Click: PropTypes.func,\n viewEvent2Text: PropTypes.string,\n conflictOccurred: PropTypes.func,\n eventItemTemplateResolver: PropTypes.func,\n dndSources: PropTypes.array,\n slotClickedFunc: PropTypes.func,\n toggleExpandFunc: PropTypes.func,\n slotItemTemplateResolver: PropTypes.func,\n nonAgendaCellHeaderTemplateResolver: PropTypes.func,\n onScrollLeft: PropTypes.func,\n onScrollRight: PropTypes.func,\n onScrollTop: PropTypes.func,\n onScrollBottom: PropTypes.func,\n showWeekNumber: PropTypes.bool,\n CustomResourceHeader: PropTypes.func,\n};\n\nexport {\n AddMorePopover,\n CellUnit,\n DATETIME_FORMAT,\n DATE_FORMAT,\n DemoData,\n DnDContext,\n DnDSource,\n Scheduler,\n SchedulerData,\n SummaryPos,\n ViewType,\n wrapperFun,\n};\n","var map = {\n\t\"./af\": 5177,\n\t\"./af.js\": 5177,\n\t\"./ar\": 1509,\n\t\"./ar-dz\": 1488,\n\t\"./ar-dz.js\": 1488,\n\t\"./ar-kw\": 8676,\n\t\"./ar-kw.js\": 8676,\n\t\"./ar-ly\": 2353,\n\t\"./ar-ly.js\": 2353,\n\t\"./ar-ma\": 4496,\n\t\"./ar-ma.js\": 4496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 2682,\n\t\"./ar-sa.js\": 2682,\n\t\"./ar-tn\": 9756,\n\t\"./ar-tn.js\": 9756,\n\t\"./ar.js\": 1509,\n\t\"./az\": 5533,\n\t\"./az.js\": 5533,\n\t\"./be\": 8959,\n\t\"./be.js\": 8959,\n\t\"./bg\": 7777,\n\t\"./bg.js\": 7777,\n\t\"./bm\": 4903,\n\t\"./bm.js\": 4903,\n\t\"./bn\": 1290,\n\t\"./bn-bd\": 7357,\n\t\"./bn-bd.js\": 7357,\n\t\"./bn.js\": 1290,\n\t\"./bo\": 1545,\n\t\"./bo.js\": 1545,\n\t\"./br\": 9089,\n\t\"./br.js\": 9089,\n\t\"./bs\": 4429,\n\t\"./bs.js\": 4429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 6464,\n\t\"./cs.js\": 6464,\n\t\"./cv\": 3635,\n\t\"./cv.js\": 3635,\n\t\"./cy\": 4226,\n\t\"./cy.js\": 4226,\n\t\"./da\": 3601,\n\t\"./da.js\": 3601,\n\t\"./de\": 7853,\n\t\"./de-at\": 6111,\n\t\"./de-at.js\": 6111,\n\t\"./de-ch\": 4697,\n\t\"./de-ch.js\": 4697,\n\t\"./de.js\": 7853,\n\t\"./dv\": 708,\n\t\"./dv.js\": 708,\n\t\"./el\": 4691,\n\t\"./el.js\": 4691,\n\t\"./en-au\": 3872,\n\t\"./en-au.js\": 3872,\n\t\"./en-ca\": 8298,\n\t\"./en-ca.js\": 8298,\n\t\"./en-gb\": 6195,\n\t\"./en-gb.js\": 6195,\n\t\"./en-ie\": 6584,\n\t\"./en-ie.js\": 6584,\n\t\"./en-il\": 5543,\n\t\"./en-il.js\": 5543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 9402,\n\t\"./en-nz.js\": 9402,\n\t\"./en-sg\": 3004,\n\t\"./en-sg.js\": 3004,\n\t\"./eo\": 2934,\n\t\"./eo.js\": 2934,\n\t\"./es\": 7650,\n\t\"./es-do\": 838,\n\t\"./es-do.js\": 838,\n\t\"./es-mx\": 7730,\n\t\"./es-mx.js\": 7730,\n\t\"./es-us\": 6575,\n\t\"./es-us.js\": 6575,\n\t\"./es.js\": 7650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 527,\n\t\"./fi.js\": 527,\n\t\"./fil\": 5995,\n\t\"./fil.js\": 5995,\n\t\"./fo\": 2477,\n\t\"./fo.js\": 2477,\n\t\"./fr\": 5498,\n\t\"./fr-ca\": 6435,\n\t\"./fr-ca.js\": 6435,\n\t\"./fr-ch\": 7892,\n\t\"./fr-ch.js\": 7892,\n\t\"./fr.js\": 5498,\n\t\"./fy\": 7071,\n\t\"./fy.js\": 7071,\n\t\"./ga\": 1734,\n\t\"./ga.js\": 1734,\n\t\"./gd\": 217,\n\t\"./gd.js\": 217,\n\t\"./gl\": 7329,\n\t\"./gl.js\": 7329,\n\t\"./gom-deva\": 2124,\n\t\"./gom-deva.js\": 2124,\n\t\"./gom-latn\": 3383,\n\t\"./gom-latn.js\": 3383,\n\t\"./gu\": 5050,\n\t\"./gu.js\": 5050,\n\t\"./he\": 1713,\n\t\"./he.js\": 1713,\n\t\"./hi\": 3861,\n\t\"./hi.js\": 3861,\n\t\"./hr\": 6308,\n\t\"./hr.js\": 6308,\n\t\"./hu\": 609,\n\t\"./hu.js\": 609,\n\t\"./hy-am\": 7160,\n\t\"./hy-am.js\": 7160,\n\t\"./id\": 4063,\n\t\"./id.js\": 4063,\n\t\"./is\": 6993,\n\t\"./is.js\": 6993,\n\t\"./it\": 8383,\n\t\"./it-ch\": 1827,\n\t\"./it-ch.js\": 1827,\n\t\"./it.js\": 8383,\n\t\"./ja\": 3827,\n\t\"./ja.js\": 3827,\n\t\"./jv\": 9722,\n\t\"./jv.js\": 9722,\n\t\"./ka\": 1794,\n\t\"./ka.js\": 1794,\n\t\"./kk\": 7088,\n\t\"./kk.js\": 7088,\n\t\"./km\": 6870,\n\t\"./km.js\": 6870,\n\t\"./kn\": 4451,\n\t\"./kn.js\": 4451,\n\t\"./ko\": 3164,\n\t\"./ko.js\": 3164,\n\t\"./ku\": 8174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 8174,\n\t\"./ky\": 8474,\n\t\"./ky.js\": 8474,\n\t\"./lb\": 9680,\n\t\"./lb.js\": 9680,\n\t\"./lo\": 5867,\n\t\"./lo.js\": 5867,\n\t\"./lt\": 5766,\n\t\"./lt.js\": 5766,\n\t\"./lv\": 9532,\n\t\"./lv.js\": 9532,\n\t\"./me\": 8076,\n\t\"./me.js\": 8076,\n\t\"./mi\": 1848,\n\t\"./mi.js\": 1848,\n\t\"./mk\": 306,\n\t\"./mk.js\": 306,\n\t\"./ml\": 3739,\n\t\"./ml.js\": 3739,\n\t\"./mn\": 9053,\n\t\"./mn.js\": 9053,\n\t\"./mr\": 6169,\n\t\"./mr.js\": 6169,\n\t\"./ms\": 3386,\n\t\"./ms-my\": 2297,\n\t\"./ms-my.js\": 2297,\n\t\"./ms.js\": 3386,\n\t\"./mt\": 7075,\n\t\"./mt.js\": 7075,\n\t\"./my\": 2264,\n\t\"./my.js\": 2264,\n\t\"./nb\": 2274,\n\t\"./nb.js\": 2274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 2572,\n\t\"./nl-be\": 3784,\n\t\"./nl-be.js\": 3784,\n\t\"./nl.js\": 2572,\n\t\"./nn\": 4566,\n\t\"./nn.js\": 4566,\n\t\"./oc-lnc\": 9330,\n\t\"./oc-lnc.js\": 9330,\n\t\"./pa-in\": 9849,\n\t\"./pa-in.js\": 9849,\n\t\"./pl\": 4418,\n\t\"./pl.js\": 4418,\n\t\"./pt\": 9834,\n\t\"./pt-br\": 8303,\n\t\"./pt-br.js\": 8303,\n\t\"./pt.js\": 9834,\n\t\"./ro\": 4457,\n\t\"./ro.js\": 4457,\n\t\"./ru\": 2271,\n\t\"./ru.js\": 2271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 3478,\n\t\"./se.js\": 3478,\n\t\"./si\": 7538,\n\t\"./si.js\": 7538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 6637,\n\t\"./sl.js\": 6637,\n\t\"./sq\": 6794,\n\t\"./sq.js\": 6794,\n\t\"./sr\": 5719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 5719,\n\t\"./ss\": 6000,\n\t\"./ss.js\": 6000,\n\t\"./sv\": 1011,\n\t\"./sv.js\": 1011,\n\t\"./sw\": 748,\n\t\"./sw.js\": 748,\n\t\"./ta\": 1025,\n\t\"./ta.js\": 1025,\n\t\"./te\": 1885,\n\t\"./te.js\": 1885,\n\t\"./tet\": 8861,\n\t\"./tet.js\": 8861,\n\t\"./tg\": 6571,\n\t\"./tg.js\": 6571,\n\t\"./th\": 5802,\n\t\"./th.js\": 5802,\n\t\"./tk\": 9527,\n\t\"./tk.js\": 9527,\n\t\"./tl-ph\": 9231,\n\t\"./tl-ph.js\": 9231,\n\t\"./tlh\": 1052,\n\t\"./tlh.js\": 1052,\n\t\"./tr\": 5096,\n\t\"./tr.js\": 5096,\n\t\"./tzl\": 9846,\n\t\"./tzl.js\": 9846,\n\t\"./tzm\": 1765,\n\t\"./tzm-latn\": 7711,\n\t\"./tzm-latn.js\": 7711,\n\t\"./tzm.js\": 1765,\n\t\"./ug-cn\": 8414,\n\t\"./ug-cn.js\": 8414,\n\t\"./uk\": 6618,\n\t\"./uk.js\": 6618,\n\t\"./ur\": 158,\n\t\"./ur.js\": 158,\n\t\"./uz\": 7609,\n\t\"./uz-latn\": 2475,\n\t\"./uz-latn.js\": 2475,\n\t\"./uz.js\": 7609,\n\t\"./vi\": 1135,\n\t\"./vi.js\": 1135,\n\t\"./x-pseudo\": 4051,\n\t\"./x-pseudo.js\": 4051,\n\t\"./yo\": 9837,\n\t\"./yo.js\": 9837,\n\t\"./zh-cn\": 2648,\n\t\"./zh-cn.js\": 2648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 1541,\n\t\"./zh-mo.js\": 1541,\n\t\"./zh-tw\": 304,\n\t\"./zh-tw.js\": 304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5358;","import { Row } from 'antd';\nimport { Link } from 'react-router-dom';\n\nfunction SourceCode({ value }) {\n return (\n <Row align=\"middle\" justify=\"center\">\n <Link to={value} target=\"_blank\">\n </> Source Code\n </Link>\n </Row>\n );\n}\n\nexport default SourceCode;\n","const githubRepo = 'https://github.com/ansulagrawal/react-big-schedule';\n\n// Example paths\nconst addMorePath = 'blob/master/src/examples/pages/Add-More/index.jsx';\nconst basicPath = 'blob/master/src/examples/pages/Basic/index.jsx';\nconst readOnlyPath = 'blob/master/src/examples/pages/Read-Only/index.jsx';\nconst dragAndDropPath = 'blob/master/src/examples/pages/Drag-And-Drop/index.jsx';\nconst customTimePath = 'blob/master/src/examples/pages/Custom-Time/index.jsx';\nconst resizeParentPath = 'blob/master/src/examples/pages/Resize-By-Parent/index.jsx';\nexport const URLS = {\n githubRepo,\n examples: {\n basic: `${githubRepo}/${basicPath}`,\n readOnly: `${githubRepo}/${readOnlyPath}`,\n addMore: `${githubRepo}/${addMorePath}`,\n dragAndDrop: `${githubRepo}/${dragAndDropPath}`,\n customTime: `${githubRepo}/${customTimePath}`,\n resizeByParent: `${githubRepo}/${resizeParentPath}`,\n },\n};\n"],"names":["DATE_FORMAT","DATETIME_FORMAT","ViewType","Day","Week","Month","Quarter","Year","Custom","Custom1","Custom2","DnDTypes","resources","id","name","title","groupOnly","parentId","events","start","end","resourceId","bgColor","showPopover","resizable","movable","startResizable","endResizable","rrule","eventsForTaskView","groupId","groupName","eventsForCustomEventStyle","type","DnDSource","_createClass","resolveDragObjFunc","DnDEnabled","_this","dndType","arguments","length","undefined","_classCallCheck","_defineProperty","beginDrag","props","endDrag","monitor","didDrop","moveEvent","newEvent","schedulerData","config","viewType","localeDayjs","item","getItem","getItemType","dropResult","getDropResult","slotId","slotName","newStart","newEnd","initialStart","action","isEvent","event","relativeMove","add","diff","Date","format","tmpDayjs","year","month","date","crossResourceMove","_getEventSlotId","slot","getSlotById","hasConflict","checkConflict","forEach","e","eStart","eEnd","conflictOccurred","console","log","canDrag","resourceEvents","_isResizing","spec","getDragSpec","collect","isDragging","this","EventItemPopover","_ref","eventItem","startTime","endTime","statusColor","subtitleGetter","viewEventClick","viewEventText","viewEvent2Click","viewEvent2Text","eventItemPopoverTemplateResolver","subtitle","showViewEvent","clickable1","showViewEvent2","clickable2","renderViewEvent","text","clickHandler","marginLeft","_jsx","className","style","color","cursor","concat","onClick","children","_jsxs","width","eventItemPopoverWidth","Row","align","eventItemPopoverShowColor","Col","span","backgroundColor","eventItemPopoverDateFormat","propTypes","PropTypes","isRequired","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","apply","_next","_throw","_defineProperties","_toPropertyKey","key","_callSuper","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_setPrototypeOf","toPrimitive","String","_toPrimitive","stopDragHelper","count","cellUnit","dragType","tCount","result","displayWeekend","dayOfWeek","day","_ref2","isInPopover","_ref3","EventItem","_Component","ref","eventItemElement","_this$props","dragRef","dragPreviewRef","eventType","resizer","startResizer","endResizer","doDrag","doStartDrag","doEndDrag","stopDrag","stopStartDrag","stopEndDrag","cancelDrag","cancelStartDrag","cancelEndDrag","supportTouch","document","documentElement","ev","_this$props2","stopPropagation","clientX","changedTouches","pageX","buttons","setState","_startResizing","resizerHelper","onselectstart","ondragstart","initDragHelper","_this$props3","left","leftIndex","rightIndex","cellWidth","getContentCellWidth","offset","minWidth","maxWidth","startX","state","newLeft","newWidth","_ref4","_callee","_this$props4","top","updateEventStart","touch","deltaX","sign","_context","_stopResizing","Math","floor","abs","ceil","minuteStep","subscribeResizeEvent","_x","removeEventListener","_this$props5","_this$props6","headers","endX","_ref5","_callee2","_this$props7","updateEventEnd","_context2","error","_x2","_this$props8","rect","getBoundingClientRect","right","contentMousePosX","eventItemLeftRect","eventItemRightRect","initStartDrag","addEventListener","initEndDrag","_isMounted","_inherits","window","prevProps","_this$props9","roundCls","_this2","_this$props0","isStart","isEnd","eventItemClick","eventItemTemplateResolver","_this$state","popoverPlacement","eventItemPopoverPlacement","isPopoverPlacementMousePosition","test","defaultEventBgColor","titleText","behaviors","getEventTextFunc","content","_objectSpread","eventTitle","startResizeDiv","endResizeDiv","eventItemTemplate","height","eventItemHeight","lineHeight","eventItemRef","onMouseMove","handleMouseMove","_getMousePositionOpti","popoverOffsetX","mousePositionPlacement","isMousePositionPlacementLeft","includes","popoverWidth","eventItemMousePosX","posAdjustControl","replace","innerWidth","getMousePositionOptionsData","aItem","eventItemPopoverEnabled","Popover","motion","overflow","placement","trigger","eventItemPopoverTrigger","Component","EventItemWithDnD","dndSource","_useDrag2","useDrag","getDragOptions","object","defaultProps","AddMorePopover","headerItem","closeAction","time","useState","dragAndDropEnabled","header","addMorePopoverHeaderFormat","durationStart","durationEnd","eventList","map","evt","eventStart","eventEnd","eventItemTop","eventItemLineHeight","_createElement","justify","CloseOutlined","filter","bool","number","func","string","AgendaEventItem","eventItemStyle","agendaMaxEventWidth","eventLink","overlayClassName","AgendaResourceEvents","slotClickedFunc","slotItemTemplateResolver","startDate","endDate","getResourceTableWidth","headerItems","flatMap","headerStart","headerEnd","slotItemContent","slotItem","slotTitle","temp","minHeight","AgendaView","renderData","agendaResourceTableWidth","tableHeaderHeight","getTableHeaderHeight","resourceName","isEventPerspective","taskName","agendaViewHeader","resourceEventsList","BodyView","tableRows","render","rowHeight","rowCells","index","nonWorkingTime","nonWorkingTimeBodyBgColor","groupOnlySlotColor","getNonAgendaViewBodyCellBgColorFunc","cellBgColor","getPos","element","x","currentElement","offsetLeft","scrollLeft","offsetTop","scrollTop","offsetParent","DnDContext","sources","pos","initialPoint","getInitialClientOffset","initialLeftIndex","initialEnd","hour","minute","second","drop","component","eventContainer","initialStartTime","initialEndTime","_this$extractInitialT","extractInitialTimes","point","getClientOffset","hover","movingEvent","canDrop","getDropSpec","accept","sourceMap","keys","isOver","get","Map","set","HeaderView","weekNumberRow","nonAgendaCellHeaderTemplateResolver","showWeekNumber","headerHeight","minuteStepsInHour","getMinuteStepsInHour","headerList","datetime","nonWorkingTimeHeadColor","nonWorkingTimeHeadBgColor","pFormattedList","nonAgendaDayCellHeaderFormat","split","pitem","pList","formattedItem","pIndex","push","nonAgendaWeekCellHeaderFormat","nonAgendaMonthCellHeaderFormat","nonAgendaYearCellHeaderFormat","nonAgendaOtherCellHeaderFormat","dateFormatPart","weekGroups","currentWeek","colspan","startIndex","weekNum","isoWeek","week","group","idx","colSpan","fontSize","opacity","borderBottom","padding","textAlign","generateWeekNumberRow","AddMore","clickAction","SelectedArea","selectedAreaStyle","bottom","selectedAreaColor","Summary","summary","summaryColor","summaryPos","marginRight","ResourceEvents","initDrag","isSelecting","srcElement","target","_this$dragHelper2","_slicedToArray","dragHelper","_this$dragHelper4","currentX","min","max","onSetAddMoreState","indexOf","dropRef","creatable","supportTouchHelper","_this$state2","cellMaxEvents","getCellMaxEvents","rowWidth","getContentTableWidth","selectedArea","isTop","marginTop","hasSummary","renderEventsMaxIndex","addMore","addMoreIndex","dayStartFrom","dayStopTo","addMoreItem","onAddMoreClick","eventContainerRef","ResourceEventsWithDnD","dndContext","componentRef","React","_useDrop2","useDrop","current","_useDrop2$","ResourceView","contentScrollbarHeight","toggleExpandFunc","paddingBottom","displayRenderData","resourceList","indents","indent","iconProps","handleToggleExpand","hasChildren","expanded","MinusSquareOutlined","PlusSquareOutlined","slotCell","resolvedTemplate","tdStyle","renderSlotItem","schedulerWidth","besidesWidth","underneathHeight","schedulerMaxHeight","schedulerContentHeight","responsiveByParent","dayResourceTableWidth","weekResourceTableWidth","monthResourceTableWidth","quarterResourceTableWidth","yearResourceTableWidth","customResourceTableWidth","dayCellWidth","weekCellWidth","monthCellWidth","quarterCellWidth","yearCellWidth","customCellWidth","dayMaxEvents","weekMaxEvents","monthMaxEvents","quarterMaxEvents","yearMaxEvents","customMaxEvents","nonAgendaSlotMinHeight","scrollToSpecialDayjsEnabled","calendarPopoverEnabled","recurringEventsEnabled","viewChangeSpinEnabled","dateChangeSpinEnabled","headerEnabled","resourceViewEnabled","defaultExpanded","schedulerHeaderEventsFuncsTimeoutMs","views","viewName","showAgenda","getSummaryFunc","getCustomDateFunc","getScrollSpecialDayjsFunc","getDateLabelFunc","dateLabel","_schedulerData$resour","find","isNonWorkingTimeFunc","SchedulerData","dayjs","newConfig","newBehaviors","eventGroups","eventGroupsAutoGenerated","resizing","scrollToSpecialDayjs","documentWidth","documentHeight","schedulerHeaderHeight","_shouldReloadViewType","calendarPopoverLocale","quarterOfYear","weekday","utc","_validateMinuteStep","_resolveDate","_createHeaders","_createRenderData","preset","locale","setViewType","lang","_validateResource","Array","from","Set","setScrollToSpecialDayjs","autoGenerated","_validateEventGroups","resource","eventGroup","eventGroupId","splice","_validateEvents","_generateEventGroups","_handleRecurringEvents","startOf","endOf","selectDate","now","newSchedulerMaxHeight","endsWith","slotEntered","slotIndent","isExpanded","expandedMap","expandStatus","resourceTableWidth","getResourceTableConfigWidth","contentCellWidth","getContentCellConfigWidth","baseWidth","isSchedulerResponsive","parseInt","Number","slice","baseHeight","validBaseHeight","schedulerHeight","resourceTableConfigWidth","getSchedulerWidth","isResourceViewResponsive","contentCellConfigWidth","isContentViewResponsive","getSlots","configProperty","_attachEvent","_detachEvent","eventSource","eventDest","tempEventSource","tempEventDest","newSlotId","newSlotName","windowStart","windowEnd","eventId","recurringEvents","oldDtstart","oldStart","oldEnd","rule","rrulestr","oldUntil","origOptions","until","toDate","dtstart","toString","exdates","exrule","rruleSet","RRuleSet","exdate","between","recurringEventId","recurringEventStart","recurringEventEnd","tzid","utcOffset","isEventInTimeWindow","num","_this3","setStartAndEndDates","unit","Error","customDate","prevHour","minuteSteps","endValue","startValue","incrementUnit","_getEventGroupId","_this4","_getEventGroupName","has","_this5","slots","slotTree","slotMap","headerEvents","_createInitHeaderEvents","slotRenderData","rowMaxCount","data","parentValue","slotStack","currentNode","initRenderData","pop","timeBetween","date1","date2","timeIn","getDate","getMonth","one","date1Ms","getTime","setHours","dividedBy","event1","event2","start1","start2","end1","end2","_this6","_createInitRenderData","cellMaxEventsCount","_getSpan","newRowHeight","tmp","previousHeader","previousHeaderStart","_createHeaderEvent","renderItemsCount","RadioButton","Radio","RadioGroup","SchedulerHeader","_schedulerData$getCal","onViewChange","goNext","goBack","onSelectDate","leftCustomHeader","rightCustomHeader","_useState2","viewSpinning","setViewSpinning","_useState4","dateSpinning","setDateSpinning","_useState6","visible","setVisible","getDateLabel","getSelectedDate","calendarLocale","getCalendarPopoverLocale","Calendar","defaultValue","isMountedRef","useRef","useEffect","handleEvents","isViewSpinning","funcArg","isSpinEnabled","setSpin","coreFunc","setTimeout","popover","fullscreen","onSelect","radioButtonList","margin","gutter","Space","LeftOutlined","open","onOpenChange","RightOutlined","Spin","spinning","buttonStyle","size","onChange","WrapperFun","DndProvider","backend","HTML5Backend","Scheduler","dndSources","parentRef","prevClick","nextClick","CustomResourceHeader","dndProps","_toConsumableArray","contentScrollbarWidth","resourceScrollbarHeight","resourceScrollbarWidth","currentAreaRef","scrollLeftRef","scrollTopRef","schedulerHeadRef","schedulerHeaderRef","schedulerResourceRef","schedulerContentRef","schedulerContentBgTableRef","ulObserverRef","headerObserverRef","onWindowResize","useCallback","_setDocumentWidth","clientWidth","_setDocumentHeight","clientHeight","prevState","offsetWidth","ResizeObserver","offsetHeight","observe","unobserve","entries","entry","node","getComputedStyle","parseFloat","marginBottom","totalHeight","_setSchedulerHeaderHeight","resolveScrollbarSize","needSet","tmpState","getScrollToSpecialDayjs","scrollWidth","specialDayjs","onSchedulerHeadMouseOver","onSchedulerHeadMouseOut","onSchedulerHeadScroll","onSchedulerResourceMouseOver","onSchedulerResourceMouseOut","onSchedulerResourceScroll","onSchedulerContentMouseOver","onSchedulerContentMouseOut","onSchedulerContentScroll","onScrollLeft","onScrollRight","onScrollTop","onScrollBottom","round","scrollHeight","handleViewChange","charAt","tbodyContent","schedulerContainerWidth","eventDndSource","getDndSource","contentHeight","resourcePaddingBottom","contentPaddingBottom","schedulerContentStyle","overflowX","overflowY","position","resourceContentStyle","maxHeight","availableHeight","getSchedulerHeight","display","verticalAlign","onMouseOver","onFocus","onMouseOut","onBlur","onScroll","paddingRight","schedulerHeader","webpackContext","req","webpackContextResolve","__webpack_require__","code","module","exports","Link","to","githubRepo","URLS","examples","basic","readOnly","dragAndDrop","customTime","resizeByParent"],"ignoreList":[],"sourceRoot":""}
|