{"version":3,"file":"getAttributesDiff.cjs","sources":["../../src/utils/getAttributesDiff.js"],"sourcesContent":["/**\n * Get difference between current and previous attributes.\n * @param {Object} attributes Current attributes object.\n * @param {Object} previous Previous attributes object.\n * @return {Object} Object with add and remove properties.\n * @module\n * @private\n */\nexport default function getAttributesDiff(attributes, previous = {}) {\n    const add = {};\n    const remove = [];\n    // Find attributes to add/update.\n    Object.keys(attributes).forEach(key => {\n        let value = attributes[key];\n        // Only add if the value is different from previous.\n        if (value !== previous[key]) {\n            if (value === true) {\n                add[key] = '';\n            } else if (value !== false) {\n                if (value === null || typeof value === 'undefined') value = '';\n                add[key] = value;\n            }\n        }\n    });\n    // Find attributes to remove.\n    Object.keys(previous).forEach(key => {\n        if (!(key in attributes) || ((previous[key] !== attributes[key]) && attributes[key] === false)) {\n            remove.push(key);\n        }\n    });\n\n    return { add, remove };\n}\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,iBAAiB,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,EAAE;AACrE,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AAC3C,QAAQ,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;AACnC;AACA,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,EAAE;AACrC,YAAY,IAAI,KAAK,KAAK,IAAI,EAAE;AAChC,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC7B,YAAY,CAAC,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE;AACxC,gBAAgB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE;AAC9E,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChC,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACzC,QAAQ,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE;AACxG,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,QAAQ;AACR,IAAI,CAAC,CAAC;;AAEN,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE;AAC1B;;;;"}