react-application-core
Version:
A react-based application core for the business applications.
132 lines • 6.04 kB
JavaScript
;
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