Skip to content

Commit 584dbf0

Browse files
samir-ayoubjhosefmarks
authored andcommitted
feat(page-dynamic-search): adiciona propriedade p-quick-search-width
O desenvolvedor agora pode definir uma largura para o campo de busca rápida. Foi também feito o repasse para o template page-dynamic-table. Fixes DTHFUI-4118
1 parent 685e3c4 commit 584dbf0

File tree

7 files changed

+62
-5
lines changed

7 files changed

+62
-5
lines changed

projects/templates/src/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,18 @@ describe('PoPageDynamicSearchBaseComponent:', () => {
121121
expect(component.literals).toEqual(poPageDynamicSearchLiteralsDefault['pt']);
122122
});
123123
});
124+
125+
it('p-quick-search-width: should update property p-quick-search-width with valid values.', () => {
126+
const validValues = [105, 1, 98, 0];
127+
128+
expectPropertiesValues(component, 'quickSearchWidth', validValues, validValues);
129+
});
130+
131+
it('p-quick-search-width: should update property p-quick-search-width with invalid values for undefined.', () => {
132+
const invalidValues = [null, undefined, '', ' ', {}, [], false, true];
133+
134+
expectPropertiesValues(component, 'quickSearchWidth', invalidValues, undefined);
135+
});
124136
});
125137

126138
describe('Methods:', () => {

projects/templates/src/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { EventEmitter, Input, Output, Directive } from '@angular/core';
22

33
import { InputBoolean, PoBreadcrumb, PoDynamicFormField, PoLanguageService, PoPageAction } from '@po-ui/ng-components';
44

5-
import { poLocaleDefault } from '../../utils/util';
5+
import { convertToInt, poLocaleDefault } from '../../utils/util';
66

77
import { PoPageDynamicSearchLiterals } from './po-page-dynamic-search-literals.interface';
88
import { poAdvancedFiltersLiteralsDefault } from './po-advanced-filter/po-advanced-filter-base.component';
@@ -55,6 +55,7 @@ export const poPageDynamicSearchLiteralsDefault = {
5555
export abstract class PoPageDynamicSearchBaseComponent {
5656
private _filters: Array<PoDynamicFormField> = [];
5757
private _literals: PoPageDynamicSearchLiterals;
58+
private _quickSearchWidth: number;
5859

5960
advancedFilterLiterals: PoAdvancedFilterLiterals;
6061

@@ -213,6 +214,23 @@ export abstract class PoPageDynamicSearchBaseComponent {
213214
/** Título da página. */
214215
@Input('p-title') title: string;
215216

217+
/**
218+
* @optional
219+
*
220+
* @description
221+
*
222+
* Largura do campo de busca, utilizando o *Grid System*,
223+
* e limitado ao máximo de 6 colunas. O tamanho mínimo é controlado
224+
* conforme resolução de tela para manter a consistência do layout.
225+
*/
226+
@Input('p-quick-search-width') set quickSearchWidth(value: number) {
227+
this._quickSearchWidth = convertToInt(value);
228+
}
229+
230+
get quickSearchWidth(): number {
231+
return this._quickSearchWidth;
232+
}
233+
216234
/**
217235
* @description
218236
*

projects/templates/src/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,11 @@ export interface PoPageDynamicSearchOptions {
5656
* é apenas nos `disclaimers`.
5757
*/
5858
concatFilters?: boolean;
59+
60+
/**
61+
* Largura do campo de busca, utilizando o *Grid System*,
62+
* e limitado ao máximo de 6 colunas. O tamanho mínimo é controlado
63+
* conforme resolução de tela para manter a consistência do layout.
64+
*/
65+
quickSearchWidth?: number;
5966
}

projects/templates/src/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.spec.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ describe('PoPageDynamicSearchComponent:', () => {
4848
expect(typeof component.filterSettings.advancedAction).toBe('function');
4949
});
5050

51+
it('get filterSettings: should apply `quickSearchWidth` value to `filterSettings.width`', () => {
52+
const filterWidth = 3;
53+
component.quickSearchWidth = filterWidth;
54+
55+
expect(component.filterSettings.width).toBe(filterWidth);
56+
});
57+
5158
describe('onAction:', () => {
5259
let fakethis;
5360

@@ -460,6 +467,7 @@ describe('PoPageDynamicSearchComponent:', () => {
460467
};
461468
component.filters = [{ property: 'filter1' }, { property: 'filter2' }];
462469
component.title = 'Original Title';
470+
component.quickSearchWidth = 3;
463471

464472
component.onLoad = () => {
465473
return {
@@ -472,7 +480,8 @@ describe('PoPageDynamicSearchComponent:', () => {
472480
{ label: 'Feature 3', url: '/new-feature3' }
473481
],
474482
filters: [{ property: 'filter1' }, { property: 'filter3' }],
475-
keepFilters: true
483+
keepFilters: true,
484+
quickSearchWidth: 6
476485
};
477486
};
478487

@@ -489,6 +498,7 @@ describe('PoPageDynamicSearchComponent:', () => {
489498
items: [{ label: 'Test' }, { label: 'Test2' }]
490499
});
491500
expect(component.keepFilters).toBeTrue();
501+
expect(component.quickSearchWidth).toBe(6);
492502
}));
493503
});
494504
});

projects/templates/src/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
5454
private readonly _filterSettings: PoPageFilter = {
5555
action: this.onAction.bind(this),
5656
advancedAction: this.onAdvancedAction.bind(this),
57-
placeholder: this.literals.searchPlaceholder
57+
placeholder: this.literals.searchPlaceholder,
58+
width: this.quickSearchWidth
5859
};
5960

6061
@ViewChild(PoAdvancedFilterComponent, { static: true }) poAdvancedFilter: PoAdvancedFilterComponent;
@@ -74,7 +75,10 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
7475
get filterSettings() {
7576
this._filterSettings.advancedAction = this.filters.length === 0 ? undefined : this.onAdvancedAction.bind(this);
7677

77-
return Object.assign({}, this._filterSettings, { placeholder: this.literals.searchPlaceholder });
78+
return Object.assign({}, this._filterSettings, {
79+
placeholder: this.literals.searchPlaceholder,
80+
width: this.quickSearchWidth
81+
});
7882
}
7983

8084
ngOnInit() {
@@ -270,7 +274,8 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
270274
breadcrumb: this.breadcrumb,
271275
filters: this.filters,
272276
keepFilters: this.keepFilters,
273-
concatFilters: this.concatFilters
277+
concatFilters: this.concatFilters,
278+
quickSearchWidth: this.quickSearchWidth
274279
};
275280

276281
const pageOptionSchema: PoPageDynamicOptionsSchema<PoPageDynamicSearchOptions> = {
@@ -296,6 +301,9 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
296301
},
297302
{
298303
nameProp: 'concatFilters'
304+
},
305+
{
306+
nameProp: 'quickSearchWidth'
299307
}
300308
]
301309
};

projects/templates/src/lib/components/po-page-dynamic-search/samples/sample-po-page-dynamic-search-hiring-processes/sample-po-page-dynamic-search-hiring-processes.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
[p-filters]="filters"
66
[p-literals]="literals"
77
[p-load]="onLoadFields.bind(this)"
8+
[p-quick-search-width]="quickSearchWidth"
89
(p-change-disclaimers)="onChangeDisclaimers($event)"
910
(p-quick-search)="onQuickSearch($event)"
1011
(p-advanced-search)="onAdvancedSearch($event)"

projects/templates/src/lib/components/po-page-dynamic-search/samples/sample-po-page-dynamic-search-hiring-processes/sample-po-page-dynamic-search-hiring-processes.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { SamplePoPageDynamicSearchHiringProcessesService } from './sample-po-pag
2222
export class SamplePoPageDynamicSearchHiringProcessesComponent implements OnInit {
2323
hiringProcesses: Array<object>;
2424
hiringProcessesColumns: Array<PoTableColumn>;
25+
quickSearchWidth: number = 6;
2526

2627
private jobDescriptionOptions: Array<PoSelectOption>;
2728
private statusOptions: Array<PoSelectOption>;

0 commit comments

Comments
 (0)