UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

33 lines 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findStackChanges = void 0; /** * Retrieves the changes between two stacks of items. Items are only allowed to be removed or added, not switch places (swaps are ignored) * @param oldItems The previous item list * @param newItems The new item list * @returns The added and removed items lists */ function findStackChanges(oldItems, newItems) { // Check ids in old and new group const oldIds = {}; const newIds = {}; oldItems.forEach(item => (oldIds[item.ID] = item)); newItems.forEach(({ ID }) => (newIds[ID] = true)); // Check whether all ids are present and add to added or removed otherwise const removed = []; const added = []; const updated = []; oldItems.forEach((item, i) => { if (!newIds[item.ID]) removed.push({ index: i, item }); }); newItems.forEach((item, i) => { if (!oldIds[item.ID]) added.push({ index: i, item }); else if (oldIds[item.ID] != item) updated.push({ index: i, oldItem: oldIds[item.ID], newItem: item }); }); return { removed, added, updated }; } exports.findStackChanges = findStackChanges; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZFN0YWNrQ2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbmRTdGFja0NoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7Ozs7O0dBS0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDNUIsUUFBc0IsRUFDdEIsUUFBc0I7SUFVdEIsaUNBQWlDO0lBQ2pDLE1BQU0sTUFBTSxHQUF1QixFQUFFLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztJQUM1QyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFaEQsMEVBQTBFO0lBQzFFLE1BQU0sT0FBTyxHQUErQixFQUFFLENBQUM7SUFDL0MsTUFBTSxLQUFLLEdBQStCLEVBQUUsQ0FBQztJQUM3QyxNQUFNLE9BQU8sR0FBOEMsRUFBRSxDQUFDO0lBQzlELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUM5QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSTtZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQ3JDLENBQUM7QUFoQ0QsNENBZ0NDIn0=