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);