kea-react
Version:
Componentes comunes de react
57 lines (56 loc) • 3.46 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__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;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var reselect_1 = require("reselect");
var logic_1 = require("./logic");
var row_1 = require("./row");
var TreeComponent = /** @class */ (function (_super) {
__extends(TreeComponent, _super);
function TreeComponent() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.collapsedPathSelector = function (props) { return props.state.collapsed; };
_this.treeSelector = function (props) { return props.value; };
_this.treeRowsSelector = reselect_1.createSelector(_this.treeSelector, _this.collapsedPathSelector, function (tree, collapsedPath) { return logic_1.getTreeRows([], tree, collapsedPath); });
_this.stateSelector = function (props) { return props.state; };
_this.onStateChangeSelector = function (props) { return props.onStateChange; };
_this.handleOnCollapsedChageSelector = reselect_1.createSelector(_this.onStateChangeSelector, _this.stateSelector, function (onChange, value) { return function (collapsed) { return onChange(__assign({}, value, { collapsed: collapsed })); }; });
_this.handleOnItemCollapsedChangeSelector = reselect_1.createSelector(_this.handleOnCollapsedChageSelector, _this.collapsedPathSelector, function (onChange, collapsed) { return function (path, value) { return onChange(logic_1.handleOnCollapsedChange(path, value, collapsed)); }; });
_this.treeRowPropsSelector = reselect_1.createSelector(_this.treeRowsSelector, _this.handleOnItemCollapsedChangeSelector, function (rows, onCollapsed) { return rows.map(function (x) { return ({
key: x.path.join("/"),
path: x.path,
level: x.path.length,
collapsed: x.collapsed,
onCollapsedChange: function (value) { return onCollapsed(x.path, value); },
value: x.value
}); }); });
_this.rowRendererSelector = function (props) { return props.rowRenderer; };
_this.treeRowComponentsSelector = reselect_1.createSelector(_this.treeRowPropsSelector, _this.rowRendererSelector, function (rows, renderer) { return rows.map(function (row) {
return React.createElement(row_1.TreeRowComponent, __assign({}, row), renderer(row.value, row.path));
}); });
return _this;
}
TreeComponent.prototype.render = function () {
var rows = this.treeRowComponentsSelector(this.props);
return (React.createElement("div", null, rows));
};
return TreeComponent;
}(React.PureComponent));
exports.TreeComponent = TreeComponent;