@snipsonian/core
Version:
Core/base reusable javascript code snippets
21 lines (20 loc) • 774 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const isArray_1 = require("../../is/isArray");
function collapsable({ initialIsCollapsed = false } = {}) {
return function decorate(target) {
if ((0, isArray_1.default)(target)) {
return target.map((entity) => enrichToBeCollapsable(entity, initialIsCollapsed));
}
return enrichToBeCollapsable(target, initialIsCollapsed);
};
}
exports.default = collapsable;
function enrichToBeCollapsable(target, initialIsCollapsed) {
const enrichedTarget = target;
enrichedTarget.isCollapsed = initialIsCollapsed;
enrichedTarget.toggleCollapse = () => {
enrichedTarget.isCollapsed = !enrichedTarget.isCollapsed;
};
return enrichedTarget;
}