diff --git a/packages/genesys-spark-components/src/components/stable/gux-table/example.html b/packages/genesys-spark-components/src/components/stable/gux-table/example.html
index c713ca6019..470579dbd5 100644
--- a/packages/genesys-spark-components/src/components/stable/gux-table/example.html
+++ b/packages/genesys-spark-components/src/components/stable/gux-table/example.html
@@ -970,7 +970,7 @@
Data table with fixed columns
}
- })
+ });
})()"
>
.not-used {
diff --git a/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/gux-all-row-select.tsx b/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/gux-all-row-select.tsx
index 33671aa34f..7e1d316def 100644
--- a/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/gux-all-row-select.tsx
+++ b/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/gux-all-row-select.tsx
@@ -40,7 +40,7 @@ export class GuxAllRowSelect {
onCheck(event: CustomEvent): void {
event.stopPropagation();
this.selected = this.inputElement.checked;
- this.internalallrowselectchange.emit(this.inputElement.checked);
+ this.internalallrowselectchange.emit(this.selected);
}
@Method()
diff --git a/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/tests/gux-all-row-select.spec.ts b/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/tests/gux-all-row-select.spec.ts
index 5964455425..6c27a05ec8 100644
--- a/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/tests/gux-all-row-select.spec.ts
+++ b/packages/genesys-spark-components/src/components/stable/gux-table/gux-all-row-select/tests/gux-all-row-select.spec.ts
@@ -11,4 +11,20 @@ describe('gux-all-row-select', () => {
expect(page.rootInstance).toBeInstanceOf(GuxAllRowSelect);
});
+
+ it('should handle the setIndeterminate method', async () => {
+ const html = '';
+ const page = await newSpecPage({ components, html, language });
+
+ const component = page.rootInstance;
+ const inputElement = page.root.shadowRoot.querySelector('input');
+
+ expect(inputElement.indeterminate).toBe(undefined);
+
+ await component.setIndeterminate(true);
+ expect(inputElement.indeterminate).toBe(true);
+
+ await component.setIndeterminate(false);
+ expect(inputElement.indeterminate).toBe(false);
+ });
});
diff --git a/packages/genesys-spark-components/src/components/stable/gux-table/gux-table.tsx b/packages/genesys-spark-components/src/components/stable/gux-table/gux-table.tsx
index 5cacfed1eb..cfdfa5ddb6 100644
--- a/packages/genesys-spark-components/src/components/stable/gux-table/gux-table.tsx
+++ b/packages/genesys-spark-components/src/components/stable/gux-table/gux-table.tsx
@@ -42,9 +42,10 @@ export class GuxTable {
root: HTMLElement;
private resizeObserver: ResizeObserver;
- private slotObserver: MutationObserver = new MutationObserver(() =>
- forceUpdate(this)
- );
+ private slotObserver: MutationObserver = new MutationObserver(() => {
+ this.prepareSelectableRows();
+ forceUpdate(this);
+ });
private i18n: GetI18nValue;
private columnResizeState: GuxTableColumnResizeState | null;
private tableId: string = randomHTMLId('gux-table');
@@ -267,11 +268,9 @@ export class GuxTable {
// Handle a change in state of the select all checkbox
private handleSelectAllRows(selected: boolean): void {
- const selectAllCheckbox = this.selectAllCheckbox;
const rowCheckboxes = this.rowCheckboxes;
rowCheckboxes.forEach(rowBox => {
- selectAllCheckbox.selected = selected;
if (!rowBox.disabled) {
rowBox.selected = selected;
this.updateRowSelection(rowBox);