UNPKG

react-application-core

Version:

A react-based application core for the business applications.

132 lines 6.04 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; 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) || 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 __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ListItem = void 0; var React = require("react"); var util_1 = require("../../../util"); var generic_component_1 = require("../../base/generic.component"); var definition_1 = require("../../../definition"); /** * @component-impl * @stable [17.08.2020] */ var ListItem = /** @class */ (function (_super) { __extends(ListItem, _super); /** * @stable [17.08.2020] * @param originalProps */ function ListItem(originalProps) { var _this = _super.call(this, originalProps) || this; _this.onClick = _this.onClick.bind(_this); return _this; } /** * @stable [09.08.2020] */ ListItem.prototype.render = function () { var _this = this; var originalProps = this.originalProps; var entity = originalProps.entity, iconLeftAligned = originalProps.iconLeftAligned, index = originalProps.index, renderer = originalProps.renderer, tpl = originalProps.tpl; return (React.createElement(definition_1.UniversalScrollableContext.Consumer, null, function (selectedElementClassName) { var itemProps = _this.getItemProps(selectedElementClassName); return (util_1.TypeUtils.isFn(renderer) ? React.cloneElement(renderer(entity, index), itemProps) : (React.createElement("li", __assign({}, itemProps), iconLeftAligned && _this.iconElement, React.createElement("div", { className: definition_1.ListClassesEnum.LIST_ITEM_CONTENT }, util_1.TypeUtils.isFn(tpl) ? tpl(entity) : _this.originalChildren), !iconLeftAligned && _this.iconElement))); })); }; /** * @stable [17.08.2020] * @param selectedElementClassName */ ListItem.prototype.getItemProps = function (selectedElementClassName) { var mergedProps = this.mergedProps; var originalProps = this.originalProps; var className = originalProps.className, entity = originalProps.entity, icon = originalProps.icon, last = originalProps.last, selected = originalProps.selected; var isHovered = util_1.RowUtils.isHovered(mergedProps); var isOddHighlighted = util_1.RowUtils.isOddHighlighted(mergedProps); var isSelectable = util_1.RowUtils.isSelectable(originalProps); var isIndexed = util_1.RowUtils.isIndexed(originalProps); return (__assign({ ref: this.actualRef, className: util_1.ClsUtils.joinClassName.apply(util_1.ClsUtils, __spreadArrays([definition_1.ListClassesEnum.LIST_ITEM, util_1.CalcUtils.calc(className), icon && definition_1.ListClassesEnum.LIST_ITEM_DECORATED, isHovered && definition_1.ListClassesEnum.LIST_ITEM_HOVERED, isIndexed && definition_1.ListClassesEnum.LIST_ITEM + "-" + entity.id, isOddHighlighted && definition_1.ListClassesEnum.LIST_ITEM_ODD, isSelectable && definition_1.ListClassesEnum.LIST_ITEM_SELECTABLE, last && definition_1.ListClassesEnum.LIST_ITEM_LAST], isSelectable && (selected ? [definition_1.ListClassesEnum.LIST_ITEM_SELECTED, selectedElementClassName] : [definition_1.ListClassesEnum.LIST_ITEM_UNSELECTED]) || [])) }, util_1.PropsUtils.buildClickHandlerProps(this.onClick, isSelectable, false))); }; /** * @stable [09.08.2020] */ ListItem.prototype.onClick = function () { var _a = this.originalProps, entity = _a.entity, onClick = _a.onClick; onClick(entity); }; Object.defineProperty(ListItem.prototype, "iconElement", { /** * @stable [17.08.2020] */ get: function () { var icon = this.originalProps.icon; return (icon && this.uiFactory.makeIcon({ type: icon, className: definition_1.ListClassesEnum.LIST_ITEM_ICON, })); }, enumerable: false, configurable: true }); Object.defineProperty(ListItem.prototype, "componentsSettingsProps", { /** * @stable [17.08.2020] */ get: function () { return this.componentsSettings.listItem; }, enumerable: false, configurable: true }); ListItem.defaultProps = { hovered: true, iconLeftAligned: true, }; return ListItem; }(generic_component_1.GenericComponent)); exports.ListItem = ListItem; //# sourceMappingURL=list-item.component.js.map