volleyball-dev-frontend/node_modules/react-big-calendar/lib/addons/dragAndDrop/withDragAndDrop.js
2025-06-02 16:42:16 +00:00

131 lines
5.6 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = withDragAndDrop;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireDefault(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _propTypes = require("../../utils/propTypes");
var _EventWrapper = _interopRequireDefault(require("./EventWrapper"));
var _EventContainerWrapper = _interopRequireDefault(require("./EventContainerWrapper"));
var _WeekWrapper = _interopRequireDefault(require("./WeekWrapper"));
var _common = require("./common");
var _DnDContext = require("./DnDContext");
var _excluded = ["selectable", "elementProps", "components"];
function withDragAndDrop(Calendar) {
var DragAndDropCalendar = /*#__PURE__*/function (_React$Component) {
function DragAndDropCalendar() {
var _this;
(0, _classCallCheck2.default)(this, DragAndDropCalendar);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _callSuper2.default)(this, DragAndDropCalendar, [].concat(args));
_this.defaultOnDragOver = function (event) {
event.preventDefault();
};
_this.handleBeginAction = function (event, action, direction) {
_this.setState({
event: event,
action: action,
direction: direction
});
var onDragStart = _this.props.onDragStart;
if (onDragStart) onDragStart({
event: event,
action: action,
direction: direction
});
};
_this.handleInteractionStart = function () {
if (_this.state.interacting === false) _this.setState({
interacting: true
});
};
_this.handleInteractionEnd = function (interactionInfo) {
var _this$state = _this.state,
action = _this$state.action,
event = _this$state.event;
if (!action) return;
_this.setState({
action: null,
event: null,
interacting: false,
direction: null
});
if (interactionInfo == null) return;
interactionInfo.event = event;
var _this$props = _this.props,
onEventDrop = _this$props.onEventDrop,
onEventResize = _this$props.onEventResize;
if (action === 'move' && onEventDrop) onEventDrop(interactionInfo);
if (action === 'resize' && onEventResize) onEventResize(interactionInfo);
};
_this.state = {
interacting: false
};
return _this;
}
(0, _inherits2.default)(DragAndDropCalendar, _React$Component);
return (0, _createClass2.default)(DragAndDropCalendar, [{
key: "getDnDContextValue",
value: function getDnDContextValue() {
return {
draggable: {
onStart: this.handleInteractionStart,
onEnd: this.handleInteractionEnd,
onBeginAction: this.handleBeginAction,
onDropFromOutside: this.props.onDropFromOutside,
dragFromOutsideItem: this.props.dragFromOutsideItem,
draggableAccessor: this.props.draggableAccessor,
resizableAccessor: this.props.resizableAccessor,
dragAndDropAction: this.state
}
};
}
}, {
key: "render",
value: function render() {
var _this$props2 = this.props,
selectable = _this$props2.selectable,
elementProps = _this$props2.elementProps,
components = _this$props2.components,
props = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
var interacting = this.state.interacting;
delete props.onEventDrop;
delete props.onEventResize;
props.selectable = selectable ? 'ignoreEvents' : false;
this.components = (0, _common.mergeComponents)(components, {
eventWrapper: _EventWrapper.default,
eventContainerWrapper: _EventContainerWrapper.default,
weekWrapper: _WeekWrapper.default
});
var elementPropsWithDropFromOutside = this.props.onDropFromOutside ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, elementProps), {}, {
onDragOver: this.props.onDragOver || this.defaultOnDragOver
}) : elementProps;
props.className = (0, _clsx.default)(props.className, 'rbc-addons-dnd', !!interacting && 'rbc-addons-dnd-is-dragging');
var context = this.getDnDContextValue();
return /*#__PURE__*/_react.default.createElement(_DnDContext.DnDContext.Provider, {
value: context
}, /*#__PURE__*/_react.default.createElement(Calendar, Object.assign({}, props, {
elementProps: elementPropsWithDropFromOutside,
components: this.components
})));
}
}]);
}(_react.default.Component);
DragAndDropCalendar.defaultProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, Calendar.defaultProps), {}, {
draggableAccessor: null,
resizableAccessor: null,
resizable: true
});
return DragAndDropCalendar;
}