diff --git a/development/templates/vite.config.mjs b/development/templates/vite.config.mjs index d8ef15f128cf4f7c0beca47174247e27ce4be8bd..2ad5a59b0e40bef58ddc068ca37fbc417af06348 100644 --- a/development/templates/vite.config.mjs +++ b/development/templates/vite.config.mjs @@ -93,8 +93,9 @@ export default defineConfig({ https: { key: "${LOCALHOST_CERTS_DIR}/localhost.alvine.dev.key", cert: "${LOCALHOST_CERTS_DIR}/localhost.alvine.dev.crt" - - + }, + watch: { + ignored: ['**/node_modules/**'] }, debug: true, proxy: { diff --git a/source/components/datatable/datatable.mjs b/source/components/datatable/datatable.mjs index 6b0fac8bfc07da370d5a8dbd46fe6262a9e9a3c4..8c5327c73a4edc801aa7741b3119b294576d09de 100644 --- a/source/components/datatable/datatable.mjs +++ b/source/components/datatable/datatable.mjs @@ -881,43 +881,51 @@ function initEventHandler() { "data-monster-role", "select-row", ); - if (element) { - const key = element.parentNode.getAttribute( - "data-monster-insert-reference", - ); - const row = self.getGridElements( - `[data-monster-insert-reference="${key}"]`, - ); - - const index = key.split("-").pop(); - - if (element.checked) { - row.forEach((col) => { - col.classList.add("selected"); - }); - - fireCustomEvent(self, "monster-datatable-row-selected", { - index: index, - }); - } else { - row.forEach((col) => { - col.classList.remove("selected"); - }); - fireCustomEvent(self, "monster-datatable-row-deselected", { - index: index, - }); - } + if (!element) { + return; + } + + const key = element.parentNode.getAttribute( + "data-monster-insert-reference", + ); + const row = self.getGridElements( + `[data-monster-insert-reference="${key}"]`, + ); - fireCustomEvent(this, "monster-datatable-selection-changed", {}); + const index = key.split("-").pop(); + + if (element.checked) { + row.forEach((col) => { + col.classList.add("selected"); + }); + + fireCustomEvent(self, "monster-datatable-row-selected", { + index: index, + }); + } else { + row.forEach((col) => { + col.classList.remove("selected"); + }); + + fireCustomEvent(self, "monster-datatable-row-deselected", { + index: index, + }); } + fireCustomEvent(this, "monster-datatable-selection-changed", {}); + const rows = self.getGridElements(`[data-monster-role="select-row"]`); const allSelected = Array.from(rows).every((row) => row.checked); + const selectAll = this[gridHeadersElementSymbol].querySelector( `[data-monster-role="select-all"]`, ); - selectAll.checked = allSelected; + + if (selectAll) { + selectAll.checked = allSelected; + } + }; this[gridElementSymbol].addEventListener("click", selectRowCallback);