utils.js 949 Bytes
export const zeroGap = {
    left: 0,
    top: 0,
    right: 0,
    gap: 0,
};
const parse = (x) => parseInt(x || '', 10) || 0;
const getOffset = (gapMode) => {
    const cs = window.getComputedStyle(document.body);
    const left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];
    const top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];
    const right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];
    return [parse(left), parse(top), parse(right)];
};
export const getGapWidth = (gapMode = 'margin') => {
    if (typeof window === 'undefined') {
        return zeroGap;
    }
    const offsets = getOffset(gapMode);
    const documentWidth = document.documentElement.clientWidth;
    const windowWidth = window.innerWidth;
    return {
        left: offsets[0],
        top: offsets[1],
        right: offsets[2],
        gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),
    };
};