{"version":3,"file":"7717.d08a494dd42ad190a5da.js","mappings":"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","sources":["webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/GridItem.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ReactGridLayout.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/calculateUtils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/components/WidthProvider.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/fastRGLPropsEqual.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/responsiveUtils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/utils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/index.js","webpack://grafana/../../opt/drone/yarncache/lodash.isequal-npm-4.5.0-f8b0f64d63-da27515dc5.zip/node_modules/lodash.isequal/index.js"],"sourcesContent":["\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDraggable = require(\"react-draggable\");\n\nvar _reactResizable = require(\"react-resizable\");\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _ReactGridLayoutPropTypes = require(\"./ReactGridLayoutPropTypes\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * An individual item within a ReactGridLayout.\n */\nvar GridItem = /*#__PURE__*/function (_React$Component) {\n _inherits(GridItem, _React$Component);\n\n var _super = _createSuper(GridItem);\n\n function GridItem() {\n var _this;\n\n _classCallCheck(this, GridItem);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resizing: null,\n dragging: null,\n className: \"\"\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/_react.default.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, _ref) {\n var node = _ref.node;\n var _this$props = _this.props,\n onDragStart = _this$props.onDragStart,\n transformScale = _this$props.transformScale;\n if (!onDragStart) return;\n var newPosition\n /*: PartialPosition*/\n = {\n top: 0,\n left: 0\n }; // TODO: this wont work on nested parents\n\n var offsetParent = node.offsetParent;\n if (!offsetParent) return;\n var parentRect = offsetParent.getBoundingClientRect();\n var clientRect = node.getBoundingClientRect();\n var cLeft = clientRect.left / transformScale;\n var pLeft = parentRect.left / transformScale;\n var cTop = clientRect.top / transformScale;\n var pTop = parentRect.top / transformScale;\n newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;\n newPosition.top = cTop - pTop + offsetParent.scrollTop;\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY = (0, _calculateUtils.calcXY)(_this.getPositionParams(), newPosition.top, newPosition.left, _this.props.w, _this.props.h),\n x = _calcXY.x,\n y = _calcXY.y;\n\n return onDragStart.call(_assertThisInitialized(_this), _this.props.i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n var onDrag = _this.props.onDrag;\n if (!onDrag) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDrag called before onDragStart.\");\n }\n\n var top = _this.state.dragging.top + deltaY;\n var left = _this.state.dragging.left + deltaX;\n var _this$props2 = _this.props,\n isBounded = _this$props2.isBounded,\n i = _this$props2.i,\n w = _this$props2.w,\n h = _this$props2.h,\n containerWidth = _this$props2.containerWidth;\n\n var positionParams = _this.getPositionParams(); // Boundary calculations; keeps items within the grid\n\n\n if (isBounded) {\n var offsetParent = node.offsetParent;\n\n if (offsetParent) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n rowHeight = _this$props3.rowHeight;\n var bottomBoundary = offsetParent.clientHeight - (0, _calculateUtils.calcGridItemWHPx)(h, rowHeight, margin[1]);\n top = (0, _calculateUtils.clamp)(top, 0, bottomBoundary);\n var colWidth = (0, _calculateUtils.calcGridColWidth)(positionParams);\n var rightBoundary = containerWidth - (0, _calculateUtils.calcGridItemWHPx)(w, colWidth, margin[0]);\n left = (0, _calculateUtils.clamp)(left, 0, rightBoundary);\n }\n }\n\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY2 = (0, _calculateUtils.calcXY)(positionParams, top, left, w, h),\n x = _calcXY2.x,\n y = _calcXY2.y;\n\n return onDrag.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, _ref3) {\n var node = _ref3.node;\n var onDragStop = _this.props.onDragStop;\n if (!onDragStop) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDragEnd called before onDragStart.\");\n }\n\n var _this$props4 = _this.props,\n w = _this$props4.w,\n h = _this$props4.h,\n i = _this$props4.i;\n var _this$state$dragging = _this.state.dragging,\n left = _this$state$dragging.left,\n top = _this$state$dragging.top;\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: null\n });\n\n var _calcXY3 = (0, _calculateUtils.calcXY)(_this.getPositionParams(), top, left, w, h),\n x = _calcXY3.x,\n y = _calcXY3.y;\n\n return onDragStop.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStop\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStart\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResize\");\n });\n\n return _this;\n }\n\n _createClass(GridItem, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n // We can't deeply compare children. If the developer memoizes them, we can\n // use this optimization.\n if (this.props.children !== nextProps.children) return true;\n if (this.props.droppingPosition !== nextProps.droppingPosition) return true; // TODO memoize these calculations so they don't take so long?\n\n var oldPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(this.props), this.props.x, this.props.y, this.props.w, this.props.h, this.state);\n var newPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(nextProps), nextProps.x, nextProps.y, nextProps.w, nextProps.h, nextState);\n return !(0, _utils.fastPositionEqual)(oldPosition, newPosition) || this.props.useCSSTransforms !== nextProps.useCSSTransforms;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.moveDroppingItem({});\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n ) {\n this.moveDroppingItem(prevProps);\n } // When a droppingPosition is present, this means we should fire a move event, as if we had moved\n // this element by `x, y` pixels.\n\n }, {\n key: \"moveDroppingItem\",\n value: function moveDroppingItem(prevProps\n /*: Props*/\n ) {\n var droppingPosition = this.props.droppingPosition;\n if (!droppingPosition) return;\n var node = this.elementRef.current; // Can't find DOM node (are we unmounted?)\n\n if (!node) return;\n var prevDroppingPosition = prevProps.droppingPosition || {\n left: 0,\n top: 0\n };\n var dragging = this.state.dragging;\n var shouldDrag = dragging && droppingPosition.left !== prevDroppingPosition.left || droppingPosition.top !== prevDroppingPosition.top;\n\n if (!dragging) {\n this.onDragStart(droppingPosition.e, {\n node: node,\n deltaX: droppingPosition.left,\n deltaY: droppingPosition.top\n });\n } else if (shouldDrag) {\n var deltaX = droppingPosition.left - dragging.left;\n var deltaY = droppingPosition.top - dragging.top;\n this.onDrag(droppingPosition.e, {\n node: node,\n deltaX: deltaX,\n deltaY: deltaY\n });\n }\n }\n }, {\n key: \"getPositionParams\",\n value: function getPositionParams()\n /*: PositionParams*/\n {\n var props\n /*: Props*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n return {\n cols: props.cols,\n containerPadding: props.containerPadding,\n containerWidth: props.containerWidth,\n margin: props.margin,\n maxRows: props.maxRows,\n rowHeight: props.rowHeight\n };\n }\n /**\n * This is where we set the grid item's absolute placement. It gets a little tricky because we want to do it\n * well when server rendering, and the only way to do that properly is to use percentage width/left because\n * we don't know exactly what the browser viewport is.\n * Unfortunately, CSS Transforms, which are great for performance, break in this instance because a percentage\n * left is relative to the item itself, not its container! So we cannot use them on the server rendering pass.\n *\n * @param {Object} pos Position object with width, height, left, top.\n * @return {Object} Style object.\n */\n\n }, {\n key: \"createStyle\",\n value: function createStyle(pos\n /*: Position*/\n )\n /*: { [key: string]: ?string }*/\n {\n var _this$props5 = this.props,\n usePercentages = _this$props5.usePercentages,\n containerWidth = _this$props5.containerWidth,\n useCSSTransforms = _this$props5.useCSSTransforms;\n var style; // CSS Transforms support (default)\n\n if (useCSSTransforms) {\n style = (0, _utils.setTransform)(pos);\n } else {\n // top,left (slow)\n style = (0, _utils.setTopLeft)(pos); // This is used for server rendering.\n\n if (usePercentages) {\n style.left = (0, _utils.perc)(pos.left / containerWidth);\n style.width = (0, _utils.perc)(pos.width / containerWidth);\n }\n }\n\n return style;\n }\n /**\n * Mix a Draggable instance into a child.\n * @param {Element} child Child element.\n * @return {Element} Child wrapped in Draggable.\n */\n\n }, {\n key: \"mixinDraggable\",\n value: function mixinDraggable(child\n /*: ReactElement<any>*/\n , isDraggable\n /*: boolean*/\n )\n /*: ReactElement<any>*/\n {\n return /*#__PURE__*/_react.default.createElement(_reactDraggable.DraggableCore, {\n disabled: !isDraggable,\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop,\n handle: this.props.handle,\n cancel: \".react-resizable-handle\" + (this.props.cancel ? \",\" + this.props.cancel : \"\"),\n scale: this.props.transformScale,\n nodeRef: this.elementRef\n }, child);\n }\n /**\n * Mix a Resizable instance into a child.\n * @param {Element} child Child element.\n * @param {Object} position Position object (pixel values)\n * @return {Element} Child wrapped in Resizable.\n */\n\n }, {\n key: \"mixinResizable\",\n value: function mixinResizable(child\n /*: ReactElement<any>*/\n , position\n /*: Position*/\n , isResizable\n /*: boolean*/\n )\n /*: ReactElement<any>*/\n {\n var _this$props6 = this.props,\n cols = _this$props6.cols,\n x = _this$props6.x,\n minW = _this$props6.minW,\n minH = _this$props6.minH,\n maxW = _this$props6.maxW,\n maxH = _this$props6.maxH,\n transformScale = _this$props6.transformScale,\n resizeHandles = _this$props6.resizeHandles,\n resizeHandle = _this$props6.resizeHandle;\n var positionParams = this.getPositionParams(); // This is the max possible width - doesn't go to infinity because of the width of the window\n\n var maxWidth = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, cols - x, 0).width; // Calculate min/max constraints using our min & maxes\n\n var mins = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, minW, minH);\n var maxes = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, maxW, maxH);\n var minConstraints = [mins.width, mins.height];\n var maxConstraints = [Math.min(maxes.width, maxWidth), Math.min(maxes.height, Infinity)];\n return /*#__PURE__*/_react.default.createElement(_reactResizable.Resizable // These are opts for the resize handle itself\n , {\n draggableOpts: {\n disabled: !isResizable\n },\n className: isResizable ? undefined : \"react-resizable-hide\",\n width: position.width,\n height: position.height,\n minConstraints: minConstraints,\n maxConstraints: maxConstraints,\n onResizeStop: this.onResizeStop,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n transformScale: transformScale,\n resizeHandles: resizeHandles,\n handle: resizeHandle\n }, child);\n }\n /**\n * onDragStart event handler\n * @param {Event} e event data\n * @param {Object} callbackData an object with node, delta and position information\n */\n\n }, {\n key: \"onResizeHandler\",\n value:\n /**\n * Wrapper around drag events to provide more useful data.\n * All drag events call the function with the given handler name,\n * with the signature (index, x, y).\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */\n function onResizeHandler(e\n /*: Event*/\n , _ref4, handlerName\n /*: string*/\n )\n /*: void*/\n {\n var node = _ref4.node,\n size = _ref4.size;\n var handler = this.props[handlerName];\n if (!handler) return;\n var _this$props7 = this.props,\n cols = _this$props7.cols,\n x = _this$props7.x,\n y = _this$props7.y,\n i = _this$props7.i,\n maxH = _this$props7.maxH,\n minH = _this$props7.minH;\n var _this$props8 = this.props,\n minW = _this$props8.minW,\n maxW = _this$props8.maxW; // Get new XY\n\n var _calcWH = (0, _calculateUtils.calcWH)(this.getPositionParams(), size.width, size.height, x, y),\n w = _calcWH.w,\n h = _calcWH.h; // minW should be at least 1 (TODO propTypes validation?)\n\n\n minW = Math.max(minW, 1); // maxW should be at most (cols - x)\n\n maxW = Math.min(maxW, cols - x); // Min/max capping\n\n w = (0, _calculateUtils.clamp)(w, minW, maxW);\n h = (0, _calculateUtils.clamp)(h, minH, maxH);\n this.setState({\n resizing: handlerName === \"onResizeStop\" ? null : size\n });\n handler.call(this, i, w, h, {\n e: e,\n node: node,\n size: size\n });\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactNode*/\n {\n var _this$props9 = this.props,\n x = _this$props9.x,\n y = _this$props9.y,\n w = _this$props9.w,\n h = _this$props9.h,\n isDraggable = _this$props9.isDraggable,\n isResizable = _this$props9.isResizable,\n droppingPosition = _this$props9.droppingPosition,\n useCSSTransforms = _this$props9.useCSSTransforms;\n var pos = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(), x, y, w, h, this.state);\n\n var child = _react.default.Children.only(this.props.children); // Create the child element. We clone the existing element but modify its className and style.\n\n\n var newChild = /*#__PURE__*/_react.default.cloneElement(child, {\n ref: this.elementRef,\n className: (0, _clsx.default)(\"react-grid-item\", child.props.className, this.props.className, {\n static: this.props.static,\n resizing: Boolean(this.state.resizing),\n \"react-draggable\": isDraggable,\n \"react-draggable-dragging\": Boolean(this.state.dragging),\n dropping: Boolean(droppingPosition),\n cssTransforms: useCSSTransforms\n }),\n // We can set the width and height on the child, but unfortunately we can't set the position.\n style: _objectSpread(_objectSpread(_objectSpread({}, this.props.style), child.props.style), this.createStyle(pos))\n }); // Resizable support. This is usually on but the user can toggle it off.\n\n\n newChild = this.mixinResizable(newChild, pos, isResizable); // Draggable support. This is always on, except for with placeholders.\n\n newChild = this.mixinDraggable(newChild, isDraggable);\n return newChild;\n }\n }]);\n\n return GridItem;\n}(_react.default.Component);\n\nexports.default = GridItem;\n\n_defineProperty(GridItem, \"propTypes\", {\n // Children must be only a single element\n children: _propTypes.default.element,\n // General grid attributes\n cols: _propTypes.default.number.isRequired,\n containerWidth: _propTypes.default.number.isRequired,\n rowHeight: _propTypes.default.number.isRequired,\n margin: _propTypes.default.array.isRequired,\n maxRows: _propTypes.default.number.isRequired,\n containerPadding: _propTypes.default.array.isRequired,\n // These are all in grid units\n x: _propTypes.default.number.isRequired,\n y: _propTypes.default.number.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired,\n // All optional\n minW: function minW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minWidth not Number\");\n if (value > props.w || value > props.maxW) return new Error(\"minWidth larger than item width/maxWidth\");\n },\n maxW: function maxW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxWidth not Number\");\n if (value < props.w || value < props.minW) return new Error(\"maxWidth smaller than item width/minWidth\");\n },\n minH: function minH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minHeight not Number\");\n if (value > props.h || value > props.maxH) return new Error(\"minHeight larger than item height/maxHeight\");\n },\n maxH: function maxH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxHeight not Number\");\n if (value < props.h || value < props.minH) return new Error(\"maxHeight smaller than item height/minHeight\");\n },\n // ID is nice to have for callbacks\n i: _propTypes.default.string.isRequired,\n // Resize handle options\n resizeHandles: _ReactGridLayoutPropTypes.resizeHandleAxesType,\n resizeHandle: _ReactGridLayoutPropTypes.resizeHandleType,\n // Functions\n onDragStop: _propTypes.default.func,\n onDragStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onResizeStop: _propTypes.default.func,\n onResizeStart: _propTypes.default.func,\n onResize: _propTypes.default.func,\n // Flags\n isDraggable: _propTypes.default.bool.isRequired,\n isResizable: _propTypes.default.bool.isRequired,\n isBounded: _propTypes.default.bool.isRequired,\n static: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool.isRequired,\n transformScale: _propTypes.default.number,\n // Others\n className: _propTypes.default.string,\n // Selector for draggable handle\n handle: _propTypes.default.string,\n // Selector for draggable cancel (see react-draggable)\n cancel: _propTypes.default.string,\n // Current position of a dropping element\n droppingPosition: _propTypes.default.shape({\n e: _propTypes.default.object.isRequired,\n left: _propTypes.default.number.isRequired,\n top: _propTypes.default.number.isRequired\n })\n});\n\n_defineProperty(GridItem, \"defaultProps\", {\n className: \"\",\n cancel: \"\",\n handle: \"\",\n minH: 1,\n minW: 1,\n maxH: Infinity,\n maxW: Infinity,\n transformScale: 1\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _GridItem = _interopRequireDefault(require(\"./GridItem\"));\n\nvar _ReactGridLayoutPropTypes = _interopRequireDefault(require(\"./ReactGridLayoutPropTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// End Types\nvar layoutClassName = \"react-grid-layout\";\nvar isFirefox = false; // Try...catch will protect from navigator not existing (e.g. node) or a bad implementation of navigator\n\ntry {\n isFirefox = /firefox/i.test(navigator.userAgent);\n} catch (e) {\n /* Ignore */\n}\n/**\n * A reactive, fluid grid layout with draggable, resizable components.\n */\n\n\nvar ReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactGridLayout, _React$Component);\n\n var _super = _createSuper(ReactGridLayout);\n\n function ReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n activeDrag: null,\n layout: (0, _utils.synchronizeLayoutWithChildren)(_this.props.layout, _this.props.children, _this.props.cols, // Legacy support for verticalCompact: false\n (0, _utils.compactType)(_this.props), _this.props.allowOverlap),\n mounted: false,\n oldDragItem: null,\n oldLayout: null,\n oldResizeItem: null,\n droppingDOMNode: null,\n children: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"dragEnterCounter\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (i\n /*: string*/\n , x\n /*: number*/\n , y\n /*: number*/\n , _ref) {\n var e = _ref.e,\n node = _ref.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldDragItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: layout\n });\n\n return _this.props.onDragStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (i, x, y, _ref2) {\n var e = _ref2.e,\n node = _ref2.node;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props = _this.props,\n cols = _this$props.cols,\n allowOverlap = _this$props.allowOverlap,\n preventCollision = _this$props.preventCollision;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Create placeholder (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n placeholder: true,\n i: i\n }; // Move the element to the dragged location.\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDrag(layout, oldDragItem, l, placeholder, e, node);\n\n _this.setState({\n layout: allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (i, x, y, _ref3) {\n var e = _ref3.e,\n node = _ref3.node;\n if (!_this.state.activeDrag) return;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props2 = _this.props,\n cols = _this$props2.cols,\n preventCollision = _this$props2.preventCollision,\n allowOverlap = _this$props2.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Move the element here\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDragStop(layout, oldDragItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldDragItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (i, w, h, _ref4) {\n var e = _ref4.e,\n node = _ref4.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldResizeItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: _this.state.layout\n });\n\n _this.props.onResizeStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (i, w, h, _ref5) {\n var e = _ref5.e,\n node = _ref5.node;\n var _this$state = _this.state,\n layout = _this$state.layout,\n oldResizeItem = _this$state.oldResizeItem;\n var _this$props3 = _this.props,\n cols = _this$props3.cols,\n preventCollision = _this$props3.preventCollision,\n allowOverlap = _this$props3.allowOverlap;\n\n var _withLayoutItem = (0, _utils.withLayoutItem)(layout, i, function (l) {\n // Something like quad tree should be used\n // to find collisions faster\n var hasCollisions;\n\n if (preventCollision && !allowOverlap) {\n var collisions = (0, _utils.getAllCollisions)(layout, _objectSpread(_objectSpread({}, l), {}, {\n w: w,\n h: h\n })).filter(function (layoutItem) {\n return layoutItem.i !== l.i;\n });\n hasCollisions = collisions.length > 0; // If we're colliding, we need adjust the placeholder.\n\n // If we're colliding, we need adjust the placeholder.\n if (hasCollisions) {\n // adjust w && h to maximum allowed space\n var leastX = Infinity,\n leastY = Infinity;\n collisions.forEach(function (layoutItem) {\n if (layoutItem.x > l.x) leastX = Math.min(leastX, layoutItem.x);\n if (layoutItem.y > l.y) leastY = Math.min(leastY, layoutItem.y);\n });\n if (Number.isFinite(leastX)) l.w = leastX - l.x;\n if (Number.isFinite(leastY)) l.h = leastY - l.y;\n }\n }\n\n if (!hasCollisions) {\n // Set new width and height.\n l.w = w;\n l.h = h;\n }\n\n return l;\n }),\n _withLayoutItem2 = _slicedToArray(_withLayoutItem, 2),\n newLayout = _withLayoutItem2[0],\n l = _withLayoutItem2[1]; // Shouldn't ever happen, but typechecking makes it necessary\n\n\n if (!l) return; // Create placeholder element (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n static: true,\n i: i\n };\n\n _this.props.onResize(newLayout, oldResizeItem, l, placeholder, e, node); // Re-compact the newLayout and set the drag placeholder.\n\n\n _this.setState({\n layout: allowOverlap ? newLayout : (0, _utils.compact)(newLayout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (i, w, h, _ref6) {\n var e = _ref6.e,\n node = _ref6.node;\n var _this$state2 = _this.state,\n layout = _this$state2.layout,\n oldResizeItem = _this$state2.oldResizeItem;\n var _this$props4 = _this.props,\n cols = _this$props4.cols,\n allowOverlap = _this$props4.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n\n _this.props.onResizeStop(layout, oldResizeItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldResizeItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragOver\", function (e) {\n var _e$nativeEvent$target;\n\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation(); // we should ignore events from layout's children in Firefox\n // to avoid unpredictable jumping of a dropping placeholder\n // FIXME remove this hack\n\n if (isFirefox && // $FlowIgnore can't figure this out\n !((_e$nativeEvent$target = e.nativeEvent.target) !== null && _e$nativeEvent$target !== void 0 && _e$nativeEvent$target.classList.contains(layoutClassName))) {\n return false;\n }\n\n var _this$props5 = _this.props,\n droppingItem = _this$props5.droppingItem,\n onDropDragOver = _this$props5.onDropDragOver,\n margin = _this$props5.margin,\n cols = _this$props5.cols,\n rowHeight = _this$props5.rowHeight,\n maxRows = _this$props5.maxRows,\n width = _this$props5.width,\n containerPadding = _this$props5.containerPadding,\n transformScale = _this$props5.transformScale; // Allow user to customize the dropping item or short-circuit the drop based on the results\n // of the `onDragOver(e: Event)` callback.\n\n var onDragOverResult = onDropDragOver === null || onDropDragOver === void 0 ? void 0 : onDropDragOver(e);\n\n if (onDragOverResult === false) {\n if (_this.state.droppingDOMNode) {\n _this.removeDroppingPlaceholder();\n }\n\n return false;\n }\n\n var finalDroppingItem = _objectSpread(_objectSpread({}, droppingItem), onDragOverResult);\n\n var layout = _this.state.layout; // This is relative to the DOM element that this event fired for.\n\n var _e$nativeEvent = e.nativeEvent,\n layerX = _e$nativeEvent.layerX,\n layerY = _e$nativeEvent.layerY;\n var droppingPosition = {\n left: layerX / transformScale,\n top: layerY / transformScale,\n e: e\n };\n\n if (!_this.state.droppingDOMNode) {\n var positionParams\n /*: PositionParams*/\n = {\n cols: cols,\n margin: margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n containerWidth: width,\n containerPadding: containerPadding || margin\n };\n var calculatedPosition = (0, _calculateUtils.calcXY)(positionParams, layerY, layerX, finalDroppingItem.w, finalDroppingItem.h);\n\n _this.setState({\n droppingDOMNode: /*#__PURE__*/React.createElement(\"div\", {\n key: finalDroppingItem.i\n }),\n droppingPosition: droppingPosition,\n layout: [].concat(_toConsumableArray(layout), [_objectSpread(_objectSpread({}, finalDroppingItem), {}, {\n x: calculatedPosition.x,\n y: calculatedPosition.y,\n static: false,\n isDraggable: true\n })])\n });\n } else if (_this.state.droppingPosition) {\n var _this$state$droppingP = _this.state.droppingPosition,\n left = _this$state$droppingP.left,\n top = _this$state$droppingP.top;\n var shouldUpdatePosition = left != layerX || top != layerY;\n\n if (shouldUpdatePosition) {\n _this.setState({\n droppingPosition: droppingPosition\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeDroppingPlaceholder\", function () {\n var _this$props6 = _this.props,\n droppingItem = _this$props6.droppingItem,\n cols = _this$props6.cols;\n var layout = _this.state.layout;\n var newLayout = (0, _utils.compact)(layout.filter(function (l) {\n return l.i !== droppingItem.i;\n }), (0, _utils.compactType)(_this.props), cols);\n\n _this.setState({\n layout: newLayout,\n droppingDOMNode: null,\n activeDrag: null,\n droppingPosition: undefined\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter--; // onDragLeave can be triggered on each layout's child.\n // But we know that count of dragEnter and dragLeave events\n // will be balanced after leaving the layout's container\n // so we can increase and decrease count of dragEnter and\n // when it'll be equal to 0 we'll remove the placeholder\n\n if (_this.dragEnterCounter === 0) {\n _this.removeDroppingPlaceholder();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter++;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrop\", function (e\n /*: Event*/\n ) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n var droppingItem = _this.props.droppingItem;\n var layout = _this.state.layout;\n var item = layout.find(function (l) {\n return l.i === droppingItem.i;\n }); // reset dragEnter counter on drop\n\n _this.dragEnterCounter = 0;\n\n _this.removeDroppingPlaceholder();\n\n _this.props.onDrop(layout, item, e);\n });\n\n return _this;\n }\n\n _createClass(ReactGridLayout, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n mounted: true\n }); // Possibly call back with layout on mount. This should be done after correcting the layout width\n // to ensure we don't rerender with the wrong width.\n\n this.onLayoutMaybeChanged(this.state.layout, this.props.layout);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n return (// NOTE: this is almost always unequal. Therefore the only way to get better performance\n // from SCU is if the user intentionally memoizes children. If they do, and they can\n // handle changes properly, performance will increase.\n this.props.children !== nextProps.children || !(0, _utils.fastRGLPropsEqual)(this.props, nextProps, _lodash.default) || this.state.activeDrag !== nextState.activeDrag || this.state.mounted !== nextState.mounted || this.state.droppingPosition !== nextState.droppingPosition\n );\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n , prevState\n /*: State*/\n ) {\n if (!this.state.activeDrag) {\n var newLayout = this.state.layout;\n var oldLayout = prevState.layout;\n this.onLayoutMaybeChanged(newLayout, oldLayout);\n }\n }\n /**\n * Calculates a pixel value for the container.\n * @return {String} Container height in pixels.\n */\n\n }, {\n key: \"containerHeight\",\n value: function containerHeight()\n /*: ?string*/\n {\n if (!this.props.autoSize) return;\n var nbRow = (0, _utils.bottom)(this.state.layout);\n var containerPaddingY = this.props.containerPadding ? this.props.containerPadding[1] : this.props.margin[1];\n return nbRow * this.props.rowHeight + (nbRow - 1) * this.props.margin[1] + containerPaddingY * 2 + \"px\";\n }\n /**\n * When dragging starts\n * @param {String} i Id of the child\n * @param {Number} x X position of the move\n * @param {Number} y Y position of the move\n * @param {Event} e The mousedown event\n * @param {Element} node The current dragging DOM element\n */\n\n }, {\n key: \"onLayoutMaybeChanged\",\n value: function onLayoutMaybeChanged(newLayout\n /*: Layout*/\n , oldLayout\n /*: ?Layout*/\n ) {\n if (!oldLayout) oldLayout = this.state.layout;\n\n if (!(0, _lodash.default)(oldLayout, newLayout)) {\n this.props.onLayoutChange(newLayout);\n }\n }\n }, {\n key: \"placeholder\",\n value:\n /**\n * Create a placeholder object.\n * @return {Element} Placeholder div.\n */\n function placeholder()\n /*: ?ReactElement<any>*/\n {\n var activeDrag = this.state.activeDrag;\n if (!activeDrag) return null;\n var _this$props7 = this.props,\n width = _this$props7.width,\n cols = _this$props7.cols,\n margin = _this$props7.margin,\n containerPadding = _this$props7.containerPadding,\n rowHeight = _this$props7.rowHeight,\n maxRows = _this$props7.maxRows,\n useCSSTransforms = _this$props7.useCSSTransforms,\n transformScale = _this$props7.transformScale; // {...this.state.activeDrag} is pretty slow, actually\n\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n w: activeDrag.w,\n h: activeDrag.h,\n x: activeDrag.x,\n y: activeDrag.y,\n i: activeDrag.i,\n className: \"react-grid-placeholder\",\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n isDraggable: false,\n isResizable: false,\n isBounded: false,\n useCSSTransforms: useCSSTransforms,\n transformScale: transformScale\n }, /*#__PURE__*/React.createElement(\"div\", null));\n }\n /**\n * Given a grid item, set its style attributes & surround in a <Draggable>.\n * @param {Element} child React element.\n * @return {Element} Element wrapped in draggable and properly placed.\n */\n\n }, {\n key: \"processGridItem\",\n value: function processGridItem(child\n /*: ReactElement<any>*/\n , isDroppingItem\n /*: boolean*/\n )\n /*: ?ReactElement<any>*/\n {\n if (!child || !child.key) return;\n var l = (0, _utils.getLayoutItem)(this.state.layout, String(child.key));\n if (!l) return null;\n var _this$props8 = this.props,\n width = _this$props8.width,\n cols = _this$props8.cols,\n margin = _this$props8.margin,\n containerPadding = _this$props8.containerPadding,\n rowHeight = _this$props8.rowHeight,\n maxRows = _this$props8.maxRows,\n isDraggable = _this$props8.isDraggable,\n isResizable = _this$props8.isResizable,\n isBounded = _this$props8.isBounded,\n useCSSTransforms = _this$props8.useCSSTransforms,\n transformScale = _this$props8.transformScale,\n draggableCancel = _this$props8.draggableCancel,\n draggableHandle = _this$props8.draggableHandle,\n resizeHandles = _this$props8.resizeHandles,\n resizeHandle = _this$props8.resizeHandle;\n var _this$state3 = this.state,\n mounted = _this$state3.mounted,\n droppingPosition = _this$state3.droppingPosition; // Determine user manipulations possible.\n // If an item is static, it can't be manipulated by default.\n // Any properties defined directly on the grid item will take precedence.\n\n var draggable = typeof l.isDraggable === \"boolean\" ? l.isDraggable : !l.static && isDraggable;\n var resizable = typeof l.isResizable === \"boolean\" ? l.isResizable : !l.static && isResizable;\n var resizeHandlesOptions = l.resizeHandles || resizeHandles; // isBounded set on child if set on parent, and child is not explicitly false\n\n var bounded = draggable && isBounded && l.isBounded !== false;\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n cancel: draggableCancel,\n handle: draggableHandle,\n onDragStop: this.onDragStop,\n onDragStart: this.onDragStart,\n onDrag: this.onDrag,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n onResizeStop: this.onResizeStop,\n isDraggable: draggable,\n isResizable: resizable,\n isBounded: bounded,\n useCSSTransforms: useCSSTransforms && mounted,\n usePercentages: !mounted,\n transformScale: transformScale,\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n i: l.i,\n minH: l.minH,\n minW: l.minW,\n maxH: l.maxH,\n maxW: l.maxW,\n static: l.static,\n droppingPosition: isDroppingItem ? droppingPosition : undefined,\n resizeHandles: resizeHandlesOptions,\n resizeHandle: resizeHandle\n }, child);\n } // Called while dragging an element. Part of browser native drag/drop API.\n // Native event target might be the layout itself, or an element within the layout.\n\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element<\"div\">*/\n {\n var _this2 = this;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n style = _this$props9.style,\n isDroppable = _this$props9.isDroppable,\n innerRef = _this$props9.innerRef;\n var mergedClassName = (0, _clsx.default)(layoutClassName, className);\n\n var mergedStyle = _objectSpread({\n height: this.containerHeight()\n }, style);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: innerRef,\n className: mergedClassName,\n style: mergedStyle,\n onDrop: isDroppable ? this.onDrop : _utils.noop,\n onDragLeave: isDroppable ? this.onDragLeave : _utils.noop,\n onDragEnter: isDroppable ? this.onDragEnter : _utils.noop,\n onDragOver: isDroppable ? this.onDragOver : _utils.noop\n }, React.Children.map(this.props.children, function (child) {\n return _this2.processGridItem(child);\n }), isDroppable && this.state.droppingDOMNode && this.processGridItem(this.state.droppingDOMNode, true), this.placeholder());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props*/\n , prevState\n /*: State*/\n )\n /*: $Shape<State> | null*/\n {\n var newLayoutBase;\n\n if (prevState.activeDrag) {\n return null;\n } // Legacy support for compactType\n // Allow parent to set layout directly.\n\n\n if (!(0, _lodash.default)(nextProps.layout, prevState.propsLayout) || nextProps.compactType !== prevState.compactType) {\n newLayoutBase = nextProps.layout;\n } else if (!(0, _utils.childrenEqual)(nextProps.children, prevState.children)) {\n // If children change, also regenerate the layout. Use our state\n // as the base in case because it may be more up to date than\n // what is in props.\n newLayoutBase = prevState.layout;\n } // We need to regenerate the layout.\n\n\n if (newLayoutBase) {\n var newLayout = (0, _utils.synchronizeLayoutWithChildren)(newLayoutBase, nextProps.children, nextProps.cols, (0, _utils.compactType)(nextProps), nextProps.allowOverlap);\n return {\n layout: newLayout,\n // We need to save these props to state for using\n // getDerivedStateFromProps instead of componentDidMount (in which we would get extra rerender)\n compactType: nextProps.compactType,\n children: nextProps.children,\n propsLayout: nextProps.layout\n };\n }\n\n return null;\n }\n }]);\n\n return ReactGridLayout;\n}(React.Component);\n\nexports.default = ReactGridLayout;\n\n_defineProperty(ReactGridLayout, \"displayName\", \"ReactGridLayout\");\n\n_defineProperty(ReactGridLayout, \"propTypes\", _ReactGridLayoutPropTypes.default);\n\n_defineProperty(ReactGridLayout, \"defaultProps\", {\n autoSize: true,\n cols: 12,\n className: \"\",\n style: {},\n draggableHandle: \"\",\n draggableCancel: \"\",\n containerPadding: null,\n rowHeight: 150,\n maxRows: Infinity,\n // infinite vertical growth\n layout: [],\n margin: [10, 10],\n isBounded: false,\n isDraggable: true,\n isResizable: true,\n allowOverlap: false,\n isDroppable: false,\n useCSSTransforms: true,\n transformScale: 1,\n verticalCompact: true,\n compactType: \"vertical\",\n preventCollision: false,\n droppingItem: {\n i: \"__dropping-elem__\",\n h: 1,\n w: 1\n },\n resizeHandles: [\"se\"],\n onLayoutChange: _utils.noop,\n onDragStart: _utils.noop,\n onDrag: _utils.noop,\n onDragStop: _utils.noop,\n onResizeStart: _utils.noop,\n onResize: _utils.noop,\n onResizeStop: _utils.noop,\n onDrop: _utils.noop,\n onDropDragOver: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resizeHandleType = exports.resizeHandleAxesType = exports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Defines which resize handles should be rendered (default: 'se')\n// Allows for any combination of:\n// 's' - South handle (bottom-center)\n// 'w' - West handle (left-center)\n// 'e' - East handle (right-center)\n// 'n' - North handle (top-center)\n// 'sw' - Southwest handle (bottom-left)\n// 'nw' - Northwest handle (top-left)\n// 'se' - Southeast handle (bottom-right)\n// 'ne' - Northeast handle (top-right)\nvar resizeHandleAxesType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.arrayOf(_propTypes.default.oneOf([\"s\", \"w\", \"e\", \"n\", \"sw\", \"nw\", \"se\", \"ne\"])); // Custom component for resize handles\n\n\nexports.resizeHandleAxesType = resizeHandleAxesType;\n\nvar resizeHandleType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]);\n/*:: export type Props = {|\n className: string,\n style: Object,\n width: number,\n autoSize: boolean,\n cols: number,\n draggableCancel: string,\n draggableHandle: string,\n verticalCompact: boolean,\n compactType: CompactType,\n layout: Layout,\n margin: [number, number],\n containerPadding: ?[number, number],\n rowHeight: number,\n maxRows: number,\n isBounded: boolean,\n isDraggable: boolean,\n isResizable: boolean,\n isDroppable: boolean,\n preventCollision: boolean,\n useCSSTransforms: boolean,\n transformScale: number,\n droppingItem: $Shape<LayoutItem>,\n resizeHandles: ResizeHandleAxis[],\n resizeHandle?: ResizeHandle,\n allowOverlap: boolean,\n\n // Callbacks\n onLayoutChange: Layout => void,\n onDrag: EventCallback,\n onDragStart: EventCallback,\n onDragStop: EventCallback,\n onResize: EventCallback,\n onResizeStart: EventCallback,\n onResizeStop: EventCallback,\n onDropDragOver: (e: DragOverEvent) => ?({| w?: number, h?: number |} | false),\n onDrop: (layout: Layout, item: ?LayoutItem, e: Event) => void,\n children: ReactChildrenArray<ReactElement<any>>,\n innerRef?: Ref<\"div\">\n|};*/\n\n/*:: export type DefaultProps = $Diff<\n Props,\n {\n children: ReactChildrenArray<ReactElement<any>>,\n width: number\n }\n>;*/\n\n\nexports.resizeHandleType = resizeHandleType;\nvar _default = {\n //\n // Basic props\n //\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n // This can be set explicitly. If it is not set, it will automatically\n // be set to the container width. Note that resizes will *not* cause this to adjust.\n // If you need that behavior, use WidthProvider.\n width: _propTypes.default.number,\n // If true, the container height swells and contracts to fit contents\n autoSize: _propTypes.default.bool,\n // # of cols.\n cols: _propTypes.default.number,\n // A selector that will not be draggable.\n draggableCancel: _propTypes.default.string,\n // A selector for the draggable handler\n draggableHandle: _propTypes.default.string,\n // Deprecated\n verticalCompact: function verticalCompact(props\n /*: Props*/\n ) {\n if (props.verticalCompact === false && process.env.NODE_ENV !== \"production\") {\n console.warn( // eslint-disable-line no-console\n \"`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. \" + 'Use `compactType`: \"horizontal\" | \"vertical\" | null.');\n }\n },\n // Choose vertical or hotizontal compaction\n compactType: (_propTypes.default.oneOf([\"vertical\", \"horizontal\"])\n /*: ReactPropsChainableTypeChecker*/\n ),\n // layout is an array of object with the format:\n // {x: Number, y: Number, w: Number, h: Number, i: String}\n layout: function layout(props\n /*: Props*/\n ) {\n var layout = props.layout; // I hope you're setting the data-grid property on the grid items\n\n if (layout === undefined) return;\n\n require(\"./utils\").validateLayout(layout, \"layout\");\n },\n //\n // Grid Dimensions\n //\n // Margin between items [x, y] in px\n margin: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Padding inside the container [x, y] in px\n containerPadding: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Rows have a static height, but you can change this based on breakpoints if you like\n rowHeight: _propTypes.default.number,\n // Default Infinity, but you can specify a max here if you like.\n // Note that this isn't fully fleshed out and won't error if you specify a layout that\n // extends beyond the row capacity. It will, however, not allow users to drag/resize\n // an item past the barrier. They can push items beyond the barrier, though.\n // Intentionally not documented for this reason.\n maxRows: _propTypes.default.number,\n //\n // Flags\n //\n isBounded: _propTypes.default.bool,\n isDraggable: _propTypes.default.bool,\n isResizable: _propTypes.default.bool,\n // If true, grid can be placed one over the other.\n allowOverlap: _propTypes.default.bool,\n // If true, grid items won't change position when being dragged over.\n preventCollision: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool,\n // parent layout transform scale\n transformScale: _propTypes.default.number,\n // If true, an external element can trigger onDrop callback with a specific grid position as a parameter\n isDroppable: _propTypes.default.bool,\n // Resize handle options\n resizeHandles: resizeHandleAxesType,\n resizeHandle: resizeHandleType,\n //\n // Callbacks\n //\n // Callback so you can save the layout. Calls after each drag & resize stops.\n onLayoutChange: _propTypes.default.func,\n // Calls when drag starts. Callback is of the signature (layout, oldItem, newItem, placeholder, e, ?node).\n // All callbacks below have the same signature. 'start' and 'stop' callbacks omit the 'placeholder'.\n onDragStart: _propTypes.default.func,\n // Calls on each drag movement.\n onDrag: _propTypes.default.func,\n // Calls when drag is complete.\n onDragStop: _propTypes.default.func,\n //Calls when resize starts.\n onResizeStart: _propTypes.default.func,\n // Calls when resize movement happens.\n onResize: _propTypes.default.func,\n // Calls when resize is complete.\n onResizeStop: _propTypes.default.func,\n // Calls when some element is dropped.\n onDrop: _propTypes.default.func,\n //\n // Other validations\n //\n droppingItem: (_propTypes.default.shape({\n i: _propTypes.default.string.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired\n })\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Children must not have duplicate keys.\n children: function children(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var children = props[propName]; // Check children keys for duplicates. Throw if found.\n\n var keys = {};\n\n _react.default.Children.forEach(children, function (child) {\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return;\n\n if (keys[child.key]) {\n throw new Error('Duplicate child key \"' + child.key + '\" found! This will cause problems in ReactGridLayout.');\n }\n\n keys[child.key] = true;\n });\n },\n // Optional ref for getting a reference for the wrapping div.\n innerRef: _propTypes.default.any\n};\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _utils = require(\"./utils\");\n\nvar _responsiveUtils = require(\"./responsiveUtils\");\n\nvar _ReactGridLayout = _interopRequireDefault(require(\"./ReactGridLayout\"));\n\nvar _excluded = [\"breakpoint\", \"breakpoints\", \"cols\", \"layouts\", \"margin\", \"containerPadding\", \"onBreakpointChange\", \"onLayoutChange\", \"onWidthChange\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// $FlowFixMe[method-unbinding]\nvar type = function type(obj) {\n return Object.prototype.toString.call(obj);\n};\n/**\n * Get a value of margin or containerPadding.\n *\n * @param {Array | Object} param Margin | containerPadding, e.g. [10, 10] | {lg: [10, 10], ...}.\n * @param {String} breakpoint Breakpoint: lg, md, sm, xs and etc.\n * @return {Array}\n */\n\n\nfunction getIndentationValue\n/*:: <T: ?[number, number]>*/\n(param\n/*: { [key: string]: T } | T*/\n, breakpoint\n/*: string*/\n)\n/*: T*/\n{\n // $FlowIgnore TODO fix this typedef\n if (param == null) return null; // $FlowIgnore TODO fix this typedef\n\n return Array.isArray(param) ? param : param[breakpoint];\n}\n/*:: type State = {\n layout: Layout,\n breakpoint: string,\n cols: number,\n layouts?: ResponsiveLayout<string>\n};*/\n\n/*:: type Props<Breakpoint: string = string> = {|\n ...React.ElementConfig<typeof ReactGridLayout>,\n\n // Responsive config\n breakpoint?: ?Breakpoint,\n breakpoints: Breakpoints<Breakpoint>,\n cols: { [key: Breakpoint]: number },\n layouts: ResponsiveLayout<Breakpoint>,\n width: number,\n margin: { [key: Breakpoint]: [number, number] } | [number, number],\n /* prettier-ignore *-/\n containerPadding: { [key: Breakpoint]: ?[number, number] } | ?[number, number],\n\n // Callbacks\n onBreakpointChange: (Breakpoint, cols: number) => void,\n onLayoutChange: OnLayoutChangeCallback,\n onWidthChange: (\n containerWidth: number,\n margin: [number, number],\n cols: number,\n containerPadding: ?[number, number]\n ) => void\n|};*/\n\n/*:: type DefaultProps = Pick<\n Props<>,\n {|\n allowOverlap: 0,\n breakpoints: 0,\n cols: 0,\n containerPadding: 0,\n layouts: 0,\n margin: 0,\n onBreakpointChange: 0,\n onLayoutChange: 0,\n onWidthChange: 0\n |}\n>;*/\n\n\nvar ResponsiveReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ResponsiveReactGridLayout, _React$Component);\n\n var _super = _createSuper(ResponsiveReactGridLayout);\n\n function ResponsiveReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ResponsiveReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _this.generateInitialState());\n\n _defineProperty(_assertThisInitialized(_this), \"onLayoutChange\", function (layout\n /*: Layout*/\n ) {\n _this.props.onLayoutChange(layout, _objectSpread(_objectSpread({}, _this.props.layouts), {}, _defineProperty({}, _this.state.breakpoint, layout)));\n });\n\n return _this;\n }\n\n _createClass(ResponsiveReactGridLayout, [{\n key: \"generateInitialState\",\n value: function generateInitialState()\n /*: State*/\n {\n var _this$props = this.props,\n width = _this$props.width,\n breakpoints = _this$props.breakpoints,\n layouts = _this$props.layouts,\n cols = _this$props.cols;\n var breakpoint = (0, _responsiveUtils.getBreakpointFromWidth)(breakpoints, width);\n var colNo = (0, _responsiveUtils.getColsFromBreakpoint)(breakpoint, cols); // verticalCompact compatibility, now deprecated\n\n var compactType = this.props.verticalCompact === false ? null : this.props.compactType; // Get the initial layout. This can tricky; we try to generate one however possible if one doesn't exist\n // for this layout.\n\n var initialLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(layouts, breakpoints, breakpoint, breakpoint, colNo, compactType);\n return {\n layout: initialLayout,\n breakpoint: breakpoint,\n cols: colNo\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props<*>*/\n ) {\n // Allow parent to set width or breakpoint directly.\n if (this.props.width != prevProps.width || this.props.breakpoint !== prevProps.breakpoint || !(0, _lodash.default)(this.props.breakpoints, prevProps.breakpoints) || !(0, _lodash.default)(this.props.cols, prevProps.cols)) {\n this.onWidthChange(prevProps);\n }\n } // wrap layouts so we do not need to pass layouts to child\n\n }, {\n key: \"onWidthChange\",\n value:\n /**\n * When the width changes work through breakpoints and reset state with the new width & breakpoint.\n * Width changes are necessary to figure out the widget widths.\n */\n function onWidthChange(prevProps\n /*: Props<*>*/\n ) {\n var _this$props2 = this.props,\n breakpoints = _this$props2.breakpoints,\n cols = _this$props2.cols,\n layouts = _this$props2.layouts,\n compactType = _this$props2.compactType;\n var newBreakpoint = this.props.breakpoint || (0, _responsiveUtils.getBreakpointFromWidth)(this.props.breakpoints, this.props.width);\n var lastBreakpoint = this.state.breakpoint;\n var newCols\n /*: number*/\n = (0, _responsiveUtils.getColsFromBreakpoint)(newBreakpoint, cols);\n\n var newLayouts = _objectSpread({}, layouts); // Breakpoint change\n\n\n if (lastBreakpoint !== newBreakpoint || prevProps.breakpoints !== breakpoints || prevProps.cols !== cols) {\n // Preserve the current layout if the current breakpoint is not present in the next layouts.\n if (!(lastBreakpoint in newLayouts)) newLayouts[lastBreakpoint] = (0, _utils.cloneLayout)(this.state.layout); // Find or generate a new layout.\n\n var layout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(newLayouts, breakpoints, newBreakpoint, lastBreakpoint, newCols, compactType); // This adds missing items.\n\n layout = (0, _utils.synchronizeLayoutWithChildren)(layout, this.props.children, newCols, compactType, this.props.allowOverlap); // Store the new layout.\n\n newLayouts[newBreakpoint] = layout; // callbacks\n\n this.props.onLayoutChange(layout, newLayouts);\n this.props.onBreakpointChange(newBreakpoint, newCols);\n this.setState({\n breakpoint: newBreakpoint,\n layout: layout,\n cols: newCols\n });\n }\n\n var margin = getIndentationValue(this.props.margin, newBreakpoint);\n var containerPadding = getIndentationValue(this.props.containerPadding, newBreakpoint); //call onWidthChange on every change of width, not only on breakpoint changes\n\n this.props.onWidthChange(this.props.width, margin, newCols, containerPadding);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element<typeof ReactGridLayout>*/\n {\n /* eslint-disable no-unused-vars */\n var _this$props3 = this.props,\n breakpoint = _this$props3.breakpoint,\n breakpoints = _this$props3.breakpoints,\n cols = _this$props3.cols,\n layouts = _this$props3.layouts,\n margin = _this$props3.margin,\n containerPadding = _this$props3.containerPadding,\n onBreakpointChange = _this$props3.onBreakpointChange,\n onLayoutChange = _this$props3.onLayoutChange,\n onWidthChange = _this$props3.onWidthChange,\n other = _objectWithoutProperties(_this$props3, _excluded);\n /* eslint-enable no-unused-vars */\n\n\n return /*#__PURE__*/React.createElement(_ReactGridLayout.default, _extends({}, other, {\n // $FlowIgnore should allow nullable here due to DefaultProps\n margin: getIndentationValue(margin, this.state.breakpoint),\n containerPadding: getIndentationValue(containerPadding, this.state.breakpoint),\n onLayoutChange: this.onLayoutChange,\n layout: this.state.layout,\n cols: this.state.cols\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props<*>*/\n , prevState\n /*: State*/\n )\n /*: ?$Shape<State>*/\n {\n if (!(0, _lodash.default)(nextProps.layouts, prevState.layouts)) {\n // Allow parent to set layouts directly.\n var breakpoint = prevState.breakpoint,\n _cols = prevState.cols; // Since we're setting an entirely new layout object, we must generate a new responsive layout\n // if one does not exist.\n\n var newLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(nextProps.layouts, nextProps.breakpoints, breakpoint, breakpoint, _cols, nextProps.compactType);\n return {\n layout: newLayout,\n layouts: nextProps.layouts\n };\n }\n\n return null;\n }\n }]);\n\n return ResponsiveReactGridLayout;\n}(React.Component);\n\nexports.default = ResponsiveReactGridLayout;\n\n_defineProperty(ResponsiveReactGridLayout, \"propTypes\", {\n //\n // Basic props\n //\n // Optional, but if you are managing width yourself you may want to set the breakpoint\n // yourself as well.\n breakpoint: _propTypes.default.string,\n // {name: pxVal}, e.g. {lg: 1200, md: 996, sm: 768, xs: 480}\n breakpoints: _propTypes.default.object,\n allowOverlap: _propTypes.default.bool,\n // # of cols. This is a breakpoint -> cols map\n cols: _propTypes.default.object,\n // # of margin. This is a breakpoint -> margin map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Margin between items [x, y] in px\n // e.g. [10, 10]\n margin: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // # of containerPadding. This is a breakpoint -> containerPadding map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Padding inside the container [x, y] in px\n // e.g. [10, 10]\n containerPadding: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // layouts is an object mapping breakpoints to layouts.\n // e.g. {lg: Layout, md: Layout, ...}\n layouts: function layouts(props\n /*: Props<>*/\n , propName\n /*: string*/\n ) {\n if (type(props[propName]) !== \"[object Object]\") {\n throw new Error(\"Layout property must be an object. Received: \" + type(props[propName]));\n }\n\n Object.keys(props[propName]).forEach(function (key) {\n if (!(key in props.breakpoints)) {\n throw new Error(\"Each key in layouts must align with a key in breakpoints.\");\n }\n\n (0, _utils.validateLayout)(props.layouts[key], \"layouts.\" + key);\n });\n },\n // The width of this component.\n // Required in this propTypes stanza because generateInitialState() will fail without it.\n width: _propTypes.default.number.isRequired,\n //\n // Callbacks\n //\n // Calls back with breakpoint and new # cols\n onBreakpointChange: _propTypes.default.func,\n // Callback so you can save the layout.\n // Calls back with (currentLayout, allLayouts). allLayouts are keyed by breakpoint.\n onLayoutChange: _propTypes.default.func,\n // Calls back with (containerWidth, margin, cols, containerPadding)\n onWidthChange: _propTypes.default.func\n});\n\n_defineProperty(ResponsiveReactGridLayout, \"defaultProps\", {\n breakpoints: {\n lg: 1200,\n md: 996,\n sm: 768,\n xs: 480,\n xxs: 0\n },\n cols: {\n lg: 12,\n md: 10,\n sm: 6,\n xs: 4,\n xxs: 2\n },\n containerPadding: {\n lg: null,\n md: null,\n sm: null,\n xs: null,\n xxs: null\n },\n layouts: {},\n margin: [10, 10],\n allowOverlap: false,\n onBreakpointChange: _utils.noop,\n onLayoutChange: _utils.noop,\n onWidthChange: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcGridColWidth = calcGridColWidth;\nexports.calcGridItemPosition = calcGridItemPosition;\nexports.calcGridItemWHPx = calcGridItemWHPx;\nexports.calcWH = calcWH;\nexports.calcXY = calcXY;\nexports.clamp = clamp;\n\n/*:: import type { Position } from \"./utils\";*/\n\n/*:: export type PositionParams = {\n margin: [number, number],\n containerPadding: [number, number],\n containerWidth: number,\n cols: number,\n rowHeight: number,\n maxRows: number\n};*/\n// Helper for generating column width\nfunction calcGridColWidth(positionParams\n/*: PositionParams*/\n)\n/*: number*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n containerWidth = positionParams.containerWidth,\n cols = positionParams.cols;\n return (containerWidth - margin[0] * (cols - 1) - containerPadding[0] * 2) / cols;\n} // This can either be called:\n// calcGridItemWHPx(w, colWidth, margin[0])\n// or\n// calcGridItemWHPx(h, rowHeight, margin[1])\n\n\nfunction calcGridItemWHPx(gridUnits\n/*: number*/\n, colOrRowSize\n/*: number*/\n, marginPx\n/*: number*/\n)\n/*: number*/\n{\n // 0 * Infinity === NaN, which causes problems with resize contraints\n if (!Number.isFinite(gridUnits)) return gridUnits;\n return Math.round(colOrRowSize * gridUnits + Math.max(0, gridUnits - 1) * marginPx);\n}\n/**\n * Return position on the page given an x, y, w, h.\n * left, top, width, height are all in pixels.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Position} Object containing coords.\n */\n\n\nfunction calcGridItemPosition(positionParams\n/*: PositionParams*/\n, x\n/*: number*/\n, y\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n, state\n/*: ?Object*/\n)\n/*: Position*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams);\n var out = {}; // If resizing, use the exact width and height as returned from resizing callbacks.\n\n if (state && state.resizing) {\n out.width = Math.round(state.resizing.width);\n out.height = Math.round(state.resizing.height);\n } // Otherwise, calculate from grid units.\n else {\n out.width = calcGridItemWHPx(w, colWidth, margin[0]);\n out.height = calcGridItemWHPx(h, rowHeight, margin[1]);\n } // If dragging, use the exact width and height as returned from dragging callbacks.\n\n\n if (state && state.dragging) {\n out.top = Math.round(state.dragging.top);\n out.left = Math.round(state.dragging.left);\n } // Otherwise, calculate from grid units.\n else {\n out.top = Math.round((rowHeight + margin[1]) * y + containerPadding[1]);\n out.left = Math.round((colWidth + margin[0]) * x + containerPadding[0]);\n }\n\n return out;\n}\n/**\n * Translate x and y coordinates from pixels to grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} top Top position (relative to parent) in pixels.\n * @param {Number} left Left position (relative to parent) in pixels.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Object} x and y in grid units.\n */\n\n\nfunction calcXY(positionParams\n/*: PositionParams*/\n, top\n/*: number*/\n, left\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n)\n/*: { x: number, y: number }*/\n{\n var margin = positionParams.margin,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight,\n maxRows = positionParams.maxRows;\n var colWidth = calcGridColWidth(positionParams); // left = colWidth * x + margin * (x + 1)\n // l = cx + m(x+1)\n // l = cx + mx + m\n // l - m = cx + mx\n // l - m = x(c + m)\n // (l - m) / (c + m) = x\n // x = (left - margin) / (coldWidth + margin)\n\n var x = Math.round((left - margin[0]) / (colWidth + margin[0]));\n var y = Math.round((top - margin[1]) / (rowHeight + margin[1])); // Capping\n\n x = clamp(x, 0, cols - w);\n y = clamp(y, 0, maxRows - h);\n return {\n x: x,\n y: y\n };\n}\n/**\n * Given a height and width in pixel values, calculate grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calcluations.\n * @param {Number} height Height in pixels.\n * @param {Number} width Width in pixels.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @return {Object} w, h as grid units.\n */\n\n\nfunction calcWH(positionParams\n/*: PositionParams*/\n, width\n/*: number*/\n, height\n/*: number*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: { w: number, h: number }*/\n{\n var margin = positionParams.margin,\n maxRows = positionParams.maxRows,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams); // width = colWidth * w - (margin * (w - 1))\n // ...\n // w = (width + margin) / (colWidth + margin)\n\n var w = Math.round((width + margin[0]) / (colWidth + margin[0]));\n var h = Math.round((height + margin[1]) / (rowHeight + margin[1])); // Capping\n\n w = clamp(w, 0, cols - x);\n h = clamp(h, 0, maxRows - y);\n return {\n w: w,\n h: h\n };\n} // Similar to _.clamp\n\n\nfunction clamp(num\n/*: number*/\n, lowerBound\n/*: number*/\n, upperBound\n/*: number*/\n)\n/*: number*/\n{\n return Math.max(Math.min(num, upperBound), lowerBound);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = WidthProvideRGL;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _excluded = [\"measureBeforeMount\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar layoutClassName = \"react-grid-layout\";\n/*\n * A simple HOC that provides facility for listening to container resizes.\n *\n * The Flow type is pretty janky here. I can't just spread `WPProps` into this returned object - I wish I could - but it triggers\n * a flow bug of some sort that causes it to stop typechecking.\n */\n\nfunction WidthProvideRGL\n/*:: <Config>*/\n(ComposedComponent\n/*: React.AbstractComponent<Config>*/\n)\n/*: React.AbstractComponent<ComposedProps<Config>>*/\n{\n var _class;\n\n return _class = /*#__PURE__*/function (_React$Component) {\n _inherits(WidthProvider, _React$Component);\n\n var _super = _createSuper(WidthProvider);\n\n function WidthProvider() {\n var _this;\n\n _classCallCheck(this, WidthProvider);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n width: 1280\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResize\", function () {\n if (!_this.mounted) return;\n var node = _this.elementRef.current; // Flow casts this to Text | Element\n // fix: grid position error when node or parentNode display is none by window resize\n // #924 #1084\n\n if (node instanceof HTMLElement && node.offsetWidth) {\n _this.setState({\n width: node.offsetWidth\n });\n }\n });\n\n return _this;\n }\n\n _createClass(WidthProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n window.addEventListener(\"resize\", this.onWindowResize); // Call to properly set the breakpoint and resize the elements.\n // Note that if you're doing a full-width element, this can get a little wonky if a scrollbar\n // appears because of the grid. In that case, fire your own resize event, or set `overflow: scroll` on your body.\n\n this.onWindowResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n window.removeEventListener(\"resize\", this.onWindowResize);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n measureBeforeMount = _this$props.measureBeforeMount,\n rest = _objectWithoutProperties(_this$props, _excluded);\n\n if (measureBeforeMount && !this.mounted) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _clsx.default)(this.props.className, layoutClassName),\n style: this.props.style // $FlowIgnore ref types\n ,\n ref: this.elementRef\n });\n }\n\n return /*#__PURE__*/React.createElement(ComposedComponent, _extends({\n innerRef: this.elementRef\n }, rest, this.state));\n }\n }]);\n\n return WidthProvider;\n }(React.Component), _defineProperty(_class, \"defaultProps\", {\n measureBeforeMount: false\n }), _defineProperty(_class, \"propTypes\", {\n // If true, will not render children until mounted. Useful for getting the exact width before\n // rendering, to prevent any unsightly resizing.\n measureBeforeMount: _propTypes.default.bool\n }), _class;\n}","// this file was prevaled\nmodule.exports = function fastRGLPropsEqual(a, b, isEqualImpl) {\n if (a === b) return true;\n return a.className === b.className && isEqualImpl(a.style, b.style) && a.width === b.width && a.autoSize === b.autoSize && a.cols === b.cols && a.draggableCancel === b.draggableCancel && a.draggableHandle === b.draggableHandle && isEqualImpl(a.verticalCompact, b.verticalCompact) && isEqualImpl(a.compactType, b.compactType) && isEqualImpl(a.layout, b.layout) && isEqualImpl(a.margin, b.margin) && isEqualImpl(a.containerPadding, b.containerPadding) && a.rowHeight === b.rowHeight && a.maxRows === b.maxRows && a.isBounded === b.isBounded && a.isDraggable === b.isDraggable && a.isResizable === b.isResizable && a.allowOverlap === b.allowOverlap && a.preventCollision === b.preventCollision && a.useCSSTransforms === b.useCSSTransforms && a.transformScale === b.transformScale && a.isDroppable === b.isDroppable && isEqualImpl(a.resizeHandles, b.resizeHandles) && isEqualImpl(a.resizeHandle, b.resizeHandle) && a.onLayoutChange === b.onLayoutChange && a.onDragStart === b.onDragStart && a.onDrag === b.onDrag && a.onDragStop === b.onDragStop && a.onResizeStart === b.onResizeStart && a.onResize === b.onResize && a.onResizeStop === b.onResizeStop && a.onDrop === b.onDrop && isEqualImpl(a.droppingItem, b.droppingItem) && isEqualImpl(a.innerRef, b.innerRef);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findOrGenerateResponsiveLayout = findOrGenerateResponsiveLayout;\nexports.getBreakpointFromWidth = getBreakpointFromWidth;\nexports.getColsFromBreakpoint = getColsFromBreakpoint;\nexports.sortBreakpoints = sortBreakpoints;\n\nvar _utils = require(\"./utils\");\n\n/**\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\n *\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\n * @param {Number} width Screen width.\n * @return {String} Highest breakpoint that is less than width.\n */\nfunction getBreakpointFromWidth(breakpoints\n/*: Breakpoints<Breakpoint>*/\n, width\n/*: number*/\n)\n/*: Breakpoint*/\n{\n var sorted = sortBreakpoints(breakpoints);\n var matching = sorted[0];\n\n for (var i = 1, len = sorted.length; i < len; i++) {\n var breakpointName = sorted[i];\n if (width > breakpoints[breakpointName]) matching = breakpointName;\n }\n\n return matching;\n}\n/**\n * Given a breakpoint, get the # of cols set for it.\n * @param {String} breakpoint Breakpoint name.\n * @param {Object} cols Map of breakpoints to cols.\n * @return {Number} Number of cols.\n */\n\n\nfunction getColsFromBreakpoint(breakpoint\n/*: Breakpoint*/\n, cols\n/*: Breakpoints<Breakpoint>*/\n)\n/*: number*/\n{\n if (!cols[breakpoint]) {\n throw new Error(\"ResponsiveReactGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\n }\n\n return cols[breakpoint];\n}\n/**\n * Given existing layouts and a new breakpoint, find or generate a new layout.\n *\n * This finds the layout above the new one and generates from it, if it exists.\n *\n * @param {Object} layouts Existing layouts.\n * @param {Array} breakpoints All breakpoints.\n * @param {String} breakpoint New breakpoint.\n * @param {String} breakpoint Last breakpoint (for fallback).\n * @param {Number} cols Column count at new breakpoint.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} New layout.\n */\n\n\nfunction findOrGenerateResponsiveLayout(layouts\n/*: ResponsiveLayout<Breakpoint>*/\n, breakpoints\n/*: Breakpoints<Breakpoint>*/\n, breakpoint\n/*: Breakpoint*/\n, lastBreakpoint\n/*: Breakpoint*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n // If it already exists, just return it.\n if (layouts[breakpoint]) return (0, _utils.cloneLayout)(layouts[breakpoint]); // Find or generate the next layout\n\n var layout = layouts[lastBreakpoint];\n var breakpointsSorted = sortBreakpoints(breakpoints);\n var breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\n\n for (var i = 0, len = breakpointsAbove.length; i < len; i++) {\n var b = breakpointsAbove[i];\n\n if (layouts[b]) {\n layout = layouts[b];\n break;\n }\n }\n\n layout = (0, _utils.cloneLayout)(layout || []); // clone layout so we don't modify existing items\n\n return (0, _utils.compact)((0, _utils.correctBounds)(layout, {\n cols: cols\n }), compactType, cols);\n}\n/**\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\n * e.g. ['xxs', 'xs', 'sm', ...]\n *\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\n * @return {Array} Sorted breakpoints.\n */\n\n\nfunction sortBreakpoints(breakpoints\n/*: Breakpoints<Breakpoint>*/\n)\n/*: Array<Breakpoint>*/\n{\n var keys\n /*: Array<string>*/\n = Object.keys(breakpoints);\n return keys.sort(function (a, b) {\n return breakpoints[a] - breakpoints[b];\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bottom = bottom;\nexports.childrenEqual = childrenEqual;\nexports.cloneLayout = cloneLayout;\nexports.cloneLayoutItem = cloneLayoutItem;\nexports.collides = collides;\nexports.compact = compact;\nexports.compactItem = compactItem;\nexports.compactType = compactType;\nexports.correctBounds = correctBounds;\nexports.fastPositionEqual = fastPositionEqual;\nexports.fastRGLPropsEqual = void 0;\nexports.getAllCollisions = getAllCollisions;\nexports.getFirstCollision = getFirstCollision;\nexports.getLayoutItem = getLayoutItem;\nexports.getStatics = getStatics;\nexports.modifyLayout = modifyLayout;\nexports.moveElement = moveElement;\nexports.moveElementAwayFromCollision = moveElementAwayFromCollision;\nexports.noop = void 0;\nexports.perc = perc;\nexports.setTopLeft = setTopLeft;\nexports.setTransform = setTransform;\nexports.sortLayoutItems = sortLayoutItems;\nexports.sortLayoutItemsByColRow = sortLayoutItemsByColRow;\nexports.sortLayoutItemsByRowCol = sortLayoutItemsByRowCol;\nexports.synchronizeLayoutWithChildren = synchronizeLayoutWithChildren;\nexports.validateLayout = validateLayout;\nexports.withLayoutItem = withLayoutItem;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar DEBUG = false;\n/**\n * Return the bottom coordinate of the layout.\n *\n * @param {Array} layout Layout array.\n * @return {Number} Bottom coordinate.\n */\n\nfunction bottom(layout\n/*: Layout*/\n)\n/*: number*/\n{\n var max = 0,\n bottomY;\n\n for (var i = 0, len = layout.length; i < len; i++) {\n bottomY = layout[i].y + layout[i].h;\n if (bottomY > max) max = bottomY;\n }\n\n return max;\n}\n\nfunction cloneLayout(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n newLayout[i] = cloneLayoutItem(layout[i]);\n }\n\n return newLayout;\n} // Modify a layoutItem inside a layout. Returns a new Layout,\n// does not mutate. Carries over all other LayoutItems unmodified.\n\n\nfunction modifyLayout(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layoutItem.i === layout[i].i) {\n newLayout[i] = layoutItem;\n } else {\n newLayout[i] = layout[i];\n }\n }\n\n return newLayout;\n} // Function to be called to modify a layout item.\n// Does defensive clones to ensure the layout is not modified.\n\n\nfunction withLayoutItem(layout\n/*: Layout*/\n, itemKey\n/*: string*/\n, cb\n/*: LayoutItem => LayoutItem*/\n)\n/*: [Layout, ?LayoutItem]*/\n{\n var item = getLayoutItem(layout, itemKey);\n if (!item) return [layout, null];\n item = cb(cloneLayoutItem(item)); // defensive clone then modify\n // FIXME could do this faster if we already knew the index\n\n layout = modifyLayout(layout, item);\n return [layout, item];\n} // Fast path to cloning, since this is monomorphic\n\n\nfunction cloneLayoutItem(layoutItem\n/*: LayoutItem*/\n)\n/*: LayoutItem*/\n{\n return {\n w: layoutItem.w,\n h: layoutItem.h,\n x: layoutItem.x,\n y: layoutItem.y,\n i: layoutItem.i,\n minW: layoutItem.minW,\n maxW: layoutItem.maxW,\n minH: layoutItem.minH,\n maxH: layoutItem.maxH,\n moved: Boolean(layoutItem.moved),\n static: Boolean(layoutItem.static),\n // These can be null/undefined\n isDraggable: layoutItem.isDraggable,\n isResizable: layoutItem.isResizable,\n resizeHandles: layoutItem.resizeHandles,\n isBounded: layoutItem.isBounded\n };\n}\n/**\n * Comparing React `children` is a bit difficult. This is a good way to compare them.\n * This will catch differences in keys, order, and length.\n */\n\n\nfunction childrenEqual(a\n/*: ReactChildren*/\n, b\n/*: ReactChildren*/\n)\n/*: boolean*/\n{\n return (0, _lodash.default)(_react.default.Children.map(a, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }), _react.default.Children.map(b, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }));\n}\n/**\n * See `fastRGLPropsEqual.js`.\n * We want this to run as fast as possible - it is called often - and to be\n * resilient to new props that we add. So rather than call lodash.isEqual,\n * which isn't suited to comparing props very well, we use this specialized\n * function in conjunction with preval to generate the fastest possible comparison\n * function, tuned for exactly our props.\n */\n\n/*:: type FastRGLPropsEqual = (Object, Object, Function) => boolean;*/\n\n\nvar fastRGLPropsEqual\n/*: FastRGLPropsEqual*/\n= require(\"./fastRGLPropsEqual\"); // Like the above, but a lot simpler.\n\n\nexports.fastRGLPropsEqual = fastRGLPropsEqual;\n\nfunction fastPositionEqual(a\n/*: Position*/\n, b\n/*: Position*/\n)\n/*: boolean*/\n{\n return a.left === b.left && a.top === b.top && a.width === b.width && a.height === b.height;\n}\n/**\n * Given two layoutitems, check if they collide.\n */\n\n\nfunction collides(l1\n/*: LayoutItem*/\n, l2\n/*: LayoutItem*/\n)\n/*: boolean*/\n{\n if (l1.i === l2.i) return false; // same element\n\n if (l1.x + l1.w <= l2.x) return false; // l1 is left of l2\n\n if (l1.x >= l2.x + l2.w) return false; // l1 is right of l2\n\n if (l1.y + l1.h <= l2.y) return false; // l1 is above l2\n\n if (l1.y >= l2.y + l2.h) return false; // l1 is below l2\n\n return true; // boxes overlap\n}\n/**\n * Given a layout, compact it. This involves going down each y coordinate and removing gaps\n * between items.\n *\n * Does not modify layout items (clones). Creates a new layout array.\n *\n * @param {Array} layout Layout.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} Compacted Layout.\n */\n\n\nfunction compact(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // Statics go in the compareWith array right away so items flow around them.\n var compareWith = getStatics(layout); // We go through the items by row and column.\n\n var sorted = sortLayoutItems(layout, compactType); // Holding for new items.\n\n var out = Array(layout.length);\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n var l = cloneLayoutItem(sorted[i]); // Don't move static elements\n\n if (!l.static) {\n l = compactItem(compareWith, l, compactType, cols, sorted); // Add to comparison array. We only collide with items before this one.\n // Statics are already in this array.\n\n compareWith.push(l);\n } // Add to output array to make sure they still come out in the right order.\n\n\n out[layout.indexOf(sorted[i])] = l; // Clear moved flag, if it exists.\n\n l.moved = false;\n }\n\n return out;\n}\n\nvar heightWidth = {\n x: \"w\",\n y: \"h\"\n};\n/**\n * Before moving item down, it will check if the movement will cause collisions and move those items down before.\n */\n\nfunction resolveCompactionCollision(layout\n/*: Layout*/\n, item\n/*: LayoutItem*/\n, moveToCoord\n/*: number*/\n, axis\n/*: \"x\" | \"y\"*/\n) {\n var sizeProp = heightWidth[axis];\n item[axis] += 1;\n var itemIndex = layout.map(function (layoutItem) {\n return layoutItem.i;\n }).indexOf(item.i); // Go through each item we collide with.\n\n for (var i = itemIndex + 1; i < layout.length; i++) {\n var otherItem = layout[i]; // Ignore static items\n\n if (otherItem.static) continue; // Optimization: we can break early if we know we're past this el\n // We can do this b/c it's a sorted layout\n\n if (otherItem.y > item.y + item.h) break;\n\n if (collides(item, otherItem)) {\n resolveCompactionCollision(layout, otherItem, moveToCoord + item[sizeProp], axis);\n }\n }\n\n item[axis] = moveToCoord;\n}\n/**\n * Compact an item in the layout.\n *\n * Modifies item.\n *\n */\n\n\nfunction compactItem(compareWith\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, fullLayout\n/*: Layout*/\n)\n/*: LayoutItem*/\n{\n var compactV = compactType === \"vertical\";\n var compactH = compactType === \"horizontal\";\n\n if (compactV) {\n // Bottom 'y' possible is the bottom of the layout.\n // This allows you to do nice stuff like specify {y: Infinity}\n // This is here because the layout must be sorted in order to get the correct bottom `y`.\n l.y = Math.min(bottom(compareWith), l.y); // Move the element up as far as it can go without colliding.\n\n while (l.y > 0 && !getFirstCollision(compareWith, l)) {\n l.y--;\n }\n } else if (compactH) {\n // Move the element left as far as it can go without colliding.\n while (l.x > 0 && !getFirstCollision(compareWith, l)) {\n l.x--;\n }\n } // Move it down, and keep moving it down if it's colliding.\n\n\n var collides;\n\n while (collides = getFirstCollision(compareWith, l)) {\n if (compactH) {\n resolveCompactionCollision(fullLayout, l, collides.x + collides.w, \"x\");\n } else {\n resolveCompactionCollision(fullLayout, l, collides.y + collides.h, \"y\");\n } // Since we can't grow without bounds horizontally, if we've overflown, let's move it down and try again.\n\n\n if (compactH && l.x + l.w > cols) {\n l.x = cols - l.w;\n l.y++;\n }\n } // Ensure that there are no negative positions\n\n\n l.y = Math.max(l.y, 0);\n l.x = Math.max(l.x, 0);\n return l;\n}\n/**\n * Given a layout, make sure all elements fit within its bounds.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Layout array.\n * @param {Number} bounds Number of columns.\n */\n\n\nfunction correctBounds(layout\n/*: Layout*/\n, bounds\n/*: { cols: number }*/\n)\n/*: Layout*/\n{\n var collidesWith = getStatics(layout);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var l = layout[i]; // Overflows right\n\n if (l.x + l.w > bounds.cols) l.x = bounds.cols - l.w; // Overflows left\n\n if (l.x < 0) {\n l.x = 0;\n l.w = bounds.cols;\n }\n\n if (!l.static) collidesWith.push(l);else {\n // If this is static and collides with other statics, we must move it down.\n // We have to do something nicer than just letting them overlap.\n while (getFirstCollision(collidesWith, l)) {\n l.y++;\n }\n }\n }\n\n return layout;\n}\n/**\n * Get a layout item by ID. Used so we can override later on if necessary.\n *\n * @param {Array} layout Layout array.\n * @param {String} id ID\n * @return {LayoutItem} Item at ID.\n */\n\n\nfunction getLayoutItem(layout\n/*: Layout*/\n, id\n/*: string*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layout[i].i === id) return layout[i];\n }\n}\n/**\n * Returns the first item this layout collides with.\n * It doesn't appear to matter which order we approach this from, although\n * perhaps that is the wrong thing to do.\n *\n * @param {Object} layoutItem Layout item.\n * @return {Object|undefined} A colliding layout item, or undefined.\n */\n\n\nfunction getFirstCollision(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (collides(layout[i], layoutItem)) return layout[i];\n }\n}\n\nfunction getAllCollisions(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Array<LayoutItem>*/\n{\n return layout.filter(function (l) {\n return collides(l, layoutItem);\n });\n}\n/**\n * Get all static elements.\n * @param {Array} layout Array of layout objects.\n * @return {Array} Array of static layout items..\n */\n\n\nfunction getStatics(layout\n/*: Layout*/\n)\n/*: Array<LayoutItem>*/\n{\n return layout.filter(function (l) {\n return l.static;\n });\n}\n/**\n * Move an element. Responsible for doing cascading movements of other elements.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} l element to move.\n * @param {Number} [x] X position in grid units.\n * @param {Number} [y] Y position in grid units.\n */\n\n\nfunction moveElement(layout\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, x\n/*: ?number*/\n, y\n/*: ?number*/\n, isUserAction\n/*: ?boolean*/\n, preventCollision\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n // If this is static and not explicitly enabled as draggable,\n // no move is possible, so we can short-circuit this immediately.\n if (l.static && l.isDraggable !== true) return layout; // Short-circuit if nothing to do.\n\n if (l.y === y && l.x === x) return layout;\n log(\"Moving element \".concat(l.i, \" to [\").concat(String(x), \",\").concat(String(y), \"] from [\").concat(l.x, \",\").concat(l.y, \"]\"));\n var oldX = l.x;\n var oldY = l.y; // This is quite a bit faster than extending the object\n\n if (typeof x === \"number\") l.x = x;\n if (typeof y === \"number\") l.y = y;\n l.moved = true; // If this collides with anything, move it.\n // When doing this comparison, we have to sort the items we compare with\n // to ensure, in the case of multiple collisions, that we're getting the\n // nearest collision.\n\n var sorted = sortLayoutItems(layout, compactType);\n var movingUp = compactType === \"vertical\" && typeof y === \"number\" ? oldY >= y : compactType === \"horizontal\" && typeof x === \"number\" ? oldX >= x : false; // $FlowIgnore acceptable modification of read-only array as it was recently cloned\n\n if (movingUp) sorted = sorted.reverse();\n var collisions = getAllCollisions(sorted, l);\n var hasCollisions = collisions.length > 0; // We may have collisions. We can short-circuit if we've turned off collisions or\n // allowed overlap.\n\n if (hasCollisions && allowOverlap) {\n // Easy, we don't need to resolve collisions. But we *did* change the layout,\n // so clone it on the way out.\n return cloneLayout(layout);\n } else if (hasCollisions && preventCollision) {\n // If we are preventing collision but not allowing overlap, we need to\n // revert the position of this element so it goes to where it came from, rather\n // than the user's desired location.\n log(\"Collision prevented on \".concat(l.i, \", reverting.\"));\n l.x = oldX;\n l.y = oldY;\n l.moved = false;\n return layout; // did not change so don't clone\n } // Move each item that collides away from this element.\n\n\n for (var i = 0, len = collisions.length; i < len; i++) {\n var collision = collisions[i];\n log(\"Resolving collision between \".concat(l.i, \" at [\").concat(l.x, \",\").concat(l.y, \"] and \").concat(collision.i, \" at [\").concat(collision.x, \",\").concat(collision.y, \"]\")); // Short circuit so we can't infinite loop\n\n if (collision.moved) continue; // Don't move static items - we have to move *this* element away\n\n if (collision.static) {\n layout = moveElementAwayFromCollision(layout, collision, l, isUserAction, compactType, cols);\n } else {\n layout = moveElementAwayFromCollision(layout, l, collision, isUserAction, compactType, cols);\n }\n }\n\n return layout;\n}\n/**\n * This is where the magic needs to happen - given a collision, move an element away from the collision.\n * We attempt to move it up if there's room, otherwise it goes below.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} collidesWith Layout item we're colliding with.\n * @param {LayoutItem} itemToMove Layout item we're moving.\n */\n\n\nfunction moveElementAwayFromCollision(layout\n/*: Layout*/\n, collidesWith\n/*: LayoutItem*/\n, itemToMove\n/*: LayoutItem*/\n, isUserAction\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n var compactH = compactType === \"horizontal\"; // Compact vertically if not set to horizontal\n\n var compactV = compactType !== \"horizontal\";\n var preventCollision = collidesWith.static; // we're already colliding (not for static items)\n // If there is enough space above the collision to put this element, move it there.\n // We only do this on the main collision as this can get funky in cascades and cause\n // unwanted swapping behavior.\n\n if (isUserAction) {\n // Reset isUserAction flag because we're not in the main collision anymore.\n isUserAction = false; // Make a mock item so we don't modify the item here, only modify in moveElement.\n\n var fakeItem\n /*: LayoutItem*/\n = {\n x: compactH ? Math.max(collidesWith.x - itemToMove.w, 0) : itemToMove.x,\n y: compactV ? Math.max(collidesWith.y - itemToMove.h, 0) : itemToMove.y,\n w: itemToMove.w,\n h: itemToMove.h,\n i: \"-1\"\n }; // No collision? If so, we can go up there; otherwise, we'll end up moving down as normal\n\n if (!getFirstCollision(layout, fakeItem)) {\n log(\"Doing reverse collision on \".concat(itemToMove.i, \" up to [\").concat(fakeItem.x, \",\").concat(fakeItem.y, \"].\"));\n return moveElement(layout, itemToMove, compactH ? fakeItem.x : undefined, compactV ? fakeItem.y : undefined, isUserAction, preventCollision, compactType, cols);\n }\n }\n\n return moveElement(layout, itemToMove, compactH ? itemToMove.x + 1 : undefined, compactV ? itemToMove.y + 1 : undefined, isUserAction, preventCollision, compactType, cols);\n}\n/**\n * Helper to convert a number to a percentage string.\n *\n * @param {Number} num Any number\n * @return {String} That number as a percentage.\n */\n\n\nfunction perc(num\n/*: number*/\n)\n/*: string*/\n{\n return num * 100 + \"%\";\n}\n\nfunction setTransform(_ref)\n/*: Object*/\n{\n var top = _ref.top,\n left = _ref.left,\n width = _ref.width,\n height = _ref.height;\n // Replace unitless items with px\n var translate = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\n return {\n transform: translate,\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n\nfunction setTopLeft(_ref2)\n/*: Object*/\n{\n var top = _ref2.top,\n left = _ref2.left,\n width = _ref2.width,\n height = _ref2.height;\n return {\n top: \"\".concat(top, \"px\"),\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n/**\n * Get layout items sorted from top left to right and down.\n *\n * @return {Array} Array of layout objects.\n * @return {Array} Layout, sorted static items first.\n */\n\n\nfunction sortLayoutItems(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n if (compactType === \"horizontal\") return sortLayoutItemsByColRow(layout);\n if (compactType === \"vertical\") return sortLayoutItemsByRowCol(layout);else return layout;\n}\n/**\n * Sort layout items by row ascending and column ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByRowCol(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n // Slice to clone array as sort modifies\n return layout.slice(0).sort(function (a, b) {\n if (a.y > b.y || a.y === b.y && a.x > b.x) {\n return 1;\n } else if (a.y === b.y && a.x === b.x) {\n // Without this, we can get different sort results in IE vs. Chrome/FF\n return 0;\n }\n\n return -1;\n });\n}\n/**\n * Sort layout items by column ascending then row ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByColRow(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n return layout.slice(0).sort(function (a, b) {\n if (a.x > b.x || a.x === b.x && a.y > b.y) {\n return 1;\n }\n\n return -1;\n });\n}\n/**\n * Generate a layout using the initialLayout and children as a template.\n * Missing entries will be added, extraneous ones will be truncated.\n *\n * Does not modify initialLayout.\n *\n * @param {Array} initialLayout Layout passed in through props.\n * @param {String} breakpoint Current responsive breakpoint.\n * @param {?String} compact Compaction option.\n * @return {Array} Working layout.\n */\n\n\nfunction synchronizeLayoutWithChildren(initialLayout\n/*: Layout*/\n, children\n/*: ReactChildren*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n initialLayout = initialLayout || []; // Generate one layout item per child.\n\n var layout\n /*: LayoutItem[]*/\n = [];\n\n _react.default.Children.forEach(children, function (child\n /*: ReactElement<any>*/\n ) {\n // Child may not exist\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return; // Don't overwrite if it already exists.\n\n var exists = getLayoutItem(initialLayout, String(child.key));\n\n if (exists) {\n layout.push(cloneLayoutItem(exists));\n } else {\n if (!isProduction && child.props._grid) {\n console.warn(\"`_grid` properties on children have been deprecated as of React 15.2. \" + \"Please use `data-grid` or add your properties directly to the `layout`.\");\n }\n\n var g = child.props[\"data-grid\"] || child.props._grid; // Hey, this item has a data-grid property, use it.\n\n if (g) {\n if (!isProduction) {\n validateLayout([g], \"ReactGridLayout.children\");\n } // FIXME clone not really necessary here\n\n\n layout.push(cloneLayoutItem(_objectSpread(_objectSpread({}, g), {}, {\n i: child.key\n })));\n } else {\n // Nothing provided: ensure this is added to the bottom\n // FIXME clone not really necessary here\n layout.push(cloneLayoutItem({\n w: 1,\n h: 1,\n x: 0,\n y: bottom(layout),\n i: String(child.key)\n }));\n }\n }\n }); // Correct the layout.\n\n\n var correctedLayout = correctBounds(layout, {\n cols: cols\n });\n return allowOverlap ? correctedLayout : compact(correctedLayout, compactType, cols);\n}\n/**\n * Validate a layout. Throws errors.\n *\n * @param {Array} layout Array of layout items.\n * @param {String} [contextName] Context name for errors.\n * @throw {Error} Validation error.\n */\n\n\nfunction validateLayout(layout\n/*: Layout*/\n)\n/*: void*/\n{\n var contextName\n /*: string*/\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Layout\";\n var subProps = [\"x\", \"y\", \"w\", \"h\"];\n if (!Array.isArray(layout)) throw new Error(contextName + \" must be an array!\");\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var item = layout[i];\n\n for (var j = 0; j < subProps.length; j++) {\n if (typeof item[subProps[j]] !== \"number\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].\" + subProps[j] + \" must be a number!\");\n }\n }\n }\n} // Legacy support for verticalCompact: false\n\n\nfunction compactType(props\n/*: ?{ verticalCompact: boolean, compactType: CompactType }*/\n)\n/*: CompactType*/\n{\n var _ref3 = props || {},\n verticalCompact = _ref3.verticalCompact,\n compactType = _ref3.compactType;\n\n return verticalCompact === false ? null : compactType;\n}\n\nfunction log() {\n var _console;\n\n if (!DEBUG) return; // eslint-disable-next-line no-console\n\n (_console = console).log.apply(_console, arguments);\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","module.exports = require(\"./build/ReactGridLayout\").default;\nmodule.exports.utils = require(\"./build/utils\");\nmodule.exports.Responsive =\n require(\"./build/ResponsiveReactGridLayout\").default;\nmodule.exports.Responsive.utils = require(\"./build/responsiveUtils\");\nmodule.exports.WidthProvider =\n require(\"./build/components/WidthProvider\").default;\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","exports","value","_react","_interopRequireDefault","_propTypes","_reactDraggable","_reactResizable","_utils","_calculateUtils","_ReactGridLayoutPropTypes","_clsx","__esModule","default","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","GridItem","_React$Component","subClass","superClass","create","_inherits","protoProps","staticProps","_super","_this","_len","args","Array","_key","concat","resizing","dragging","className","createRef","_ref","node","_this$props","onDragStart","transformScale","newPosition","top","left","offsetParent","parentRect","getBoundingClientRect","clientRect","cLeft","pLeft","cTop","pTop","scrollLeft","scrollTop","setState","_calcXY","calcXY","getPositionParams","w","h","x","y","_ref2","deltaX","deltaY","onDrag","state","Error","_this$props2","isBounded","containerWidth","positionParams","_this$props3","margin","rowHeight","bottomBoundary","clientHeight","calcGridItemWHPx","clamp","colWidth","calcGridColWidth","rightBoundary","_calcXY2","_ref3","onDragStop","_this$props4","_this$state$dragging","_calcXY3","callbackData","onResizeHandler","nextProps","nextState","children","droppingPosition","oldPosition","calcGridItemPosition","fastPositionEqual","useCSSTransforms","moveDroppingItem","prevProps","elementRef","current","prevDroppingPosition","shouldDrag","undefined","cols","containerPadding","maxRows","pos","style","_this$props5","usePercentages","setTransform","setTopLeft","perc","width","child","isDraggable","createElement","DraggableCore","disabled","onStart","onStop","handle","cancel","scale","nodeRef","position","isResizable","_this$props6","minW","minH","maxW","maxH","resizeHandles","resizeHandle","maxWidth","mins","maxes","minConstraints","height","maxConstraints","Math","min","Infinity","Resizable","draggableOpts","onResizeStop","onResizeStart","onResize","_ref4","handlerName","size","handler","_this$props7","_this$props8","_calcWH","calcWH","max","_this$props9","Children","only","newChild","cloneElement","ref","static","dropping","cssTransforms","createStyle","mixinResizable","mixinDraggable","Component","element","number","isRequired","array","propName","string","resizeHandleAxesType","resizeHandleType","func","bool","shape","React","nodeInterop","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","hasOwnProperty","desc","set","_interopRequireWildcard","_lodash","_GridItem","WeakMap","cacheBabelInterop","cacheNodeInterop","_toConsumableArray","arr","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","_nonIterableRest","minLen","n","toString","slice","name","test","len","arr2","layoutClassName","isFirefox","navigator","userAgent","ReactGridLayout","activeDrag","layout","synchronizeLayoutWithChildren","compactType","allowOverlap","mounted","oldDragItem","oldLayout","oldResizeItem","droppingDOMNode","l","getLayoutItem","cloneLayoutItem","preventCollision","placeholder","moveElement","compact","newLayout","onLayoutMaybeChanged","_ref5","_this$state","_withLayoutItem","withLayoutItem","hasCollisions","collisions","getAllCollisions","layoutItem","leastX","leastY","Number","isFinite","_withLayoutItem2","_ref6","_this$state2","_e$nativeEvent$target","preventDefault","stopPropagation","nativeEvent","classList","contains","droppingItem","onDropDragOver","onDragOverResult","removeDroppingPlaceholder","finalDroppingItem","_e$nativeEvent","layerX","layerY","_this$state$droppingP","calculatedPosition","dragEnterCounter","item","find","onDrop","prevState","newLayoutBase","propsLayout","childrenEqual","fastRGLPropsEqual","autoSize","nbRow","bottom","containerPaddingY","onLayoutChange","isDroppingItem","String","draggableCancel","draggableHandle","_this$state3","draggable","resizable","resizeHandlesOptions","bounded","_this2","isDroppable","innerRef","mergedClassName","mergedStyle","containerHeight","noop","onDragLeave","onDragEnter","onDragOver","map","processGridItem","verticalCompact","arrayOf","oneOf","oneOfType","_default","any","_responsiveUtils","_ReactGridLayout","_excluded","_extends","assign","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","type","getIndentationValue","param","breakpoint","ResponsiveReactGridLayout","generateInitialState","layouts","_cols","findOrGenerateResponsiveLayout","breakpoints","getBreakpointFromWidth","colNo","getColsFromBreakpoint","onWidthChange","newBreakpoint","lastBreakpoint","newCols","newLayouts","cloneLayout","onBreakpointChange","other","validateLayout","lg","md","sm","xs","xxs","gridUnits","colOrRowSize","marginPx","round","num","lowerBound","upperBound","out","ComposedComponent","_class","WidthProvider","HTMLElement","offsetWidth","_createClass","window","addEventListener","onWindowResize","removeEventListener","measureBeforeMount","rest","module","a","b","isEqualImpl","breakpointsSorted","sortBreakpoints","breakpointsAbove","correctBounds","sorted","matching","breakpointName","sort","c","collides","compactItem","getFirstCollision","getStatics","modifyLayout","moveElementAwayFromCollision","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","sortLayoutItems","sortLayoutItemsByColRow","sortLayoutItemsByRowCol","initialLayout","exists","g","_grid","correctedLayout","itemKey","cb","bottomY","moved","l1","l2","compareWith","heightWidth","resolveCompactionCollision","moveToCoord","axis","sizeProp","otherItem","fullLayout","compactH","bounds","collidesWith","id","isUserAction","log","oldX","oldY","reverse","collision","itemToMove","compactV","fakeItem","contextName","subProps","j","utils","Responsive","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","index","mapToArray","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","exec","IE_PROTO","nativeObjectToString","reIsNative","RegExp","replace","Buffer","Uint8Array","splice","symToStringTag","toStringTag","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","arg","DataView","getNative","Map","Promise","Set","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entries","clear","entry","ListCache","MapCache","SetCache","values","__data__","add","Stack","data","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","eq","baseGetTag","isOwn","tag","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","stack","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","buffer","message","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isObject","isMasked","isFunction","baseKeys","Ctor","proto","arrLength","seen","arrValue","othIndex","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getSymbols","getMapData","getValue","pop","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ArrayBuffer","resolve","ctorString","isLength","baseUnary"],"sourceRoot":""}