UNPKG

wix-style-react

Version:
170 lines (168 loc) • 6.73 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _reactDnd = require("react-dnd"); var _itemTypes = _interopRequireDefault(require("./itemTypes")); var _ReactPortal = _interopRequireDefault(require("../utils/ReactPortal/ReactPortal")); var _constants = require("../DragAndDrop/Draggable/constants"); var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/NestableListBase/DragLayer.js"; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var defaultLayerStyles = { position: 'fixed', pointerEvents: 'none', left: 0, top: 0 }; function getItemStyles(props, clientRect, handleOffset) { var { initialOffset, currentOffset } = props; if (!initialOffset || !currentOffset) { return { display: 'none' }; } var x = currentOffset.x - handleOffset.x; var y = currentOffset.y - handleOffset.y; var { width, height } = clientRect; var transform = "translate(".concat(x, "px, ").concat(y, "px)"); return { transform, WebkitTransform: transform, width, height }; } var defaultConnectDragSource = el => el; class CustomDragLayer extends _react.Component { constructor() { super(...arguments); this.renderChildren = (items, depth) => { var { renderItem, childrenProperty, childrenStyle, theme } = this.props; if (!items || !items.length) { return null; } var classes = (0, _classnames.default)('nestable-item', 'dragging-nestable-item', theme && theme.item); return /*#__PURE__*/_react.default.createElement("div", { style: childrenStyle, __self: this, __source: { fileName: _jsxFileName, lineNumber: 51, columnNumber: 7 } }, items.map((item, i) => /*#__PURE__*/_react.default.createElement("div", { className: classes, "data-hook": "dragging-nestable-item", key: i, __self: this, __source: { fileName: _jsxFileName, lineNumber: 53, columnNumber: 11 } }, /*#__PURE__*/_react.default.cloneElement(renderItem({ item, isPlaceholder: false, isPreview: true, depth, connectDragSource: defaultConnectDragSource }), { [_constants.dataAttributes.draggableSource]: true, [_constants.dataAttributes.depth]: depth - 1, [_constants.dataAttributes.id]: item.id }), !item.isCollapsed && this.renderChildren(item[childrenProperty], depth + 1, item.isCollapsed)))); }; } render() { var { item, itemType, renderItem, isPlaceholder, childrenProperty, isRenderDraggingChildren, theme, dragLayerZIndex } = this.props; if (!isPlaceholder || itemType !== _itemTypes.default.nestedItem) { return null; } var classes = (0, _classnames.default)('nestable-item', 'dragging-nestable-item', theme && theme.item); var renderedItem = /*#__PURE__*/_react.default.cloneElement(renderItem({ item: item.data, isPlaceholder: false, isPreview: true, depth: 1, connectDragSource: defaultConnectDragSource }), { [_constants.dataAttributes.draggableSource]: true, [_constants.dataAttributes.depth]: 0, [_constants.dataAttributes.id]: item.id }); // portal is used because of position fixed and transform issue return /*#__PURE__*/_react.default.createElement(_ReactPortal.default, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 119, columnNumber: 7 } }, /*#__PURE__*/_react.default.createElement("div", { style: _objectSpread(_objectSpread({}, defaultLayerStyles), {}, { zIndex: dragLayerZIndex }), __self: this, __source: { fileName: _jsxFileName, lineNumber: 120, columnNumber: 9 } }, /*#__PURE__*/_react.default.createElement("div", { className: classes, style: getItemStyles(this.props, item.clientRect, item.handleOffset), __self: this, __source: { fileName: _jsxFileName, lineNumber: 121, columnNumber: 11 } }, renderedItem, isRenderDraggingChildren && !item.data.isCollapsed && this.renderChildren(item.data[childrenProperty], 2)))); } } class PureDragLayer extends _react.default.PureComponent { render() { return /*#__PURE__*/_react.default.createElement(CustomDragLayer, (0, _extends2.default)({}, this.props, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 142, columnNumber: 12 } })); } } var _default = exports.default = (0, _reactDnd.DragLayer)(monitor => ({ item: monitor.getItem(), itemType: monitor.getItemType(), initialOffset: monitor.getInitialSourceClientOffset(), currentOffset: monitor.getSourceClientOffset(), isPlaceholder: monitor.isDragging() }))(PureDragLayer); //# sourceMappingURL=DragLayer.js.map