diff --git a/CHANGELOG.md b/CHANGELOG.md index e80c77311bc..e82264ce16d 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1486,6 +1486,13 @@ - Checkbox in p-treeNode always checked when using custom icon [\#12951](https://github.com/primefaces/primeng/issues/12951) - ConfirmDialog: Duplicated AcceptIcons [\#13001](https://github.com/primefaces/primeng/issues/13001) +## ![LTS](https://www.primefaces.org/wp-content/uploads/2020/01/lts-icon-24.png "PrimeNG LTS") [15.4.25-LTS](https://www.npmjs.com/package/primeng/v/15.4.25-lts) (2024-08-01) + +**Fixed bugs:** +- Password: Tooltip with tooltipEvent='focus' is never displayed [\#16106](https://github.com/primefaces/primeng/issues/16106) +- Table> double call to (onLazyLoad) event [\#16070](https://github.com/primefaces/primeng/issues/16070) +- pBadge | Add missing badgeStyle & badgeStyleClass to directive [\#16133](https://github.com/primefaces/primeng/issues/16133) + ## ![LTS](https://www.primefaces.org/wp-content/uploads/2020/01/lts-icon-24.png "PrimeNG LTS") [15.4.24-LTS](https://www.npmjs.com/package/primeng/v/15.4.24-lts) (2024-07-24) **Fixed bugs:** diff --git a/src/app/components/autocomplete/autocomplete.ts b/src/app/components/autocomplete/autocomplete.ts index 9687bc41837..1796f9496bd 100755 --- a/src/app/components/autocomplete/autocomplete.ts +++ b/src/app/components/autocomplete/autocomplete.ts @@ -881,6 +881,7 @@ export class AutoComplete implements AfterViewChecked, AfterContentInit, OnDestr } constructor( + @Inject(DOCUMENT) private document: Document, public el: ElementRef, public renderer: Renderer2, public cd: ChangeDetectorRef, @@ -1376,12 +1377,11 @@ export class AutoComplete implements AfterViewChecked, AfterContentInit, OnDestr } else { if (this.focusedOptionIndex() !== -1) { this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]); + event.preventDefault(); } this.hide(); } - - event.preventDefault(); } onEscapeKey(event) { diff --git a/src/app/components/calendar/calendar.ts b/src/app/components/calendar/calendar.ts index d02590d3f60..ad25df2ec3a 100644 --- a/src/app/components/calendar/calendar.ts +++ b/src/app/components/calendar/calendar.ts @@ -3069,10 +3069,16 @@ export class Calendar implements OnInit, OnDestroy, ControlValueAccessor { } else if (this.overlay) { if (this.appendTo) { if (this.view === 'date') { - this.overlay.style.width = DomHandler.getOuterWidth(this.overlay) + 'px'; - this.overlay.style.minWidth = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px'; + if (!this.overlay.style.width) { + this.overlay.style.width = DomHandler.getOuterWidth(this.overlay) + 'px'; + } + if (!this.overlay.style.minWidth) { + this.overlay.style.minWidth = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px'; + } } else { - this.overlay.style.width = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px'; + if (!this.overlay.style.width) { + this.overlay.style.width = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px'; + } } DomHandler.absolutePosition(this.overlay, this.inputfieldViewChild?.nativeElement); diff --git a/src/app/components/colorpicker/colorpicker.ts b/src/app/components/colorpicker/colorpicker.ts index fb2c2593dd0..ef242fc3bf6 100755 --- a/src/app/components/colorpicker/colorpicker.ts +++ b/src/app/components/colorpicker/colorpicker.ts @@ -401,9 +401,11 @@ export class ColorPicker implements ControlValueAccessor, OnDestroy { this.value = this.HEXtoHSB(this.defaultColor); } - this.updateColorSelector(); - this.updateUI(); - this.cd.markForCheck(); + setTimeout(() => { + this.updateColorSelector(); + this.updateUI(); + this.cd.markForCheck(); + }); } updateColorSelector() { diff --git a/src/app/components/listbox/listbox.ts b/src/app/components/listbox/listbox.ts index 5897cd07b21..6deea4d394e 100755 --- a/src/app/components/listbox/listbox.ts +++ b/src/app/components/listbox/listbox.ts @@ -49,16 +49,7 @@ export const LISTBOX_VALUE_ACCESSOR: any = { selector: 'p-listbox', template: `
- - +
@@ -105,6 +96,7 @@ export const LISTBOX_VALUE_ACCESSOR: any = { [tabindex]="!disabled && !focused ? tabindex : -1" (input)="onFilterChange($event)" (keydown)="onFilterKeyDown($event)" + (focus)="onFilterFocus($event)" (blur)="onFilterBlur($event)" /> @@ -117,7 +109,7 @@ export const LISTBOX_VALUE_ACCESSOR: any = {
-
+
@@ -226,16 +218,7 @@ export const LISTBOX_VALUE_ACCESSOR: any = { {{ selectedMessageText }} - - +
`, providers: [LISTBOX_VALUE_ACCESSOR], @@ -545,6 +528,8 @@ export class Listbox implements AfterContentInit, OnInit, ControlValueAccessor, @ViewChild('list') listViewChild: Nullable; + @ViewChild('wrapper') wrapperViewChild: Nullable; + @ContentChild(Header) headerFacet: Nullable>; @ContentChild(Footer) footerFacet: Nullable>; @@ -593,6 +578,8 @@ export class Listbox implements AfterContentInit, OnInit, ControlValueAccessor, focused: boolean | undefined; + scrollerTabIndex: string = '0'; + get containerClass() { return { 'p-listbox p-component': true, @@ -949,6 +936,8 @@ export class Listbox implements AfterContentInit, OnInit, ControlValueAccessor, onFocusout(event: FocusEvent) { if (!this.el.nativeElement.contains(event.relatedTarget) && this.lastHiddenFocusableElement && this.firstHiddenFocusableElement) { this.firstHiddenFocusableElement.nativeElement.tabIndex = this.lastHiddenFocusableElement.nativeElement.tabIndex = undefined; + this.wrapperViewChild.nativeElement.tabIndex = '0'; + this.scrollerTabIndex = '0'; } } @@ -957,6 +946,9 @@ export class Listbox implements AfterContentInit, OnInit, ControlValueAccessor, const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1; this.focusedOptionIndex.set(focusedOptionIndex); this.onFocus.emit(event); + + this.wrapperViewChild.nativeElement.tabIndex = '-1'; + this.scrollerTabIndex = '-1'; } onListBlur(event: FocusEvent) { @@ -1010,6 +1002,10 @@ export class Listbox implements AfterContentInit, OnInit, ControlValueAccessor, !this.virtualScrollerDisabled && this.scroller.scrollToIndex(0); } + + onFilterFocus(event: FocusEvent){ + this.wrapperViewChild.nativeElement.tabIndex = '-1'; + } onFilterBlur(event: FocusEvent) { this.focusedOptionIndex.set(-1); diff --git a/src/app/components/scroller/scroller.ts b/src/app/components/scroller/scroller.ts index f05ab77826d..b7e706533cc 100644 --- a/src/app/components/scroller/scroller.ts +++ b/src/app/components/scroller/scroller.ts @@ -866,7 +866,7 @@ export class Scroller implements OnInit, AfterContentInit, AfterViewChecked, OnD } setSpacerSize() { - if (this._items) { + if (this._scrollHeight !== '100%' && this._items) { const contentPos = this.getContentPosition(); const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } }); diff --git a/src/app/components/table/columnfilter.interface.ts b/src/app/components/table/columnfilter.interface.ts index e7b3b01d700..e72b641d1ca 100644 --- a/src/app/components/table/columnfilter.interface.ts +++ b/src/app/components/table/columnfilter.interface.ts @@ -9,7 +9,7 @@ export interface TableColumnFilterTemplates { /** * Custom filter template. */ - filterTemplate(context: { + filter(context: { /** * filterConstraint.value. */ @@ -74,27 +74,27 @@ export interface TableColumnFilterTemplates { /** * Custom header template. */ - headerTemplate(): TemplateRef; + header(): TemplateRef; /** * Custom footer template. */ - footerTemplate(): TemplateRef; + footer(): TemplateRef; /** * Custom filter icon template. */ - filterIconTemplate(): TemplateRef; + filtericon(): TemplateRef; /** * Custom remove rule icon template. */ - removeRuleIconTemplate(): TemplateRef; + removeruleicon(): TemplateRef; /** * Custom add rule icon template. */ - addRuleIconTemplate(): TemplateRef; + addruleicon(): TemplateRef; /** * Custom clear filter icon template. */ - clearFilterIconTemplate(): TemplateRef; + clearfiltericon(): TemplateRef; } /** diff --git a/src/app/components/tree/tree.ts b/src/app/components/tree/tree.ts index be53fb4c1b9..522c3ec96cc 100755 --- a/src/app/components/tree/tree.ts +++ b/src/app/components/tree/tree.ts @@ -100,7 +100,7 @@ import { (dragend)="onDragStop($event)" [ngClass]="{ 'p-treenode-selectable': tree.selectionMode && node.selectable !== false, 'p-treenode-dragover': draghoverNode, 'p-highlight': isSelected() }" > -