UNPKG

@linid-dm/directory-manager-client-core

Version:

Core package by providing a set of angular components for the Directory Manager app.

87 lines 11.7 kB
/** * Copyright (C) 2020-2024 Linagora * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version, provided you comply with the Additional Terms applicable for * LinID Directory Manager software by LINAGORA pursuant to Section 7 of the GNU * Affero General Public License, subsections (b), (c), and (e), pursuant to * which these Appropriate Legal Notices must notably (i) retain the display of * the "LinID™" trademark/logo at the top of the interface window, the display * of the “You are using the Open Source and free version of LinID™, powered by * Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise * offer!” infobox and in the e-mails sent with the Program, notice appended to * any type of outbound messages (e.g. e-mail and meeting requests) as well as * in the LinID Directory Manager user interface, (ii) retain all hypertext * links between LinID Directory Manager and https://linid.org/, as well as * between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA * intellectual property rights over its trademarks and commercial brands. Other * Additional Terms apply, see <http://www.linagora.com/licenses/> for more * details. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more * details. * * You should have received a copy of the GNU Affero General Public License and * its applicable Additional Terms for LinID Directory Manager along with this * program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero * General Public License version 3 and <http://www.linagora.com/licenses/> for * the Additional Terms applicable to the LinID Directory Manager software. */ export function emptyJsTable() { return { byId: {}, allIds: [], }; } export function toJsTable(obj) { const allIds = Object.keys(obj); const byId = {}; allIds.forEach((id) => { byId[id] = Object.assign({}, obj[id]); }); return { byId, allIds }; } /** * This merge value into table.byId[id] */ export function updateById(table, id, value) { return Object.assign({}, table, { byId: { ...table.byId, [id]: Object.assign({}, table.byId[id], value), }, }); } /** * This put value in table.byId[id] and adds id to allIds. */ export function putById(table, id, value, initializer) { return Object.assign({}, table, { allIds: table.byId[id] ? [...Array.from(new Set([...table.allIds, id]))] : [...table.allIds, id], byId: { ...table.byId, [id]: Object.assign({}, table.byId[id] ? table.byId[id] : initializer(), value), }, }); } /** * This merges all the elements of toMerge.byId * into table.byId elements and toMerge.allIds into table.allIds. * And also ensure elements are fully initialised. */ export function mergeInto(table, toMerge) { return Object.assign({}, table, { allIds: [...Array.from(new Set([...table.allIds, ...toMerge.allIds]))], byId: toMerge.allIds.reduce((acc, id) => ({ ...acc, [id]: Object.assign({}, acc[id], toMerge.byId[id]), }), table.byId), }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianN0YWJsZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9saWJzL2NsaWVudC1jb3JlL3NyYy9saWIvc2hhcmVkL2hlbHBlcnMvanN0YWJsZS5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBT0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTztRQUNMLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUksR0FBd0I7SUFDbkQsTUFBTSxNQUFNLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQyxNQUFNLElBQUksR0FBd0IsRUFBRSxDQUFDO0lBRXJDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzFCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQ3hCLEtBQVEsRUFDUixFQUFVLEVBQ1YsS0FBaUI7SUFFakIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDOUIsSUFBSSxFQUFFO1lBQ0osR0FBRyxLQUFLLENBQUMsSUFBSTtZQUNiLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUM7U0FDL0M7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixLQUFRLEVBQ1IsRUFBVSxFQUNWLEtBQWlCLEVBQ2pCLFdBQW9CO0lBRXBCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQzlCLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDekIsSUFBSSxFQUFFO1lBQ0osR0FBRyxLQUFLLENBQUMsSUFBSTtZQUNiLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDakIsRUFBRSxFQUNGLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUMvQyxLQUFLLENBQ047U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsS0FBUSxFQUNSLE9BQW1CO0lBRW5CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQzlCLE1BQU0sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN6QixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDWixHQUFHLEdBQUc7WUFDTixDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25ELENBQUMsRUFDRixLQUFLLENBQUMsSUFBSSxDQUNYO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjQgTGluYWdvcmFcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlclxuICogdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlXG4gKiBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueVxuICogbGF0ZXIgdmVyc2lvbiwgcHJvdmlkZWQgeW91IGNvbXBseSB3aXRoIHRoZSBBZGRpdGlvbmFsIFRlcm1zIGFwcGxpY2FibGUgZm9yXG4gKiBMaW5JRCBEaXJlY3RvcnkgTWFuYWdlciBzb2Z0d2FyZSBieSBMSU5BR09SQSBwdXJzdWFudCB0byBTZWN0aW9uIDcgb2YgdGhlIEdOVVxuICogQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHN1YnNlY3Rpb25zIChiKSwgKGMpLCBhbmQgKGUpLCBwdXJzdWFudCB0b1xuICogd2hpY2ggdGhlc2UgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyBtdXN0IG5vdGFibHkgKGkpIHJldGFpbiB0aGUgZGlzcGxheSBvZlxuICogdGhlIFwiTGluSUTihKJcIiB0cmFkZW1hcmsvbG9nbyBhdCB0aGUgdG9wIG9mIHRoZSBpbnRlcmZhY2Ugd2luZG93LCB0aGUgZGlzcGxheVxuICogb2YgdGhlIOKAnFlvdSBhcmUgdXNpbmcgdGhlIE9wZW4gU291cmNlIGFuZCBmcmVlIHZlcnNpb24gb2YgTGluSUTihKIsIHBvd2VyZWQgYnlcbiAqIExpbmFnb3JhIMKpIDIwMDnigJMyMDEzLiBDb250cmlidXRlIHRvIExpbklEIFImRCBieSBzdWJzY3JpYmluZyB0byBhbiBFbnRlcnByaXNlXG4gKiBvZmZlciHigJ0gaW5mb2JveCBhbmQgaW4gdGhlIGUtbWFpbHMgc2VudCB3aXRoIHRoZSBQcm9ncmFtLCBub3RpY2UgYXBwZW5kZWQgdG9cbiAqIGFueSB0eXBlIG9mIG91dGJvdW5kIG1lc3NhZ2VzIChlLmcuIGUtbWFpbCBhbmQgbWVldGluZyByZXF1ZXN0cykgYXMgd2VsbCBhc1xuICogaW4gdGhlIExpbklEIERpcmVjdG9yeSBNYW5hZ2VyIHVzZXIgaW50ZXJmYWNlLCAoaWkpIHJldGFpbiBhbGwgaHlwZXJ0ZXh0XG4gKiBsaW5rcyBiZXR3ZWVuIExpbklEIERpcmVjdG9yeSBNYW5hZ2VyIGFuZCBodHRwczovL2xpbmlkLm9yZy8sIGFzIHdlbGwgYXNcbiAqIGJldHdlZW4gTElOQUdPUkEgYW5kIExJTkFHT1JBLmNvbSwgYW5kIChpaWkpIHJlZnJhaW4gZnJvbSBpbmZyaW5naW5nIExJTkFHT1JBXG4gKiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG92ZXIgaXRzIHRyYWRlbWFya3MgYW5kIGNvbW1lcmNpYWwgYnJhbmRzLiBPdGhlclxuICogQWRkaXRpb25hbCBUZXJtcyBhcHBseSwgc2VlIDxodHRwOi8vd3d3LmxpbmFnb3JhLmNvbS9saWNlbnNlcy8+IGZvciBtb3JlXG4gKiBkZXRhaWxzLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVFxuICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1NcbiAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmVcbiAqIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFuZFxuICogaXRzIGFwcGxpY2FibGUgQWRkaXRpb25hbCBUZXJtcyBmb3IgTGluSUQgRGlyZWN0b3J5IE1hbmFnZXIgYWxvbmcgd2l0aCB0aGlzXG4gKiBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4gZm9yIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMyBhbmQgPGh0dHA6Ly93d3cubGluYWdvcmEuY29tL2xpY2Vuc2VzLz4gZm9yXG4gKiB0aGUgQWRkaXRpb25hbCBUZXJtcyBhcHBsaWNhYmxlIHRvIHRoZSBMaW5JRCBEaXJlY3RvcnkgTWFuYWdlciBzb2Z0d2FyZS5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEpzVGFibGU8ST4ge1xuICByZWFkb25seSBieUlkOiB7IHJlYWRvbmx5IFtpZDogc3RyaW5nXTogSSB9O1xuICByZWFkb25seSBhbGxJZHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1wdHlKc1RhYmxlPEk+KCk6IEpzVGFibGU8ST4ge1xuICByZXR1cm4ge1xuICAgIGJ5SWQ6IHt9LFxuICAgIGFsbElkczogW10sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0pzVGFibGU8ST4ob2JqOiB7IFtpZDogc3RyaW5nXTogSSB9KTogSnNUYWJsZTxJPiB7XG4gIGNvbnN0IGFsbElkczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhvYmopO1xuXG4gIGNvbnN0IGJ5SWQ6IHsgW2lkOiBzdHJpbmddOiBJIH0gPSB7fTtcblxuICBhbGxJZHMuZm9yRWFjaCgoaWQpID0+IHtcbiAgICBieUlkW2lkXSA9IE9iamVjdC5hc3NpZ24oe30sIG9ialtpZF0pO1xuICB9KTtcblxuICByZXR1cm4geyBieUlkLCBhbGxJZHMgfTtcbn1cblxuLyoqXG4gKiBUaGlzIG1lcmdlIHZhbHVlIGludG8gdGFibGUuYnlJZFtpZF1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUJ5SWQ8SSwgTSBleHRlbmRzIEpzVGFibGU8ST4gPSBKc1RhYmxlPEk+PihcbiAgdGFibGU6IE0sXG4gIGlkOiBzdHJpbmcsXG4gIHZhbHVlOiBQYXJ0aWFsPEk+XG4pOiBNIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRhYmxlLCB7XG4gICAgYnlJZDoge1xuICAgICAgLi4udGFibGUuYnlJZCxcbiAgICAgIFtpZF06IE9iamVjdC5hc3NpZ24oe30sIHRhYmxlLmJ5SWRbaWRdLCB2YWx1ZSksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogVGhpcyBwdXQgdmFsdWUgaW4gdGFibGUuYnlJZFtpZF0gYW5kIGFkZHMgaWQgdG8gYWxsSWRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHV0QnlJZDxJLCBNIGV4dGVuZHMgSnNUYWJsZTxJPiA9IEpzVGFibGU8ST4+KFxuICB0YWJsZTogTSxcbiAgaWQ6IHN0cmluZyxcbiAgdmFsdWU6IFBhcnRpYWw8ST4sXG4gIGluaXRpYWxpemVyOiAoKSA9PiBJXG4pOiBNIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRhYmxlLCB7XG4gICAgYWxsSWRzOiB0YWJsZS5ieUlkW2lkXVxuICAgICAgPyBbLi4uQXJyYXkuZnJvbShuZXcgU2V0KFsuLi50YWJsZS5hbGxJZHMsIGlkXSkpXVxuICAgICAgOiBbLi4udGFibGUuYWxsSWRzLCBpZF0sXG4gICAgYnlJZDoge1xuICAgICAgLi4udGFibGUuYnlJZCxcbiAgICAgIFtpZF06IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9LFxuICAgICAgICB0YWJsZS5ieUlkW2lkXSA/IHRhYmxlLmJ5SWRbaWRdIDogaW5pdGlhbGl6ZXIoKSxcbiAgICAgICAgdmFsdWVcbiAgICAgICksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogVGhpcyBtZXJnZXMgYWxsIHRoZSBlbGVtZW50cyBvZiB0b01lcmdlLmJ5SWRcbiAqIGludG8gdGFibGUuYnlJZCBlbGVtZW50cyBhbmQgdG9NZXJnZS5hbGxJZHMgaW50byB0YWJsZS5hbGxJZHMuXG4gKiBBbmQgYWxzbyBlbnN1cmUgZWxlbWVudHMgYXJlIGZ1bGx5IGluaXRpYWxpc2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VJbnRvPEksIE0gZXh0ZW5kcyBKc1RhYmxlPEk+PihcbiAgdGFibGU6IE0sXG4gIHRvTWVyZ2U6IEpzVGFibGU8ST5cbik6IE0ge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGFibGUsIHtcbiAgICBhbGxJZHM6IFsuLi5BcnJheS5mcm9tKG5ldyBTZXQoWy4uLnRhYmxlLmFsbElkcywgLi4udG9NZXJnZS5hbGxJZHNdKSldLFxuICAgIGJ5SWQ6IHRvTWVyZ2UuYWxsSWRzLnJlZHVjZShcbiAgICAgIChhY2MsIGlkKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpZF06IE9iamVjdC5hc3NpZ24oe30sIGFjY1tpZF0sIHRvTWVyZ2UuYnlJZFtpZF0pLFxuICAgICAgfSksXG4gICAgICB0YWJsZS5ieUlkXG4gICAgKSxcbiAgfSk7XG59XG4iXX0=