primeng 16.9.8-lts → 16.9.10-lts
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +2 -0
- package/autofocus/autofocus.d.ts +8 -4
- package/calendar/calendar.d.ts +5 -2
- package/dom/domhandler.d.ts +5 -1
- package/dropdown/dropdown.d.ts +1 -0
- package/esm2022/accordion/accordion.mjs +19 -7
- package/esm2022/autofocus/autofocus.mjs +35 -18
- package/esm2022/calendar/calendar.mjs +84 -15
- package/esm2022/dom/domhandler.mjs +65 -2
- package/esm2022/dropdown/dropdown.mjs +16 -5
- package/esm2022/focustrap/focustrap.mjs +49 -25
- package/esm2022/inputnumber/inputnumber.mjs +15 -6
- package/esm2022/table/table.mjs +6 -3
- package/esm2022/tooltip/tooltip.mjs +25 -8
- package/fesm2022/primeng-accordion.mjs +18 -6
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +34 -17
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +83 -14
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +64 -1
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +15 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +48 -24
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +14 -5
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +5 -2
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +24 -7
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/focustrap/focustrap.d.ts +11 -3
- package/package.json +280 -280
- package/resources/components/dropdown/dropdown.css +4 -0
@@ -1,37 +1,66 @@
|
|
1
1
|
import { DomHandler } from 'primeng/dom';
|
2
2
|
import { LicenseManager } from 'primeng/api';
|
3
|
-
import { CommonModule } from '@angular/common';
|
4
|
-
import { Directive,
|
3
|
+
import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
4
|
+
import { Directive, ElementRef, Input, NgModule, inject, booleanAttribute, PLATFORM_ID } from '@angular/core';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
/**
|
7
7
|
* Focus Trap keeps focus within a certain DOM element while tabbing.
|
8
8
|
* @group Components
|
9
9
|
*/
|
10
10
|
class FocusTrap {
|
11
|
-
el;
|
12
11
|
/**
|
13
12
|
* When set as true, focus wouldn't be managed.
|
14
13
|
* @group Props
|
15
14
|
*/
|
16
15
|
pFocusTrapDisabled = false;
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
focusableElement.focus();
|
26
|
-
focusableElement.select?.();
|
27
|
-
}
|
16
|
+
platformId = inject(PLATFORM_ID);
|
17
|
+
host = inject(ElementRef);
|
18
|
+
document = inject(DOCUMENT);
|
19
|
+
firstHiddenFocusableElement;
|
20
|
+
lastHiddenFocusableElement;
|
21
|
+
ngOnInit() {
|
22
|
+
if (isPlatformBrowser(this.platformId) && !this.pFocusTrapDisabled) {
|
23
|
+
this.createHiddenFocusableElements();
|
28
24
|
}
|
29
25
|
}
|
26
|
+
getComputedSelector(selector) {
|
27
|
+
return `:not(.p-hidden-focusable):not([data-p-hidden-focusable="true"])${selector ?? ''}`;
|
28
|
+
}
|
29
|
+
createHiddenFocusableElements() {
|
30
|
+
const tabindex = '0';
|
31
|
+
const createFocusableElement = (onFocus) => {
|
32
|
+
return DomHandler.createElement('span', {
|
33
|
+
class: 'p-hidden-accessible p-hidden-focusable',
|
34
|
+
tabindex,
|
35
|
+
role: 'presentation',
|
36
|
+
'aria-hidden': true,
|
37
|
+
'data-p-hidden-accessible': true,
|
38
|
+
'data-p-hidden-focusable': true,
|
39
|
+
onFocus: onFocus?.bind(this)
|
40
|
+
});
|
41
|
+
};
|
42
|
+
this.firstHiddenFocusableElement = createFocusableElement(this.onFirstHiddenElementFocus);
|
43
|
+
this.lastHiddenFocusableElement = createFocusableElement(this.onLastHiddenElementFocus);
|
44
|
+
this.firstHiddenFocusableElement.setAttribute('data-pc-section', 'firstfocusableelement');
|
45
|
+
this.lastHiddenFocusableElement.setAttribute('data-pc-section', 'lastfocusableelement');
|
46
|
+
this.host.nativeElement.prepend(this.firstHiddenFocusableElement);
|
47
|
+
this.host.nativeElement.append(this.lastHiddenFocusableElement);
|
48
|
+
}
|
49
|
+
onFirstHiddenElementFocus(event) {
|
50
|
+
const { currentTarget, relatedTarget } = event;
|
51
|
+
const focusableElement = relatedTarget === this.lastHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getFirstFocusableElement(currentTarget.parentElement, ':not(.p-hidden-focusable)') : this.lastHiddenFocusableElement;
|
52
|
+
DomHandler.focus(focusableElement);
|
53
|
+
}
|
54
|
+
onLastHiddenElementFocus(event) {
|
55
|
+
const { currentTarget, relatedTarget } = event;
|
56
|
+
const focusableElement = relatedTarget === this.firstHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getLastFocusableElement(currentTarget.parentElement, ':not(.p-hidden-focusable)') : this.firstHiddenFocusableElement;
|
57
|
+
DomHandler.focus(focusableElement);
|
58
|
+
}
|
30
59
|
ngAfterViewInit() {
|
31
60
|
LicenseManager.check();
|
32
61
|
}
|
33
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: FocusTrap, deps: [
|
34
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: FocusTrap, selector: "[pFocusTrap]", inputs: { pFocusTrapDisabled: "pFocusTrapDisabled"
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: FocusTrap, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
63
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: FocusTrap, selector: "[pFocusTrap]", inputs: { pFocusTrapDisabled: ["pFocusTrapDisabled", "pFocusTrapDisabled", booleanAttribute] }, host: { classAttribute: "p-element" }, ngImport: i0 });
|
35
64
|
}
|
36
65
|
export { FocusTrap };
|
37
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: FocusTrap, decorators: [{
|
@@ -42,14 +71,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
|
|
42
71
|
class: 'p-element'
|
43
72
|
}
|
44
73
|
}]
|
45
|
-
}],
|
46
|
-
type: Input
|
47
|
-
|
48
|
-
type: HostListener,
|
49
|
-
args: ['keydown.tab', ['$event']]
|
50
|
-
}, {
|
51
|
-
type: HostListener,
|
52
|
-
args: ['keydown.shift.tab', ['$event']]
|
74
|
+
}], propDecorators: { pFocusTrapDisabled: [{
|
75
|
+
type: Input,
|
76
|
+
args: [{ transform: booleanAttribute }]
|
53
77
|
}] } });
|
54
78
|
class FocusTrapModule {
|
55
79
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: FocusTrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
@@ -65,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
|
|
65
89
|
declarations: [FocusTrap]
|
66
90
|
}]
|
67
91
|
}] });
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZvY3VzdHJhcC9mb2N1c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUM5Rzs7O0dBR0c7QUFDSCxNQU1hLFNBQVM7SUFDbEI7OztPQUdHO0lBQ3FDLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUU1RSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpDLElBQUksR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QywyQkFBMkIsQ0FBZTtJQUUxQywwQkFBMEIsQ0FBZTtJQUV6QyxRQUFRO1FBQ0osSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDaEUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBUTtRQUN4QixPQUFPLGtFQUFrRSxRQUFRLElBQUksRUFBRSxFQUFFLENBQUM7SUFDOUYsQ0FBQztJQUVELDZCQUE2QjtRQUN6QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFFckIsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE9B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Q3ZCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDcEIsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbUhhbmRsZXIgfSBmcm9tICdwcmltZW5nL2RvbSc7XG5pbXBvcnQgeyBMaWNlbnNlTWFuYWdlciB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nTW9kdWxlLCBpbmplY3QsIGJvb2xlYW5BdHRyaWJ1dGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vKipcbiAqIEZvY3VzIFRyYXAga2VlcHMgZm9jdXMgd2l0aGluIGEgY2VydGFpbiBET00gZWxlbWVudCB3aGlsZSB0YWJiaW5nLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcEZvY3VzVHJhcF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXAge1xuICAgIC8qKlxuICAgICAqIFdoZW4gc2V0IGFzIHRydWUsIGZvY3VzIHdvdWxkbid0IGJlIG1hbmFnZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBGb2N1c1RyYXBEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBob3N0OiBFbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIGZpcnN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gICAgbGFzdEhpZGRlbkZvY3VzYWJsZUVsZW1lbnQhOiBIVE1MRWxlbWVudDtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiAhdGhpcy5wRm9jdXNUcmFwRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSGlkZGVuRm9jdXNhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkU2VsZWN0b3Ioc2VsZWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIGA6bm90KC5wLWhpZGRlbi1mb2N1c2FibGUpOm5vdChbZGF0YS1wLWhpZGRlbi1mb2N1c2FibGU9XCJ0cnVlXCJdKSR7c2VsZWN0b3IgPz8gJyd9YDtcbiAgICB9XG5cbiAgICBjcmVhdGVIaWRkZW5Gb2N1c2FibGVFbGVtZW50cygpIHtcbiAgICAgICAgY29uc3QgdGFiaW5kZXggPSAnMCc7XG5cbiAgICAgICAgY29uc3QgY3JlYXRlRm9jdXNhYmxlRWxlbWVudCA9IChvbkZvY3VzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gRG9tSGFuZGxlci5jcmVhdGVFbGVtZW50KCdzcGFuJywge1xuICAgICAgICAgICAgICAgIGNsYXNzOiAncC1oaWRkZW4tYWNjZXNzaWJsZSBwLWhpZGRlbi1mb2N1c2FibGUnLFxuICAgICAgICAgICAgICAgIHRhYmluZGV4LFxuICAgICAgICAgICAgICAgIHJvbGU6ICdwcmVzZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2RhdGEtcC1oaWRkZW4tYWNjZXNzaWJsZSc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2RhdGEtcC1oaWRkZW4tZm9jdXNhYmxlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvbkZvY3VzOiBvbkZvY3VzPy5iaW5kKHRoaXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmZpcnN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudCA9IGNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQodGhpcy5vbkZpcnN0SGlkZGVuRWxlbWVudEZvY3VzKTtcbiAgICAgICAgdGhpcy5sYXN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudCA9IGNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQodGhpcy5vbkxhc3RIaWRkZW5FbGVtZW50Rm9jdXMpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1wYy1zZWN0aW9uJywgJ2ZpcnN0Zm9jdXNhYmxlZWxlbWVudCcpO1xuICAgICAgICB0aGlzLmxhc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1wYy1zZWN0aW9uJywgJ2xhc3Rmb2N1c2FibGVlbGVtZW50Jyk7XG5cbiAgICAgICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQucHJlcGVuZCh0aGlzLmZpcnN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LmFwcGVuZCh0aGlzLmxhc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkZpcnN0SGlkZGVuRWxlbWVudEZvY3VzKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHsgY3VycmVudFRhcmdldCwgcmVsYXRlZFRhcmdldCB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnQgPVxuICAgICAgICAgICAgcmVsYXRlZFRhcmdldCA9PT0gdGhpcy5sYXN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudCB8fCAhdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpID8gRG9tSGFuZGxlci5nZXRGaXJzdEZvY3VzYWJsZUVsZW1lbnQoY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50LCAnOm5vdCgucC1oaWRkZW4tZm9jdXNhYmxlKScpIDogdGhpcy5sYXN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBEb21IYW5kbGVyLmZvY3VzKGZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uTGFzdEhpZGRlbkVsZW1lbnRGb2N1cyhldmVudCkge1xuICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50ID1cbiAgICAgICAgICAgIHJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuZmlyc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50IHx8ICF0aGlzLmhvc3QubmF0aXZlRWxlbWVudD8uY29udGFpbnMocmVsYXRlZFRhcmdldCkgPyBEb21IYW5kbGVyLmdldExhc3RGb2N1c2FibGVFbGVtZW50KGN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCwgJzpub3QoLnAtaGlkZGVuLWZvY3VzYWJsZSknKSA6IHRoaXMuZmlyc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIERvbUhhbmRsZXIuZm9jdXMoZm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgTGljZW5zZU1hbmFnZXIuY2hlY2soKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0ZvY3VzVHJhcF0sXG4gICAgZGVjbGFyYXRpb25zOiBbRm9jdXNUcmFwXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXBNb2R1bGUge31cbiJdfQ==
|