From 0b3bd31d7597171ecc6e13d64af51f3885e30659 Mon Sep 17 00:00:00 2001 From: pk Date: Tue, 19 Aug 2025 09:46:13 +0200 Subject: [PATCH] Clone columns in column-moved event to prevent side-effects through mutability. Fix use of clone function. Seems like old code wasn't updated when the _clone mixin was replaced by helpers/clone. --- package.json | 2 +- tp-table.js | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3975a23..35669f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tp/tp-table", - "version": "1.4.0", + "version": "1.4.1", "description": "", "main": "tp-table.js", "scripts": { diff --git a/tp-table.js b/tp-table.js index c904855..229f233 100644 --- a/tp-table.js +++ b/tp-table.js @@ -10,6 +10,7 @@ import '@tp/tp-icon/tp-icon.js'; import '@tp/tp-checkbox/tp-checkbox.js'; import './tp-table-item.js'; import { DomQuery } from '@tp/helpers/dom-query.js'; +import { clone } from '@tp/helpers/clone.js'; import { closest } from '@tp/helpers/closest.js'; import { LitElement, html, css, svg } from 'lit'; import ColumnResizer from './column-resizer.js'; @@ -292,18 +293,18 @@ export class TpTable extends DomQuery(LitElement) { set filter(val) { this._advFilterActive = false; - this._filter = this._clone(val); + this._filter = clone(val); this.reloadPagedList(); } set statusFilter(val) { - this._statusFilter = this._clone(val); + this._statusFilter = clone(val); this.reloadPagedList(); } set advancedFilter(val) { this._advFilterActive = val ? true : false; - this._advFilters = this._clone(val); + this._advFilters = clone(val); this.reloadPagedList(); } @@ -473,7 +474,7 @@ export class TpTable extends DomQuery(LitElement) { } this.columns.splice(moveTo, 0, this.columns.splice(targetIdx, 1)[0]) this.columns = [ ...this.columns ]; - this.dispatchEvent(new CustomEvent('column-moved', { detail: { from: targetIdx, to: moveTo, columns: this.columns }, bubbles: true, composed: true })); + this.dispatchEvent(new CustomEvent('column-moved', { detail: { from: targetIdx, to: moveTo, columns: clone(this.columns) }, bubbles: true, composed: true })); } }