@edugouvfr/ngx-dsfr
Version:
NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).
41 lines • 6.65 kB
JavaScript
/** ajouter ou supprimer une ligne d'une liste */
export function updateRowByField(row, list, idField = null) {
// recherche de la ligne selon si dataKey est défini ou par l'index sinon
const index = list.findIndex((r) => (idField ? r[idField] === row[idField] : r.index === row.index));
if (index !== -1) {
list.splice(index, 1); // suppression de la ligne
list.push(row); // ajout de la ligne
}
}
/**
* Met à jour ou ajoute une propriété dans un objet.
* @param obj - L'objet à modifier.
* @param key - Le nom de la propriété à mettre à jour ou ajouter.
* @param value - La nouvelle valeur à assigner à la propriété spécifiée.
* @returns - La nouvelle référence de l'objet mis à jour avec la propriété modifiée ou ajoutée.
*/
export function updateOrAddProperty(obj, key, value) {
obj[key] = value;
return { ...obj };
}
/** Calcul du positionnement d'une cellule si la colonne est fixe à gauche (défaut) ou à droite */
export function setFixedColumnPosition(el, fixedPosition = 'left') {
const row = el.closest('tr');
if (!row)
return;
const cellsOnRow = Array.from(row.children);
const index = cellsOnRow.indexOf(el);
if (fixedPosition === 'right') {
// Décalage = somme des largeurs des cellules à droite de la cellule courante
const offset = cellsOnRow.slice(index + 1).reduce((acc, cell) => acc + cell.offsetWidth, 0);
el.style.right = `${offset}px`;
el.style.left = '';
}
else {
// Décalage = somme des largeurs des cellules à gauche de la cellule courante
const offset = cellsOnRow.slice(0, index).reduce((acc, cell) => acc + cell.offsetWidth, 1);
el.style.left = `${offset}px`;
el.style.right = '';
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpREFBaUQ7QUFDakQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQVEsRUFBRSxJQUFXLEVBQUUsVUFBeUIsSUFBSTtJQUNuRix5RUFBeUU7SUFDekUsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFN0csSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBQ3RDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFtQixHQUFNLEVBQUUsR0FBWSxFQUFFLEtBQWlCO0lBQzNGLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQUVELGtHQUFrRztBQUNsRyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsRUFBZSxFQUFFLGdCQUFrQyxNQUFNO0lBQzlGLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0IsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPO0lBRWpCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBa0IsQ0FBQztJQUM3RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJDLElBQUksYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzlCLDZFQUE2RTtRQUM3RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RixFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDO1FBQy9CLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO1NBQU0sQ0FBQztRQUNOLDZFQUE2RTtRQUM3RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDO1FBQzlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBham91dGVyIG91IHN1cHByaW1lciB1bmUgbGlnbmUgZCd1bmUgbGlzdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVSb3dCeUZpZWxkKHJvdzogYW55LCBsaXN0OiBhbnlbXSwgaWRGaWVsZDogc3RyaW5nIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgLy8gcmVjaGVyY2hlIGRlIGxhIGxpZ25lIHNlbG9uIHNpIGRhdGFLZXkgZXN0IGTDqWZpbmkgb3UgcGFyIGwnaW5kZXggc2lub25cbiAgY29uc3QgaW5kZXg6IG51bWJlciA9IGxpc3QuZmluZEluZGV4KChyKSA9PiAoaWRGaWVsZCA/IHJbaWRGaWVsZF0gPT09IHJvd1tpZEZpZWxkXSA6IHIuaW5kZXggPT09IHJvdy5pbmRleCkpO1xuXG4gIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICBsaXN0LnNwbGljZShpbmRleCwgMSk7IC8vIHN1cHByZXNzaW9uIGRlIGxhIGxpZ25lXG4gICAgbGlzdC5wdXNoKHJvdyk7IC8vIGFqb3V0IGRlIGxhIGxpZ25lXG4gIH1cbn1cblxuLyoqXG4gKiBNZXQgw6Agam91ciBvdSBham91dGUgdW5lIHByb3ByacOpdMOpIGRhbnMgdW4gb2JqZXQuXG4gKiBAcGFyYW0gb2JqIC0gTCdvYmpldCDDoCBtb2RpZmllci5cbiAqIEBwYXJhbSBrZXkgLSBMZSBub20gZGUgbGEgcHJvcHJpw6l0w6kgw6AgbWV0dHJlIMOgIGpvdXIgb3UgYWpvdXRlci5cbiAqIEBwYXJhbSB2YWx1ZSAtIExhIG5vdXZlbGxlIHZhbGV1ciDDoCBhc3NpZ25lciDDoCBsYSBwcm9wcmnDqXTDqSBzcMOpY2lmacOpZS5cbiAqIEByZXR1cm5zIC0gTGEgbm91dmVsbGUgcsOpZsOpcmVuY2UgZGUgbCdvYmpldCBtaXMgw6Agam91ciBhdmVjIGxhIHByb3ByacOpdMOpIG1vZGlmacOpZSBvdSBham91dMOpZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU9yQWRkUHJvcGVydHk8VCBleHRlbmRzIG9iamVjdD4ob2JqOiBULCBrZXk6IGtleW9mIFQsIHZhbHVlOiBUW2tleW9mIFRdKTogVCB7XG4gIG9ialtrZXldID0gdmFsdWU7XG4gIHJldHVybiB7IC4uLm9iaiB9O1xufVxuXG4vKiogQ2FsY3VsIGR1IHBvc2l0aW9ubmVtZW50IGQndW5lIGNlbGx1bGUgc2kgbGEgY29sb25uZSBlc3QgZml4ZSDDoCBnYXVjaGUgKGTDqWZhdXQpIG91IMOgIGRyb2l0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEZpeGVkQ29sdW1uUG9zaXRpb24oZWw6IEhUTUxFbGVtZW50LCBmaXhlZFBvc2l0aW9uOiAncmlnaHQnIHwgJ2xlZnQnID0gJ2xlZnQnKSB7XG4gIGNvbnN0IHJvdyA9IGVsLmNsb3Nlc3QoJ3RyJyk7XG5cbiAgaWYgKCFyb3cpIHJldHVybjtcblxuICBjb25zdCBjZWxsc09uUm93ID0gQXJyYXkuZnJvbShyb3cuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W107XG4gIGNvbnN0IGluZGV4ID0gY2VsbHNPblJvdy5pbmRleE9mKGVsKTtcblxuICBpZiAoZml4ZWRQb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgIC8vIETDqWNhbGFnZSA9IHNvbW1lIGRlcyBsYXJnZXVycyBkZXMgY2VsbHVsZXMgw6AgZHJvaXRlIGRlIGxhIGNlbGx1bGUgY291cmFudGVcbiAgICBjb25zdCBvZmZzZXQgPSBjZWxsc09uUm93LnNsaWNlKGluZGV4ICsgMSkucmVkdWNlKChhY2MsIGNlbGwpID0+IGFjYyArIGNlbGwub2Zmc2V0V2lkdGgsIDApO1xuICAgIGVsLnN0eWxlLnJpZ2h0ID0gYCR7b2Zmc2V0fXB4YDtcbiAgICBlbC5zdHlsZS5sZWZ0ID0gJyc7XG4gIH0gZWxzZSB7XG4gICAgLy8gRMOpY2FsYWdlID0gc29tbWUgZGVzIGxhcmdldXJzIGRlcyBjZWxsdWxlcyDDoCBnYXVjaGUgZGUgbGEgY2VsbHVsZSBjb3VyYW50ZVxuICAgIGNvbnN0IG9mZnNldCA9IGNlbGxzT25Sb3cuc2xpY2UoMCwgaW5kZXgpLnJlZHVjZSgoYWNjLCBjZWxsKSA9PiBhY2MgKyBjZWxsLm9mZnNldFdpZHRoLCAxKTtcbiAgICBlbC5zdHlsZS5sZWZ0ID0gYCR7b2Zmc2V0fXB4YDtcbiAgICBlbC5zdHlsZS5yaWdodCA9ICcnO1xuICB9XG59XG4iXX0=