"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInitialColumnsWidths = void 0;
const constants_1 = require("../../constants");
/**
 * метод для получения сохраненного размера колонок из localStorage,
 * либо формирования исходного состояния
 */
const createInitialColumnsWidths = (columns, key, storage = localStorage) => {
    const savedString = storage.getItem(key);
    const byDefault = columns
        .filter(({ field }) => field !== '$actions')
        .map(({ width }) => parseFloat(width));
    if (savedString && savedString.length > 0) {
        try {
            const parsed = JSON.parse(savedString);
            if (Array.isArray(parsed) &&
                parsed.every((item) => typeof item === 'number') &&
                parsed.length === byDefault.length &&
                parsed.reduce((sum, item) => sum + item, 0) === constants_1.ONE_HUNDRED_PERCENT) {
                return parsed;
            }
        }
        catch (_) { }
    }
    return byDefault;
};
exports.createInitialColumnsWidths = createInitialColumnsWidths;
