UNPKG

@snipsonian/core

Version:

Core/base reusable javascript code snippets

21 lines (20 loc) 774 B
"use strict"; 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; }