text: "use strict";
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.default = void 0;
  
  var _propTypes = _interopRequireDefault(require("prop-types"));
  
  var _react = _interopRequireDefault(require("react"));
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var _default = {
    //
    // Basic props
    //
    className: _propTypes.default.string,
    style: _propTypes.default.object,
    // This can be set explicitly. If it is not set, it will automatically
    // be set to the container width. Note that resizes will *not* cause this to adjust.
    // If you need that behavior, use WidthProvider.
    width: _propTypes.default.number,
    // If true, the container height swells and contracts to fit contents
    autoSize: _propTypes.default.bool,
    // # of cols.
    cols: _propTypes.default.number,
    // A selector that will not be draggable.
    draggableCancel: _propTypes.default.string,
    // A selector for the draggable handler
    draggableHandle: _propTypes.default.string,
    // Deprecated
    verticalCompact: function verticalCompact(props
    /*: Props*/
    ) {
      if (props.verticalCompact === false && process.env.NODE_ENV !== "production") {
        console.warn( // eslint-disable-line no-console
        "`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. " + 'Use `compactType`: "horizontal" | "vertical" | null.');
      }
    },
    // Choose vertical or hotizontal compaction
    compactType: _propTypes.default.oneOf(["vertical", "horizontal"]),
    // layout is an array of object with the format:
    // {x: Number, y: Number, w: Number, h: Number, i: String}
    layout: function layout(props
    /*: Props*/
    ) {
      var layout = props.layout; // I hope you're setting the data-grid property on the grid items
  
      if (layout === undefined) return;
  
      require("./utils").validateLayout(layout, "layout");
    },
    //
    // Grid Dimensions
    //
    // Margin between items [x, y] in px
    margin: _propTypes.default.arrayOf(_propTypes.default.number),
    // Padding inside the container [x, y] in px
    containerPadding: _propTypes.default.arrayOf(_propTypes.default.number),
    // Rows have a static height, but you can change this based on breakpoints if you like
    rowHeight: _propTypes.default.number,
    // Default Infinity, but you can specify a max here if you like.
    // Note that this isn't fully fleshed out and won't error if you specify a layout that
    // extends beyond the row capacity. It will, however, not allow users to drag/resize
    // an item past the barrier. They can push items beyond the barrier, though.
    // Intentionally not documented for this reason.
    maxRows: _propTypes.default.number,
    //
    // Flags
    //
    isDraggable: _propTypes.default.bool,
    isResizable: _propTypes.default.bool,
    // If true, grid items won't change position when being dragged over.
    preventCollision: _propTypes.default.bool,
    // Use CSS transforms instead of top/left
    useCSSTransforms: _propTypes.default.bool,
    // parent layout transform scale
    transformScale: _propTypes.default.number,
    // If true, an external element can trigger onDrop callback with a specific grid position as a parameter
    isDroppable: _propTypes.default.bool,
    //
    // Callbacks
    //
    // Callback so you can save the layout. Calls after each drag & resize stops.
    onLayoutChange: _propTypes.default.func,
    // Calls when drag starts. Callback is of the signature (layout, oldItem, newItem, placeholder, e, ?node).
    // All callbacks below have the same signature. 'start' and 'stop' callbacks omit the 'placeholder'.
    onDragStart: _propTypes.default.func,
    // Calls on each drag movement.
    onDrag: _propTypes.default.func,
    // Calls when drag is complete.
    onDragStop: _propTypes.default.func,
    //Calls when resize starts.
    onResizeStart: _propTypes.default.func,
    // Calls when resize movement happens.
    onResize: _propTypes.default.func,
    // Calls when resize is complete.
    onResizeStop: _propTypes.default.func,
    // Calls when some element is dropped.
    onDrop: _propTypes.default.func,
    //
    // Other validations
    //
    droppingItem: _propTypes.default.shape({
      i: _propTypes.default.string.isRequired,
      w: _propTypes.default.number.isRequired,
      h: _propTypes.default.number.isRequired
    }),
    // Children must not have duplicate keys.
    children: function children(props
    /*: Props*/
    , propName
    /*: string*/
    ) {
      var children = props[propName]; // Check children keys for duplicates. Throw if found.
  
      var keys = {};
  
      _react.default.Children.forEach(children, function (child) {
        if (keys[child.key]) {
          throw new Error('Duplicate child key "' + child.key + '" found! This will cause problems in ReactGridLayout.');
        }
  
        keys[child.key] = true;
      });
    },
    // Optional ref for getting a reference for the wrapping div.
    innerRef: _propTypes.default.any
  };
  exports.default = _default;