UNPKG

@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
/** 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=