parts: calculateExistingParts()

in web/src/shared/components/annotator/components/table-annotation/helpers.tsx [367:423]


                parts: calculateExistingParts(
                    tableRows,
                    annotation.bound.height,
                    gutterParams.visibleGutterWidth
                )
            };
        }
    }
    return gutters;
};

export const sumArrToIndex = (gutter: TableGutter, idx: number): number => {
    let res = 0;
    if (gutter.type === 'vertical') {
        for (let i = 0; i < idx; ++i) {
            res += gutter.parts[i].length;
        }
    } else {
        for (let i = 0; i < idx; ++i) {
            res += gutter.parts[i].length;
        }
    }
    return res;
};

const calculateExistingParts = (
    array: number[],
    maxLength: number,
    visibleGutterWidth: number
): GutterPart[] => {
    let prev = 0;
    return array
        .map((gutterLength) => {
            const newLength = gutterLength - prev;
            prev = gutterLength;
            return {
                length: newLength,
                visibility: true
            };
        })
        .concat([
            {
                length: maxLength - prev - visibleGutterWidth,
                visibility: true
            }
        ]);
};

//TODO: DO NOT REMOVE JUST YET
export const createGuttersFromAnnotation = (
    annotation: Annotation,
    gutterParams: GutterParams
): TableGutterMap => {
    const gutters: TableGutterMap = {};
    if (annotation.table && annotation.table.cols && annotation.table.rows) {
        for (let i = 0; i < annotation.table.rows.length; ++i) {
            gutters[i] = {