text: "use strict";
  var __assign = (this && this.__assign) || function () {
      __assign = Object.assign || function(t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                  t[p] = s[p];
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
      if (k2 === undefined) k2 = k;
      Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  }) : (function(o, m, k, k2) {
      if (k2 === undefined) k2 = k;
      o[k2] = m[k];
  }));
  var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
  }) : function(o, v) {
      o["default"] = v;
  });
  var __importStar = (this && this.__importStar) || function (mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
      __setModuleDefault(result, mod);
      return result;
  };
  var __rest = (this && this.__rest) || function (s, e) {
      var t = {};
      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
          t[p] = s[p];
      if (s != null && typeof Object.getOwnPropertySymbols === "function")
          for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
              if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                  t[p[i]] = s[p[i]];
          }
      return t;
  };
  var __importDefault = (this && this.__importDefault) || function (mod) {
      return (mod && mod.__esModule) ? mod : { "default": mod };
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var react_1 = __importStar(require("react"));
  var GridListCell_1 = __importDefault(require("./GridListCell"));
  var useGridList_1 = require("./useGridList");
  var isRenderFunction = function (children) { return typeof children === "function"; };
  /**
   * The `GridList` component is a different way to render a list of data where
   * the number of columns is dynamic and based on the max-width for each cell.
   * Instead of setting a percentage width to each cell based on the number of
   * columns, this will dynamically add columns to fill up the remaining space and
   * have each cell grow up to a set max-width. A really good use-case for this is
   * displaying a list of images or thumbnails and allowing the user to see a full
   * screen preview once selected/clicked.
   */
  var GridList = react_1.forwardRef(function GridList(_a, forwardedRef) {
      var style = _a.style, className = _a.className, children = _a.children, _b = _a.clone, clone = _b === void 0 ? false : _b, _c = _a.wrapOnly, wrapOnly = _c === void 0 ? false : _c, cellMargin = _a.cellMargin, defaultSize = _a.defaultSize, _d = _a.maxCellSize, maxCellSize = _d === void 0 ? useGridList_1.DEFAULT_GRID_LIST_MAX_CELL_SIZE : _d, _e = _a.containerPadding, containerPadding = _e === void 0 ? useGridList_1.DEFAULT_GRID_LIST_PADDING : _e, _f = _a.disableHeightObserver, disableHeightObserver = _f === void 0 ? false : _f, _g = _a.disableWidthObserver, disableWidthObserver = _g === void 0 ? false : _g, props = __rest(_a, ["style", "className", "children", "clone", "wrapOnly", "cellMargin", "defaultSize", "maxCellSize", "containerPadding", "disableHeightObserver", "disableWidthObserver"]);
      var _h = useGridList_1.useGridList({
          ref: forwardedRef,
          style: style,
          className: className,
          cellMargin: cellMargin,
          defaultSize: defaultSize,
          maxCellSize: maxCellSize,
          containerPadding: containerPadding,
          disableHeight: disableHeightObserver,
          disableWidth: disableWidthObserver,
      }), gridListProps = _h[0], gridSize = _h[1];
      var content = null;
      if (isRenderFunction(children)) {
          content = children(gridSize);
      }
      else if (clone || wrapOnly) {
          content = react_1.Children.map(children, function (child) { return child && react_1.default.createElement(GridListCell_1.default, { clone: clone }, child); });
      }
      else {
          content = children;
      }
      return (react_1.default.createElement(useGridList_1.GridListSizeProvider, { value: gridSize },
          react_1.default.createElement("div", __assign({}, props, gridListProps), content)));
  });
  if (process.env.NODE_ENV !== "production") {
      try {
          var PropTypes = require("prop-types");
          GridList.propTypes = {
              style: PropTypes.object,
              clone: PropTypes.bool,
              wrapOnly: PropTypes.bool,
              className: PropTypes.string,
              children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
              cellMargin: PropTypes.string,
              maxCellSize: PropTypes.number,
              defaultSize: PropTypes.oneOfType([
                  PropTypes.shape({
                      columns: PropTypes.number.isRequired,
                      cellWidth: PropTypes.number.isRequired,
                  }),
                  PropTypes.func,
              ]),
              containerPadding: PropTypes.number,
              disableHeightObserver: PropTypes.bool,
              disableWidthObserver: PropTypes.bool,
          };
      }
      catch (e) { }
  }
  exports.default = GridList;
  //# sourceMappingURL=GridList.js.map