From 31ddaa1667911dd09918f02a1cd1b1fe1d2d5e39 Mon Sep 17 00:00:00 2001
From: Paulo Penalva <paulo.penalva@gmail.com>
Date: Wed, 24 May 2023 13:50:02 -0300
Subject: [PATCH] feat(table): adiciona propriedate p-single-select

Adiciona a propriedade p-single-select da po-table no componente
po-page-dynamic-table

Fixes 1722
---
 .../po-page-dynamic-table.component.html                 | 1 +
 .../po-page-dynamic-table.component.spec.ts              | 4 ++++
 .../po-page-dynamic-table.component.ts                   | 9 +++++++++
 3 files changed, 14 insertions(+)

diff --git a/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.html b/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.html
index 5d9c568f7..b0b1789db 100644
--- a/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.html
+++ b/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.html
@@ -19,6 +19,7 @@
     [p-actions]="tableActions"
     [p-actions-right]="actionRight"
     [p-selectable]="enableSelectionTable"
+    [p-single-select]="singleSelect"
     [p-columns]="columns"
     [p-items]="items"
     [p-height]="height"
diff --git a/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.spec.ts b/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.spec.ts
index 5105e60f3..7de3d8c97 100644
--- a/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.spec.ts
+++ b/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.spec.ts
@@ -129,6 +129,10 @@ describe('PoPageDynamicTableComponent:', () => {
 
       expectPropertiesValues(component, 'hideCloseDisclaimers', validValues, validValues);
     });
+
+    it('p-single-select: should update property `p-single-select` with false.', () => {
+      expectPropertiesValues(component, 'singleSelect', booleanInvalidValues, false);
+    });
   });
 
   describe('Methods:', () => {
diff --git a/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.ts b/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.ts
index 88900f0a2..e2adb67d7 100644
--- a/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.ts
+++ b/projects/templates/src/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.ts
@@ -250,6 +250,15 @@ export class PoPageDynamicTableComponent extends PoPageDynamicListBaseComponent
   @Input('p-infinite-scroll')
   infiniteScroll?: boolean = false;
 
+  /**
+   * @description
+   *
+   * Define que somente uma linha da tabela pode ser selecionada.
+   *
+   * > Esta definição não se aplica aos itens filhos, os mesmos possuem comportamento independente do item pai.
+   */
+  @Input('p-single-select') @InputBoolean() singleSelect?: boolean = false;
+
   hasNext = false;
   items = [];
   literals;