UNPKG

custom-app

Version:

ITIMS��Ʒ�鿪��ר��React���,�Dz��ý��ּ�dhcc-app���������

118 lines (90 loc) 12.4 kB
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _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; }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } import { useMemo } from "react"; import { getBy, getFirstDefined, setBy } from "../utils"; import { addActions, actions } from "../actions"; import { defaultState } from "./useTableState"; defaultState.expanded = {}; addActions({ toggleExpanded: "__toggleExpanded__", useExpanded: "__useExpanded__" }); export var useExpanded = function useExpanded(props) { var debug = props.debug, columns = props.columns, rows = props.rows, _props$expandedKey = props.expandedKey, expandedKey = _props$expandedKey === undefined ? "expanded" : _props$expandedKey, hooks = props.hooks, _props$state = _slicedToArray(props.state, 2), expanded = _props$state[0].expanded, setState = _props$state[1]; var toggleExpandedByPath = function toggleExpandedByPath(path, set) { return setState(function (old) { var expanded = old.expanded; var existing = getBy(expanded, path); set = getFirstDefined(set, !existing); return _extends({}, old, { expanded: setBy(expanded, path, set) }); }, actions.toggleExpanded); }; hooks.row.push(function (row) { var path = row.path; row.toggleExpanded = function (set) { return toggleExpandedByPath(path, set); }; }); var expandedRows = useMemo(function () { if (debug) console.info("getExpandedRows"); var expandedRows = []; // Here we do some mutation, but it's the last stage in the // immutable process so this is safe var handleRow = function handleRow(row, index) { var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; var parentPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; // Compute some final state for the row var path = [].concat(_toConsumableArray(parentPath), [index]); row.path = path; row.depth = depth; row.isExpanded = row.original && row.original[expandedKey] || getBy(expanded, path); row.cells = columns.map(function (column) { var cell = { column: column, row: row, state: null, value: row.values[column.id] }; return cell; }); expandedRows.push(row); if (row.isExpanded && row.subRows && row.subRows.length) { row.subRows.forEach(function (row, i) { return handleRow(row, i, depth + 1, path); }); } }; rows.forEach(function (row, i) { return handleRow(row, i); }); return expandedRows; }, [rows, expanded, columns]); var expandedDepth = findExpandedDepth(expanded); return _extends({}, props, { toggleExpandedByPath: toggleExpandedByPath, expandedDepth: expandedDepth, rows: expandedRows }); }; function findExpandedDepth(obj) { var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; return Object.values(obj).reduce(function (prev, curr) { if ((typeof curr === "undefined" ? "undefined" : _typeof(curr)) === "object") { return Math.max(prev, findExpandedDepth(curr, depth + 1)); } return depth; }, 0); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFeHBhbmRlZC5qcyJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwiZ2V0QnkiLCJnZXRGaXJzdERlZmluZWQiLCJzZXRCeSIsImFkZEFjdGlvbnMiLCJhY3Rpb25zIiwiZGVmYXVsdFN0YXRlIiwiZXhwYW5kZWQiLCJ0b2dnbGVFeHBhbmRlZCIsInVzZUV4cGFuZGVkIiwiZGVidWciLCJwcm9wcyIsImNvbHVtbnMiLCJyb3dzIiwiZXhwYW5kZWRLZXkiLCJob29rcyIsInN0YXRlIiwic2V0U3RhdGUiLCJ0b2dnbGVFeHBhbmRlZEJ5UGF0aCIsInBhdGgiLCJzZXQiLCJvbGQiLCJleGlzdGluZyIsInJvdyIsInB1c2giLCJleHBhbmRlZFJvd3MiLCJjb25zb2xlIiwiaW5mbyIsImhhbmRsZVJvdyIsImluZGV4IiwiZGVwdGgiLCJwYXJlbnRQYXRoIiwiaXNFeHBhbmRlZCIsIm9yaWdpbmFsIiwiY2VsbHMiLCJtYXAiLCJjZWxsIiwiY29sdW1uIiwidmFsdWUiLCJ2YWx1ZXMiLCJpZCIsInN1YlJvd3MiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaSIsImV4cGFuZGVkRGVwdGgiLCJmaW5kRXhwYW5kZWREZXB0aCIsIm9iaiIsIk9iamVjdCIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiTWF0aCIsIm1heCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxTQUFTQSxPQUFULFFBQXdCLE9BQXhCOztBQUVBLFNBQVNDLEtBQVQsRUFBZ0JDLGVBQWhCLEVBQWlDQyxLQUFqQyxRQUE4QyxVQUE5QztBQUNBLFNBQVNDLFVBQVQsRUFBcUJDLE9BQXJCLFFBQW9DLFlBQXBDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixpQkFBN0I7O0FBRUFBLGFBQWFDLFFBQWIsR0FBd0IsRUFBeEI7O0FBRUFILFdBQVc7QUFDVEksa0JBQWdCLG9CQURQO0FBRVRDLGVBQWE7QUFGSixDQUFYOztBQUtBLE9BQU8sSUFBTUEsY0FBYyxTQUFkQSxXQUFjLFFBQVM7QUFBQSxN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LENBQVo7QUFBQSxLQUFiOztBQUVBLFdBQU9uQixZQUFQO0FBQ0QsR0F2Q2tCLEVBd0NuQixDQUFDWixJQUFELEVBQU9OLFFBQVAsRUFBaUJLLE9BQWpCLENBeENtQixDQUFyQjs7QUEyQ0EsTUFBTWlDLGdCQUFnQkMsa0JBQWtCdkMsUUFBbEIsQ0FBdEI7O0FBRUEsc0JBQ0tJLEtBREw7QUFFRU8sOENBRkY7QUFHRTJCLGdDQUhGO0FBSUVoQyxVQUFNWTtBQUpSO0FBTUQsQ0E5RU07O0FBZ0ZQLFNBQVNxQixpQkFBVCxDQUEyQkMsR0FBM0IsRUFBMkM7QUFBQSxNQUFYakIsS0FBVyx1RUFBSCxDQUFHOztBQUN6QyxTQUFPa0IsT0FBT1QsTUFBUCxDQUFjUSxHQUFkLEVBQW1CRSxNQUFuQixDQUEwQixVQUFDQyxJQUFELEVBQU9DLElBQVAsRUFBZ0I7QUFDL0MsUUFBSSxRQUFPQSxJQUFQLHlDQUFPQSxJQUFQLE9BQWdCLFFBQXBCLEVBQThCO0FBQzVCLGFBQU9DLEtBQUtDLEdBQUwsQ0FBU0gsSUFBVCxFQUFlSixrQkFBa0JLLElBQWxCLEVBQXdCckIsUUFBUSxDQUFoQyxDQUFmLENBQVA7QUFDRDtBQUNELFdBQU9BLEtBQVA7QUFDRCxHQUxNLEVBS0osQ0FMSSxDQUFQO0FBTUQiLCJmaWxlIjoidXNlRXhwYW5kZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGdldEJ5LCBnZXRGaXJzdERlZmluZWQsIHNldEJ5IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBhZGRBY3Rpb25zLCBhY3Rpb25zIH0gZnJvbSBcIi4uL2FjdGlvbnNcIjtcbmltcG9ydCB7IGRlZmF1bHRTdGF0ZSB9IGZyb20gXCIuL3VzZVRhYmxlU3RhdGVcIjtcblxuZGVmYXVsdFN0YXRlLmV4cGFuZGVkID0ge307XG5cbmFkZEFjdGlvbnMoe1xuICB0b2dnbGVFeHBhbmRlZDogXCJfX3RvZ2dsZUV4cGFuZGVkX19cIixcbiAgdXNlRXhwYW5kZWQ6IFwiX191c2VFeHBhbmRlZF9fXCJcbn0pO1xuXG5leHBvcnQgY29uc3QgdXNlRXhwYW5kZWQgPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHtcbiAgICBkZWJ1ZyxcbiAgICBjb2x1bW5zLFxuICAgIHJvd3MsXG4gICAgZXhwYW5kZWRLZXkgPSBcImV4cGFuZGVkXCIsXG4gICAgaG9va3MsXG4gICAgc3RhdGU6IFt7IGV4cGFuZGVkIH0sIHNldFN0YXRlXVxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgdG9nZ2xlRXhwYW5kZWRCeVBhdGggPSAocGF0aCwgc2V0KSA9PiB7XG4gICAgcmV0dXJuIHNldFN0YXRlKG9sZCA9PiB7XG4gICAgICBjb25zdCB7IGV4cGFuZGVkIH0gPSBvbGQ7XG4gICAgICBjb25zdCBleGlzdGluZyA9IGdldEJ5KGV4cGFuZGVkLCBwYXRoKTtcbiAgICAgIHNldCA9IGdldEZpcnN0RGVmaW5lZChzZXQsICFleGlzdGluZyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vbGQsXG4gICAgICAgIGV4cGFuZGVkOiBzZXRCeShleHBhbmRlZCwgcGF0aCwgc2V0KVxuICAgICAgfTtcbiAgICB9LCBhY3Rpb25zLnRvZ2dsZUV4cGFuZGVkKTtcbiAgfTtcblxuICBob29rcy5yb3cucHVzaChyb3cgPT4ge1xuICAgIGNvbnN0IHsgcGF0aCB9ID0gcm93O1xuICAgIHJvdy50b2dnbGVFeHBhbmRlZCA9IHNldCA9PiB0b2dnbGVFeHBhbmRlZEJ5UGF0aChwYXRoLCBzZXQpO1xuICB9KTtcblxuICBjb25zdCBleHBhbmRlZFJvd3MgPSB1c2VNZW1vKFxuICAgICgpID0+IHtcbiAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5pbmZvKFwiZ2V0RXhwYW5kZWRSb3dzXCIpO1xuXG4gICAgICBjb25zdCBleHBhbmRlZFJvd3MgPSBbXTtcblxuICAgICAgLy8gSGVyZSB3ZSBkbyBzb21lIG11dGF0aW9uLCBidXQgaXQncyB0aGUgbGFzdCBzdGFnZSBpbiB0aGVcbiAgICAgIC8vIGltbXV0YWJsZSBwcm9jZXNzIHNvIHRoaXMgaXMgc2FmZVxuICAgICAgY29uc3QgaGFuZGxlUm93ID0gKHJvdywgaW5kZXgsIGRlcHRoID0gMCwgcGFyZW50UGF0aCA9IFtdKSA9PiB7XG4gICAgICAgIC8vIENvbXB1dGUgc29tZSBmaW5hbCBzdGF0ZSBmb3IgdGhlIHJvd1xuICAgICAgICBjb25zdCBwYXRoID0gWy4uLnBhcmVudFBhdGgsIGluZGV4XTtcblxuICAgICAgICByb3cucGF0aCA9IHBhdGg7XG4gICAgICAgIHJvdy5kZXB0aCA9IGRlcHRoO1xuXG4gICAgICAgIHJvdy5pc0V4cGFuZGVkID1cbiAgICAgICAgICAocm93Lm9yaWdpbmFsICYmIHJvdy5vcmlnaW5hbFtleHBhbmRlZEtleV0pIHx8IGdldEJ5KGV4cGFuZGVkLCBwYXRoKTtcblxuICAgICAgICByb3cuY2VsbHMgPSBjb2x1bW5zLm1hcChjb2x1bW4gPT4ge1xuICAgICAgICAgIGNvbnN0IGNlbGwgPSB7XG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICByb3csXG4gICAgICAgICAgICBzdGF0ZTogbnVsbCxcbiAgICAgICAgICAgIHZhbHVlOiByb3cudmFsdWVzW2NvbHVtbi5pZF1cbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGFuZGVkUm93cy5wdXNoKHJvdyk7XG5cbiAgICAgICAgaWYgKHJvdy5pc0V4cGFuZGVkICYmIHJvdy5zdWJSb3dzICYmIHJvdy5zdWJSb3dzLmxlbmd0aCkge1xuICAgICAgICAgIHJvdy5zdWJSb3dzLmZvckVhY2goKHJvdywgaSkgPT4gaGFuZGxlUm93KHJvdywgaSwgZGVwdGggKyAxLCBwYXRoKSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiBoYW5kbGVSb3cocm93LCBpKSk7XG5cbiAgICAgIHJldHVybiBleHBhbmRlZFJvd3M7XG4gICAgfSxcbiAgICBbcm93cywgZXhwYW5kZWQsIGNvbHVtbnNdXG4gICk7XG5cbiAgY29uc3QgZXhwYW5kZWREZXB0aCA9IGZpbmRFeHBhbmRlZERlcHRoKGV4cGFuZGVkKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHRvZ2dsZUV4cGFuZGVkQnlQYXRoLFxuICAgIGV4cGFuZGVkRGVwdGgsXG4gICAgcm93czogZXhwYW5kZWRSb3dzXG4gIH07XG59O1xuXG5mdW5jdGlvbiBmaW5kRXhwYW5kZWREZXB0aChvYmosIGRlcHRoID0gMSkge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhvYmopLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgIGlmICh0eXBlb2YgY3VyciA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGZpbmRFeHBhbmRlZERlcHRoKGN1cnIsIGRlcHRoICsgMSkpO1xuICAgIH1cbiAgICByZXR1cm4gZGVwdGg7XG4gIH0sIDApO1xufVxuIl19