UNPKG

fox-block-builder

Version:

Maintainable code for loop slack-block-kit-like modal builder

30 lines 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccordionStateManager = void 0; class AccordionStateManager { constructor(params) { this.expandedItems = params.expandedItems || []; this.collapseOnExpand = params.collapseOnExpand || false; } checkItemIsExpandedByIndex(index) { return this.expandedItems.includes(index); } getNextStateByItemIndex(index) { if (index === undefined) { return this.expandedItems; } const isExpanded = this.checkItemIsExpandedByIndex(index); if (isExpanded) { const nextState = [...this.expandedItems]; const expandedItemsIndex = this.expandedItems .findIndex((expandedItem) => expandedItem === index); nextState.splice(expandedItemsIndex, 1); return nextState; } return this.collapseOnExpand ? [index] : [...this.expandedItems, index]; } } exports.AccordionStateManager = AccordionStateManager; //# sourceMappingURL=accordion-state-manager.js.map