UNPKG

@vlsergey/react-bootstrap-pagetable

Version:

Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.

29 lines (28 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Returns order of fields including the ones that were added by developer after user customizes his table columns order */ function calcFieldsOrderWithNewOnes(allAllowedKeys, defaultKeysOrder, orderedByConfig, hiddenByConfig) { var result = orderedByConfig.filter(function (key) { return allAllowedKeys.includes(key) && !hiddenByConfig.includes(key); }); var invisibleBecauseNotInConfig = defaultKeysOrder.filter(function (key) { return !orderedByConfig.includes(key) && !hiddenByConfig.includes(key); }); // need to include invisible-because-unknown-before fields into result invisibleBecauseNotInConfig.forEach(function (fieldKey) { var insertAfterIndex = defaultKeysOrder.indexOf(fieldKey); while (insertAfterIndex > -1) { var fieldKeyAtIndex = defaultKeysOrder[insertAfterIndex]; var currentIndex = result.indexOf(fieldKeyAtIndex); if (currentIndex !== -1) { result.splice(currentIndex + 1, 0, fieldKey); return; } insertAfterIndex--; } result.splice(0, 0, fieldKey); }); return result; } exports.default = calcFieldsOrderWithNewOnes;